summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/cso_cache/cso_context.c
AgeCommit message (Collapse)Author
2011-02-14gallium: always save and restore vertex buffers using cso_cacheMarek Olšák
2011-02-03cso: don't tell drivers to bind null samplers, sampler viewsBrian Paul
Before, the set_sampler_views() and restore_sampler_views() functions used MAX2(old,new) to tell the driver how many samplers or sampler views to set. This could result in cases such as: pipe->set_fragment_sampler_views(pipe, 4, views={foo, bar, NULL, NULL}) Many/most gallium drivers would take this as-is and set ctx->num_sampler_views=4 and ctx->sampler_views={foo, bar, NULL, NULL, ...}. Later, loops over ctx->num_sampler_views would have to check for null pointers. Worse, the number of sampler views and number of sampler CSOs could get out of sync: ctx->num_samplers = 2 ctx->samplers = {foo, bar, ...} ctx->num_sampler_views = 4 ctx->sampler_views={Foo, Bar, NULL, NULL, ...} So loops over the num_samplers could run into null sampler_views pointers or vice versa. This fixes a failed assertion in the SVGA driver when running the Mesa engine demo in AA line mode (and possibly other cases). It looks like all gallium drivers are careful to unreference views and null-out sampler CSO pointers for the units beyond what's set with the pipe::bind_x_sampler_states() and pipe::set_x_sampler_views() functions. I'll update the gallium docs to explain this as well.
2011-02-02cso: refactor texture sampler and sampler view codeBrian Paul
This consolidates the code duplicated between the fragment sampler and vertex sampler functions. Plus, it'll make adding support for geometry shader samplers trivial.
2011-02-02cso: rename fragment sampler-related fieldsBrian Paul
To better distinguish from vertex sampler fields.
2011-02-02cso: fix loop bound in cso_set_vertex_samplers()Brian Paul
Before we were looping to nr_samplers, which is the number of fragment samplers, not vertex samplers. NOTE: This is a candidate for the 7.9 and 7.10 branches.
2010-07-21cso: handle depth clampMarek Olšák
2010-07-02gallium/cso: check for set_vertex_sampler_views != NULL before calling itBrian Paul
Not all drivers implement this method. Fixes regression reported by Chris Rankin and bug 28889.
2010-07-01gallium/cso: unbind sampler views in cso_release_all()Brian Paul
2010-05-04Merge commit 'origin/master' into gallium-msaaRoland Scheidegger
2010-05-03cso: use framebuffer utility functionsBrian Paul
2010-04-30Merge commit 'origin/master' into gallium-msaaRoland Scheidegger
2010-04-29cso: remove commented-out code, update function docsBrian Paul
2010-04-27gallium: fix glaring bugs in last commitRoland Scheidegger
2010-04-26gallium: interface changes for multisamplingRoland Scheidegger
add function to set sample mask, and state for alpha-to-coverage and alpha-to-one. Also make it possible to query for supported sample count with is_msaa_supported(). Use explicit resource_resolve() to resolve a resource. Note that it is illegal to bind a unresolved resource as a sampler view, must be resolved first (as per d3d10 and OGL APIs, binding unresolved resource would mean that special texture fetch functions need to be used which give explicit control over what samples to fetch, which isn't supported yet). Also change surface_fill() and surface_copy() to operate directly on resources. Blits should operate directly on resources, most often state trackers just used get_tex_surface() then did a blit. Note this also means the blit bind flags are gone, if a driver implements this functionality it is expected to handle it for all resources having depth_stencil/render_target/sampler_view bind flags (might even require it for all bind flags?). Might want to introduce quality levels for MSAA later. Might need to revisit this for hw which does instant resolve.
2010-04-24cso_cache: Ensure irrelevant state of the blend state is zeroed.José Fonseca
Otherwise drivers that bake the full blend state in a key end up having uninitialized memory in their key. Courtesy of valgrind.
2010-03-22cso: Remove unnecessary header.Vinson Lee
2010-03-19cso: remove cso_set/save/restore_sampler_texturesRoland Scheidegger
no longer used after all statetrackers have been converted.
2010-03-15cso: Do not hold references to bound textures.Keith Whitwell
Sampler views already hold references to those.
2010-03-12cso: Remove set/save/restore_vertex_sampler_textures().Michal Krol
2010-03-12cso: Add entry points for vertex/fragment sampler views.Michal Krol
2010-03-10Merge branch 'master' into gallium-sampler-viewMichal Krol
Conflicts: src/gallium/auxiliary/Makefile src/gallium/auxiliary/SConscript src/gallium/auxiliary/tgsi/tgsi_exec.c src/gallium/auxiliary/util/u_blitter.c src/gallium/drivers/i915/i915_context.h src/gallium/drivers/i965/brw_context.h src/gallium/drivers/llvmpipe/lp_context.h src/gallium/drivers/nv50/nv50_context.h src/gallium/drivers/nv50/nv50_state_validate.c src/gallium/drivers/nv50/nv50_tex.c src/gallium/drivers/r300/r300_blit.c src/gallium/drivers/r300/r300_context.h src/gallium/drivers/r300/r300_emit.c src/gallium/drivers/r300/r300_state.c src/gallium/drivers/softpipe/sp_context.h src/gallium/drivers/svga/svga_context.h src/gallium/drivers/svga/svga_pipe_sampler.c
2010-03-09cso: don't forget to release vertex elements stateRoland Scheidegger
2010-03-09cso: Fix typo in assert.Corbin Simpson
2010-03-09Merge branch 'gallium-vertexelementcso'Roland Scheidegger
Conflicts: src/gallium/auxiliary/cso_cache/cso_context.c src/gallium/auxiliary/util/u_blit.c src/gallium/auxiliary/util/u_gen_mipmap.c src/gallium/drivers/i915/i915_context.h src/gallium/drivers/i965/brw_draw_upload.c src/gallium/drivers/r300/r300_blit.c src/gallium/drivers/r300/r300_context.h src/gallium/drivers/r300/r300_render.c src/gallium/drivers/r300/r300_state_derived.c src/mesa/state_tracker/st_cb_bitmap.c src/mesa/state_tracker/st_cb_clear.c
2010-03-09auxiliary: fix vertex elements csoRoland Scheidegger
potentially could have got a match even though the cso was different (in case of different count and first few elements the same).
2010-02-24cso: Track clip state with cso context.Michal Krol
2010-02-18gallium: use cso state handling for pipe_vertex_element stateRoland Scheidegger
2010-02-11gallium: give pipe_stencil_ref its own cso_save/restore functionsRoland Scheidegger
seems cleaner, and other dynamic state like viewport is handled that way too
2010-02-11gallium: also save/restore stencil_ref in cso_save/restore_depth_stencil_alphaRoland Scheidegger
makes life of state trackers easier
2010-02-09gallium: don't put stencil ref value in pipe_depth_stencil_alpha_stateRoland Scheidegger
This will make driver's life a bit harder, however it makes sense that stencil reference value is not part of the pipe_depth_stencil_alpha_state, because it often (there are some algorithms which require this) changes more frequently than the rest of the dsa state. This is also encouraged by some graphic APIs. Treat it similar to pipe_blend_color.
2010-02-02gallium: pipe/p_inlines.h -> util/u_inlines.hJosé Fonseca
2010-01-30gallium: fix blend state csoRoland Scheidegger
if independent blend state was disabled, only the data from first rt was stored, however the comparison used the full state, hence there never was a match and always a new object was created. Fixes a huge performance drop with llvmpipe due to recompilation.
2010-01-25gallium: fix cast for size calc of pipe_blend_stateRoland Scheidegger
2010-01-20gallium: prepare for per-rendertarget blend enables, writemasks, blend funcsRoland Scheidegger
GL 3.0 (EXT_draw_buffers2) and other APIs allow independent blend enables and write masks per render target, ARB_draw_buffers_blend (and other APIs) also allow independent blend functions. Things like dithering, logic ops however are not extended to be per rendertarget, that might be conceptually possible however it doesn't look like any API wants to expose this.
2010-01-18cso: Add set_vertex_samplers functionJakob Bornecrantz
2009-12-25gallium: add geometry shader support to galliumZack Rusin
2010-02-19gallium: WIP: Introduce sampler views.Michal Krol
2009-12-02cso: check if pipe_context::bind_vertex_sampler_states is non-nullBrian Paul
Fixes segfaults upon exit when the CSO module is releasing its objects.
2009-12-01cso: Add support for separate vertex sampler state.Michal Krol
2009-10-02gallium: replace // comments with /* */Brian Paul
2009-07-06gallium: rearrange some members to avoid memory holes/paddingZack Rusin
plus it saves us a cacheline in the cso
2009-03-04gallium: Remove some superfluous instances of #include "p_inlines.h".Michel Dänzer
2009-01-27gallium: standardize api on the prefix "nr"Zack Rusin
2008-09-18gallium: fix surface object memory leak in cso moduleBrian Paul
2008-09-17gallium: fix lack of surface reference counting in ↵Brian Paul
cso_set/save/restore_framebuffer() Fixes asst problems with FBO / render to texture.
2008-08-24gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul
Also, rename p_tile.[ch] to u_tile.[ch]
2008-07-28Merge tgsi/exec and tgsi/util directories.José Fonseca
2008-05-25cso: use memcpy rather than structure asignment for copyingKeith Whitwell
Apparently gcc will omit to copy hidden padding bytes under some circumstances, which means later on memcmp() will indicate a difference between structs even though all the visible members are identical.
2008-05-08Merge branch 'gallium-0.1' into gallium-tex-surfacesMichel Dänzer
2008-05-08cso_cache: Fix test for currently bound blend state.Michel Dänzer