summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2015-12-23 11:24:23 -0800
committerJason Ekstrand <jason.ekstrand@intel.com>2015-12-23 13:49:56 -0800
commit72ceb99bab592e1ce01bc7855c45bfe58a188b6f (patch)
tree09b9dd36cbb85d72d2f3db3a1259b24d1c9955b9 /src
parent5644b1ceced8bb2a31880482e039c0179e555080 (diff)
downloadexternal_mesa3d-72ceb99bab592e1ce01bc7855c45bfe58a188b6f.zip
external_mesa3d-72ceb99bab592e1ce01bc7855c45bfe58a188b6f.tar.gz
external_mesa3d-72ceb99bab592e1ce01bc7855c45bfe58a188b6f.tar.bz2
anv: Mask out invalid stages in foreach_stage
Diffstat (limited to 'src')
-rw-r--r--src/vulkan/anv_private.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vulkan/anv_private.h b/src/vulkan/anv_private.h
index b632f6e..6bd1895 100644
--- a/src/vulkan/anv_private.h
+++ b/src/vulkan/anv_private.h
@@ -1235,8 +1235,11 @@ mesa_to_vk_shader_stage(gl_shader_stage mesa_stage)
return (1 << mesa_stage);
}
+#define ANV_STAGE_MASK ((1 << MESA_SHADER_STAGES) - 1)
+
#define anv_foreach_stage(stage, stage_bits) \
- for (gl_shader_stage stage, __tmp = (gl_shader_stage)(stage_bits);\
+ for (gl_shader_stage stage, \
+ __tmp = (gl_shader_stage)((stage_bits) & ANV_STAGE_MASK); \
stage = __builtin_ffs(__tmp) - 1, __tmp; \
__tmp &= ~(1 << (stage)))