Mesa (master): st/mesa: update sampler states when shaders are changed

Marek Olšák mareko at kemper.freedesktop.org
Sat Jul 30 13:04:04 UTC 2016


Module: Mesa
Branch: master
Commit: b47839ad8361ef42a0f38c52fe24307b865c5489
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b47839ad8361ef42a0f38c52fe24307b865c5489

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sun Jul 17 21:37:58 2016 +0200

st/mesa: update sampler states when shaders are changed

This bug seems to have always been there. Applications changing shaders
but not textures between draw calls would have gotten undefined behavior.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/mesa/state_tracker/st_atom.h | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom.h b/src/mesa/state_tracker/st_atom.h
index 961c395..febd7ce 100644
--- a/src/mesa/state_tracker/st_atom.h
+++ b/src/mesa/state_tracker/st_atom.h
@@ -97,7 +97,8 @@ enum {
                                  ST_NEW_VS_SSBOS | \
                                  ST_NEW_VERTEX_ARRAYS | \
                                  ST_NEW_CLIP_STATE | \
-                                 ST_NEW_RASTERIZER)
+                                 ST_NEW_RASTERIZER | \
+                                 ST_NEW_RENDER_SAMPLERS)
 
 #define ST_NEW_TCS_RESOURCES    (ST_NEW_TCS_SAMPLER_VIEWS | \
                                  ST_NEW_TCS_IMAGES | \
@@ -107,7 +108,8 @@ enum {
                                  ST_NEW_TCS_SSBOS)
 
 #define ST_NEW_TESSCTRL_PROGRAM (ST_NEW_TCS_STATE | \
-                                 ST_NEW_TCS_RESOURCES)
+                                 ST_NEW_TCS_RESOURCES | \
+                                 ST_NEW_RENDER_SAMPLERS)
 
 #define ST_NEW_TES_RESOURCES    (ST_NEW_TES_SAMPLER_VIEWS | \
                                  ST_NEW_TES_IMAGES | \
@@ -118,7 +120,8 @@ enum {
 
 #define ST_NEW_TESSEVAL_PROGRAM (ST_NEW_TES_STATE | \
                                  ST_NEW_TES_RESOURCES | \
-                                 ST_NEW_RASTERIZER)
+                                 ST_NEW_RASTERIZER | \
+                                 ST_NEW_RENDER_SAMPLERS)
 
 #define ST_NEW_GS_RESOURCES     (ST_NEW_GS_SAMPLER_VIEWS | \
                                  ST_NEW_GS_IMAGES | \
@@ -129,7 +132,8 @@ enum {
 
 #define ST_NEW_GEOMETRY_PROGRAM (ST_NEW_GS_STATE | \
                                  ST_NEW_GS_RESOURCES | \
-                                 ST_NEW_RASTERIZER)
+                                 ST_NEW_RASTERIZER | \
+                                 ST_NEW_RENDER_SAMPLERS)
 
 #define ST_NEW_FRAGMENT_PROGRAM (ST_NEW_FS_STATE | \
                                  ST_NEW_FS_SAMPLER_VIEWS | \
@@ -138,7 +142,8 @@ enum {
                                  ST_NEW_FS_UBOS | \
                                  ST_NEW_FS_ATOMICS | \
                                  ST_NEW_FS_SSBOS | \
-                                 ST_NEW_SAMPLE_SHADING)
+                                 ST_NEW_SAMPLE_SHADING | \
+                                 ST_NEW_RENDER_SAMPLERS)
 
 #define ST_NEW_COMPUTE_PROGRAM  (ST_NEW_CS_STATE | \
                                  ST_NEW_CS_SAMPLER_VIEWS | \
@@ -146,7 +151,8 @@ enum {
                                  ST_NEW_CS_CONSTANTS | \
                                  ST_NEW_CS_UBOS | \
                                  ST_NEW_CS_ATOMICS | \
-                                 ST_NEW_CS_SSBOS)
+                                 ST_NEW_CS_SSBOS | \
+                                 ST_NEW_CS_SAMPLERS)
 
 #define ST_NEW_CONSTANTS        (ST_NEW_VS_CONSTANTS | \
                                  ST_NEW_TCS_CONSTANTS | \




More information about the mesa-commit mailing list