[Mesa-dev] [PATCH 05/11] glsl: reject compute shaders with fixed and variable local size
Samuel Pitoiset
samuel.pitoiset at gmail.com
Thu Sep 8 20:31:28 UTC 2016
The ARB_compute_variable_group_size specification explains that
when a compute shader includes both a fixed and a variable local
size, a compile-time error occurs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
src/compiler/glsl/ast_to_hir.cpp | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index 4fc4c5c..a53a82e 100644
--- a/src/compiler/glsl/ast_to_hir.cpp
+++ b/src/compiler/glsl/ast_to_hir.cpp
@@ -8013,6 +8013,20 @@ ast_cs_input_layout::hir(exec_list *instructions,
}
}
+ /* From the ARB_compute_variable_group_size specification:
+ *
+ * If a compute shader including a *local_size_variable* qualifier also
+ * declares a fixed local group size using the *local_size_x*,
+ * *local_size_y*, or *local_size_z* qualifiers, a compile-time error
+ * results
+ */
+ if (state->cs_input_local_size_variable_specified) {
+ _mesa_glsl_error(&loc, state,
+ "compute shader can't include both a variable and a "
+ "fixed local group size");
+ return NULL;
+ }
+
state->cs_input_local_size_specified = true;
for (int i = 0; i < 3; i++)
state->cs_input_local_size[i] = qual_local_size[i];
--
2.9.3
More information about the mesa-dev
mailing list