summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_context.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-07-17 20:37:58 +0200
committerMarek Olšák <[email protected]>2016-07-30 15:02:14 +0200
commit79dcd69afae4ada47fd4e746e9eec87c6d8028f0 (patch)
tree745e9f03a097f4d00f4ab39e0870e90b4d9be571 /src/mesa/state_tracker/st_context.c
parent1f73e2bb942783bf143185a58d2290fda2b08c81 (diff)
st/mesa: remove excessive shader state dirtying
This just needs to be done by st_validate_state. v2: add "shaders_may_be_dirty" flags for not skipping st_validate_state on _NEW_PROGRAM to detect real shader changes Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_context.c')
-rw-r--r--src/mesa/state_tracker/st_context.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
index 911bec6c52b..2ba6efe7644 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -219,6 +219,12 @@ void st_invalidate_state(struct gl_context * ctx, GLbitfield new_state)
if (st->clamp_vert_color_in_shader && (new_state & _NEW_LIGHT))
st->dirty |= ST_NEW_VS_STATE;
+ /* Which shaders are dirty will be determined manually. */
+ if (new_state & _NEW_PROGRAM) {
+ st->gfx_shaders_may_be_dirty = true;
+ st->compute_shader_may_be_dirty = true;
+ }
+
/* This is the only core Mesa module we depend upon.
* No longer use swrast, swsetup, tnl.
*/