glsl/cs: Fix local_size_y and local_size_z
authorJordan Justen <jordan.l.justen@intel.com>
Mon, 9 Jun 2014 21:14:15 +0000 (14:14 -0700)
committerJordan Justen <jordan.l.justen@intel.com>
Mon, 16 Jun 2014 16:54:52 +0000 (09:54 -0700)
flags.q.local_size has 3 bits. One each for x, y and z.

Fixes piglit's:
* spec/ARB_compute_shader/linker/mismatched_local_work_sizes
* spec/ARB_compute_shader/compiler/default_local_size.comp
* spec/ARB_compute_shader/compiler/work_group_size_too_large
* spec/ARB_compute_shader/compiler/gl_WorkGroupSize_matches_layout.comp

This was regressed in 738c9c3c.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/glsl/ast_type.cpp

index 0ee2c495aa4fa4f5f8a45badfa9df3cfb96c0991..77053d5b12eea965be3d93f2593480cf24bcfd04 100644 (file)
@@ -247,7 +247,7 @@ ast_type_qualifier::merge_in_qualifier(YYLTYPE *loc,
          q.flags.q.local_size != 0 &&
          state->in_qualifier->flags.q.local_size == 0;
 
-      valid_in_mask.flags.q.local_size = 1;
+      valid_in_mask.flags.q.local_size = 7;
       break;
    default:
       _mesa_glsl_error(loc, state,