summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/softpipe/sp_context.h
AgeCommit message (Collapse)Author
2008-01-23gallium: improved vertex layout and interpolant setup in softpipeBrian
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-15Don't include stdint.h or inttypes. Use the uint64 typedef instead of uint64_t.Brian
2008-01-01Clean-up, re-org some vertex/fragment shader state code.Brian
2008-01-01move SP_NEW_ #defines into sp_state.hBrian
2007-12-17gallium: incorporate alpha state into depth_stencil state object.Keith Whitwell
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-11Rework gallium and mesa queries a little.Keith Whitwell
Add a 'CheckQuery()' driver callback to mesa to check query completion. Make pipe_query an opaque type. Rework softpipe queries, support overlapping occlusion queries.
2007-12-11gallium: remove set_sampler_units interfaceKeith Whitwell
The effect of this mapping can be acheived by the state tracker and setting up the pipe texture state pointers to incorporate its affects.
2007-12-11gallium: remove redundant clear_color state.Keith Whitwell
2007-12-11gallium: Remove feedback interfaces from pipe driver.Keith Whitwell
Something similar will return when geometry shaders are added, but for now this interface is not required.
2007-12-09Fix looping for multi-color buffer writing.Brian
2007-12-06Hide texture layout details from the state tracker.Michel Dänzer
pipe->get_tex_surface() has to be used for access to texture image data.
2007-11-18Implement early depth test.Michal Krol
Early depth test is enabled when depth test is enabled and alpha test is disabled and fragment shader does not write depth. The early-z is implemented by moving the depth test stage just before the fragment shader stage and prepending it with an earlyz stage, introduced with this commit. The earlyz stage prepares the quad->outputs.depth for the following depth test stage by interpolating Z position, just as the fragment shader would do.
2007-10-29Make gallium compile in win32.Michal Krol
Use FREE, MALLOC, CALLOC, GETENV wrappers. Silence compiler warnings. Add proper copyrights.
2007-10-28Control FS TGSI dumping with GALLIUM_DUMP_FS env variable.michal
2007-10-27Enable SSE2 for fragment shaders.michal
2007-10-27Remove remnants of softpipe_surface.Brian
This is the last of the clean-up following the change which moved surface allocation to the winsys layer.
2007-10-26Re-implement GLSL texture sampler variables.Brian
GLSL sampler variables indicate which texture unit to use for TEX instructions. Previously, this was baked into the fragment/vertex program and couldn't be readily changed once set. Now, SamplerUnits[] array indicates which texture unit is to be used for each sampler variable. These values are set with glUniform1i(). This is extra state that must be passed to the fragment/vertex program executor at runtime.
2007-10-22Finish unifying the surface and texture tile caches.Brian
2007-10-20Convert Z/stencil ops to use cached tiles like colors.Brian
Also, quite a bit of re-org of the tile caches and surface mapping/unmapping. Leave surfaces mapped between primitives now.
2007-10-03Track fragment and vertex shader code generation via pipe shader state objects.Michel Dänzer
Unfortunately, the generated fragment shader code is effectively unusable until it handles quad->mask.
2007-09-28Redoing the way we handle vertex shaders for the draw module.Zack Rusin
2007-09-28Revert "Redoing the way we handle vertex shaders for the draw module."Zack Rusin
This reverts commit 6dcfddb8e2ec2bfb6187b912807fa65f28da2c5e.
2007-09-28Redoing the way we handle vertex shaders for the draw module.Zack Rusin
2007-09-25First attempt at building vertex buffers post-clip.Keith Whitwell
Build a buffer of contigous vertices and indices at the backend of our software transformation/clipping path. This will become the mechanism for emitting buffers of vertices to rasterization hardware. This is similar to but not the same as the post-transform vertex cache. In particular, these vertices are subject to clipping, culling, poly offset, etc. The vertices emitted will all be used by hardware. TODOs include the actual transformation to hardware vertex formats, moving this out of softpipe to somewhere more useful and allowing >1 primitive to share the generated VB.
2007-09-21Make the alpha test state a cso.Zack Rusin
2007-09-20Checkpoint: vertex attribute clean-up.Brian
Remove/disable the attrib/slot mapping arrays in a few places. Work in progress...
2007-09-18Convert shader to an immutable state object.Zack Rusin
2007-09-18converting the setup state to immutable object and renaming it to rasterizer ↵Zack Rusin
state
2007-09-18Combing depth and stencil objects and making them immutable.Zack Rusin
Converting depth and stencil objects into a single state object (d3d10 like) and making it immutable.
2007-09-18Make sampler an immutable state object.Zack Rusin
Switch the sample to be an immutable state object.
2007-09-18First stab at immutable state objects (create/bind/delete)Zack Rusin
We want our state objects to be immutable, handled via the create/bind/delete calls instead of struct propagation. Only implementing the blend state to see how it would look like and work.
2007-09-11Implement query object interface.Brian
This replaces the temporary occlusion counter functions we had before. Added new ctx->Driver.WaitQuery() function which should block until the result is ready. Sketch out some code for vertex transformation feedback counters.
2007-09-10More work on vertex feedback / glRasterPos. Basic rasterpos works now.Brian
2007-08-30In draw_flatshade.c use vertex_info->interp_mode[] to choose attribs/colors ↵Brian
to cpy. One less dependency on the TGSI_ATTRIB_x flags. This requires setting the vertex_info->interp_mode[] values in the i915 driver and passing them to draw_set_vertex_attributes().
2007-08-23Use vertex_info struct for softpipe - lots of clean-up.Brian
2007-08-22Rework of shader constant buffers.Brian
They're now totally independent of the actual shaders. Also, implemented in terms of pipe_buffer_handles/objects.
2007-08-19Fix some draw_arrays issues.Brian
We weren't mapping all the needed vertex array buffers. Move array state that was temporarily in draw_context to softpipe_context. Remove a bunch of dead code.
2007-08-16Begin added vertex shader state/support.Brian
Renamed pipe_fs_state to pipe_shader_state since it can be used for both vertex and fragment shader info.
2007-08-15Remove mesa include directories, be stricter about include paths.Keith Whitwell
2007-08-15added state funcs for vertex buffer/element infoBrian
2007-08-14Continue reducing dependencies on core mesa include files.Keith Whitwell
Mainly down to the support for legacy TNL processing now.
2007-08-07s/pipe_texture_object/pipe_mipmap_tree/, drop st_texobj.cBrian
2007-08-05Add a new interface between softpipe and the window system / buffer manager.Keith Whitwell
This interface is defined by softpipe and any window system (eg i915pipe) wishing to use softpipe is required to implement the interface. Currently the interface is all about buffer management. Generalizing, each pipe driver will advertise an interface in a similar spirit to this, and again any window system driver wishing to use that rendering pipeline will have to implement the interface it defines. It clearly isn't a one-way street however, as softpipe could just do its own buffer management with malloc. The interaction with a buffer manager is desired to allow us to exercise the hardware swapbuffers functionality of the i915pipe driver, and also to get a feel for the way hardware drivers which really need a buffer manager will work.
2007-07-27Maintain cliprect (scissor) info in sp_state_derived.c.Brian
The cliprect depends on the scissor rect (if enabled), otherwise the drawing surface bounds.
2007-07-25Implement line stippling.Brian
Also added draw_stage::reset_line_stipple(). There may be a better way of doing that though.
2007-07-13Implement AA points and AA coverage application in quad pipeline.Brian
2007-07-13Added basic occlusion countingBrian