diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/spirv/spirv-debug-break.slang | 22 | ||||
| -rw-r--r-- | tests/spirv/spirv-debug-break.slang.expected | 35 |
2 files changed, 57 insertions, 0 deletions
diff --git a/tests/spirv/spirv-debug-break.slang b/tests/spirv/spirv-debug-break.slang new file mode 100644 index 000000000..18e8c8597 --- /dev/null +++ b/tests/spirv/spirv-debug-break.slang @@ -0,0 +1,22 @@ +// spirv-instruction.slang +//TEST(compute, vulkan):SIMPLE:-target glsl -entry computeMain -stage compute + +[[vk::spirv_instruction(1, "NonSemantic.DebugBreak")]] +void _spvDebugBreak(int v); + +[ForceInline] +void _debugBreak() { _spvDebugBreak(1); } + + +//TEST_INPUT:set resultBuffer = out ubuffer(data=[0 0 0 0], stride=4) +RWStructuredBuffer<uint> resultBuffer; + +[numthreads(4,1,1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + uint threadId = dispatchThreadID.x; + + _debugBreak(); + + resultBuffer[threadId] = threadId + threadId; +} diff --git a/tests/spirv/spirv-debug-break.slang.expected b/tests/spirv/spirv-debug-break.slang.expected new file mode 100644 index 000000000..d8ac8e010 --- /dev/null +++ b/tests/spirv/spirv-debug-break.slang.expected @@ -0,0 +1,35 @@ +result code = 0 +standard error = { +} +standard output = { +#version 450 +#extension GL_EXT_spirv_intrinsics : require +layout(row_major) uniform; +layout(row_major) buffer; + +#line 5 0 +spirv_instruction(id = 1, set = "NonSemantic.DebugBreak") +void _spvDebugBreak_0(int _0); + + +#line 12 +layout(std430, binding = 0) buffer _S1 { + uint _data[]; +} resultBuffer_0; +layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in; +void main() +{ + +#line 17 + uint threadId_0 = gl_GlobalInvocationID.x; + + _spvDebugBreak_0(1); + + uint _S2 = threadId_0 + threadId_0; + +#line 21 + ((resultBuffer_0)._data[(threadId_0)]) = _S2; + return; +} + +} |
