From 2d0912bfe2de7799b32e80722fa5c8dc279a339b Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Wed, 31 Jan 2024 03:28:04 +0800 Subject: Correctly apply glsl local size layout to entry points during lowering (#3528) * Correctly apply glsl local size layout to entry points during lowering * Test for glsl layout correctness --- tests/glsl/compute-shader-layout.slang | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tests/glsl/compute-shader-layout.slang (limited to 'tests') diff --git a/tests/glsl/compute-shader-layout.slang b/tests/glsl/compute-shader-layout.slang new file mode 100644 index 000000000..b81a87aed --- /dev/null +++ b/tests/glsl/compute-shader-layout.slang @@ -0,0 +1,22 @@ +//TEST:SIMPLE(filecheck=CHECKGLSLANG): -target spirv -stage compute -entry main -allow-glsl +//TEST:SIMPLE(filecheck=CHECKDIRECT): -target spirv -stage compute -entry main -allow-glsl -emit-spirv-directly +#version 430 +precision highp float; +precision highp int; + +layout(binding = 0) buffer MyBlockName +{ + vec4 data[]; +} output_data; + +// CHECKGLSLANG-DAG: [[x:%[^ ]+]] = OpConstant {{%[^ ]+}} 44 +// CHECKGLSLANG-DAG: [[y:%[^ ]+]] = OpConstant {{%[^ ]+}} 45 +// CHECKGLSLANG-DAG: [[z:%[^ ]+]] = OpConstant {{%[^ ]+}} 46 +// CHECKGLSLANG: %gl_WorkGroupSize = OpConstantComposite {{%[^ ]+}} [[x]] [[y]] [[z]] + +// CHECKDIRECT: OpExecutionMode %main LocalSize 44 45 46 +layout(local_size_x = 44, local_size_y = 45, local_size_z = 46) in; +void main() +{ + output_data.data[gl_GlobalInvocationID.x] = vec4(gl_GlobalInvocationID, 1); +} -- cgit v1.2.3