Is the code produced in the first case valid? ExecutionMode is configured as (1, 1, 1), but gl_WorkGroupSize is then defined according to the specialization constants. Is that correct?
If not, should the use of local_size_x_id be an error when targeting spir-v versions prior to 1.2?
It appears that OpExecutionModeId was introduced in SPIR-V 1.2. However, it is not used unless we target SPIR-V 1.6.
Here's a minimal example:
When compiled with:
It produces:
But when compiled with:
Produces:
Is the code produced in the first case valid? ExecutionMode is configured as (1, 1, 1), but gl_WorkGroupSize is then defined according to the specialization constants. Is that correct?
If not, should the use of
local_size_x_id
be an error when targeting spir-v versions prior to 1.2?