summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker
AgeCommit message (Collapse)Author
2008-01-31gallium: fix problem in which texcoords and varying vars got mapped to the ↵Brian
same slot This fixes the glsl/bump.c and glsl/texdemo1.c programs
2008-01-31Fix problem in mapping vertex program outputs (found with "spring" game engine)Brian
If the vertex program writes to an output that's not consumed by the fragment program, map the vp output to an unused slot.
2008-01-29gallium: don't rely on assert(0) for error handling - may be disabledKeith Whitwell
2008-01-28gallium: check if surface has defined status in check_clear_depth_with_quad()Brian
This was part of Keith's patch from Friday.
2008-01-26gallium: minor cleanups to pipe interfaceKeith Whitwell
- Remove put/get tile, just have users call put_tile_raw, etc directly. - Remove surface_data call, just map it locally.
2008-01-26gallium: add notify_swapbuffers_complete, use it to set surfaces to ↵Keith Whitwell
undefined state
2008-01-26gallium: specialize glFlush vs other flush semanticsKeith Whitwell
2008-01-25gallium: replace prim pipeline begin/end() functions with flush()Brian
This is basically half of Keith's draw/flush patch. The stage->point/line/tri() functions are now self-validating, the validator functions are installed by the flush() function. There were excessive calls to validate_pipeline(), however. This was caused by draw_prim_queue_flush() keeping a local 'first' variable that always pointed to the validate functions. Replaced 'first' with 'draw->pipeline.first'. Performance in gears is up just slightly with this patch.
2008-01-25gallium: rename pipe_buffer_handle to pipe_buffer, rework pipebuffer/ codeKeith Whitwell
Provide an actual definition of the pipe_buffer struct, containing the parameters used to create the buffer, and its refcount. Shift refcounting buffers out of the winsys interface, similar to surfaces & textures. Rework pipebuffer/ to reflect the fact these changes, and also Michel's reworking of the buffer interface.
2008-01-25gallium: Simplify winsys buffer interface.Michel Dänzer
The properties of a buffer represented by struct pipe_buffer_handle are now basically constant over its lifetime. The state tracker gets to deal with any more complex buffer semantics it may need to provide.
2008-01-25gallium: added rastpos_destroy()Brian
2008-01-24gallium: added rastpos_destroy()Brian
2008-01-23gallium: remove support for separate depth/stencil buffers. Always combined ↵Brian
now.
2008-01-23gallium: overhaul usage of vertex_info in draw module.Brian
Remove all dependencies on vertex_info, except for draw_vbuf. Drawing stages now strictly operate on post-transformed vertices and don't know anything about hw vertices. Use vertex program output info for two-side/flat/etc stages. Temporarily disable vbuf module in softpipe driver.
2008-01-23gallium: s/INTERP_NONE/INTERP_LINEAR/ to fix assertion with ↵Brian
progs/samples/select.c
2008-01-23gallium: fix computation of raster.point_size_per_vertex flagBrian
2008-01-22gallium: use temp reg for storing color to avoid reading 'result.color'Brian
2008-01-21gallium: silence warningsBrian
2008-01-17Revert "temporarily don't emit TGSI immediates, use the constant buffer"José Fonseca
This reverts commit 310e7ca44b33558a9aa22f43024d1bfb63642128.
2008-01-17Back-port miscellaneous fixes from internal branch (mostly portability fixes).José Fonseca
These are changes that are in our internal branch, but somehow were skipped so far. It was done using visual comparison of the branches -- it is likely that changes are being carried on the wrong way
2008-01-17temporarily don't emit TGSI immediates, use the constant bufferBrian
This allows a few more programs to run and not crash. Need to get constant buffer uploads working...
2008-01-16tweaks to quad drawing, set UsesKill in bitmap shaderBrian
2008-01-16Fix a two-sided lighting bug (fixes samples/wave.c)Brian
2008-01-15include pipe/draw/draw_context.hBrian
2008-01-14free stvp->draw_shaderBrian
2008-01-14Fix problems with vertex shaders and the private draw module.Brian
The CSO returned by pipe->create_vs_state() can't be passed to the private draw module. That was causing glRasterPos to blow up. Add a 'draw_shader' field to st_vertex_program for use with the private draw module. Change st_context->state.vs type from cso_vertex_shader to st_vertex_program.
2008-01-14Remove pipe->get/put_tile_rgba.Michel Dänzer
pipe_get/put_tile_rgba() now use pipe->get/put_tile internally. Also simplify the <format>_get/put_tile_rgba() helper functions and clean up some inconsitencies in them.
2008-01-14Remove mapping fields from struct pipe_surface.Michel Dänzer
It's now the responsibility of surface users to keep track of their mappings.
2008-01-04gallium: Make texture target an enum for better debuggability.Michel Dänzer
Also make enum pipe_format used in a couple more places.
2008-01-01unref buffer after drawing, fixes rastpos mem leakBrian
2008-01-01unref const buffers during context destroyBrian
2007-12-20gallium: make state tracker explictly ask for rendercache flushesKeith Whitwell
2007-12-20gallium: translate ARB fp/vp immediates consistently to tgsi immediatesKeith Whitwell
2007-12-19Add some prototype code for converting RET to END for main(). Disabled for now.Brian
2007-12-19Fix problem with initial viewport/scissor size.Brian
If an app never called glViewport, the viewport size was always 0 by 0 pixels. Now pass initial size to st_create_framebuffer() and initialize the viewport and scissor bounds in st_make_current(). This could also be fixed by ensuring the gl_framebuffers passed to _mesa_make_current() were initialized to the right size. But that involves allocating the renderbuffers/pipe_surfaces earlier and that runs into some other issues ATM. Also remove obsolete createRenderbuffers param to st_create_framebuffer().
2007-12-19convert Mesa OPCODE_END to TGSI_OPCODE_END, not TGSI_OPCOD_RETBrian
2007-12-19special-case PSIZE tooBrian
2007-12-19new assertionsBrian
2007-12-19actually set the max_index. useful in the driverZack Rusin
2007-12-18turn off TGSI_DEBUGBrian
2007-12-18fix bug on GL_VERTEX_PROGRAM_TWO_SIDE pathBrian
2007-12-18gallium: rationalize vertex_element state packetKeith Whitwell
Remove dst_offset (not used) Add nr_components, which could be calculated from format, but would be too much effort. Update i965 driver to cope.
2007-12-17Emit declarations for constants (references to the const buffer)Brian
2007-12-17gallium: incorporate alpha state into depth_stencil state object.Keith Whitwell
2007-12-14Added origin_lower_left field to pipe_rasterizer_stateBrian
This controls whether the window origin is considered to be the lower-left or upper-left corner. This effects computation of gl_FragCoord and the application of polygon stipple.
2007-12-14update_samplers() didn't respect the sampler->texunit mapping.Brian
This fixes the glsl/texdemo1.c program.
2007-12-14emit tgsi declarations for texture samplersBrian
2007-12-14Don't always declare frag shader INPUT[0] as fragment position.Brian
We were doing this for the sake of softpipe and the tgsi intergrepter since we always need the fragment position and W-coordinate information in order to compute fragment interpolants. But that's not appropriate for hardware drivers. The tgsi interpreter now get x,y,w information from a separate tgsi_exec_vector variable setup by softpipe. The new pipe_shader_state->input_map[] defines how vert shader outputs map to frag shader inputs. It may go away though, since one can also examine the semantic label on frag shader input[0] to figure things out.
2007-12-13add missing code for PIPE_FORMAT_S8_UNORM renderbufferBrian
2007-12-12Re-org of st_create_framebuffer() and renderbuffer format selection.Brian
st_create_framebuffer() now takes pipe_formats for the color, depth, stencil buffers. This avoids a round-about chain of calls to pipe->is_format_supported() for window renderbuffers (their format never changes). Renderbuffer format selection code in st_format.c is simpler now too.