mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-05 01:37:07 +00:00
1868b14435
This PR adds handling of the numthreads attribute for compute shaders, as well as a general infrastructure for returning attribute values from acceptAttributes, which may be needed in other cases, e.g, unroll(x), or merely to know if some attribute without params was given. A map of enum values from TAttributeType to TIntermAggregate nodes is built and returned. It can be queried with operator[] on the map. In the future there may be a need to also handle strings (e.g, for patchconstantfunc), and those can be easily added into the class if needed. New test is in hlsl.numthreads.comp.
61 lines
2.2 KiB
Plaintext
61 lines
2.2 KiB
Plaintext
hlsl.numthreads.comp
|
|
Shader version: 450
|
|
local_size = (4, 4, 2)
|
|
0:? Sequence
|
|
0:4 Function Definition: main(vu3; (temp void)
|
|
0:4 Function Parameters:
|
|
0:4 'tid' (in 3-component vector of uint)
|
|
0:9 Function Definition: main_aux1(vu3; (temp void)
|
|
0:9 Function Parameters:
|
|
0:9 'tid' (in 3-component vector of uint LocalInvocationID)
|
|
0:? Linker Objects
|
|
0:? 'tid' (in 3-component vector of uint LocalInvocationID)
|
|
|
|
|
|
Linked compute stage:
|
|
|
|
|
|
Shader version: 450
|
|
local_size = (4, 4, 2)
|
|
0:? Sequence
|
|
0:4 Function Definition: main(vu3; (temp void)
|
|
0:4 Function Parameters:
|
|
0:4 'tid' (in 3-component vector of uint)
|
|
0:9 Function Definition: main_aux1(vu3; (temp void)
|
|
0:9 Function Parameters:
|
|
0:9 'tid' (in 3-component vector of uint LocalInvocationID)
|
|
0:? Linker Objects
|
|
0:? 'tid' (in 3-component vector of uint LocalInvocationID)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 15
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint GLCompute 4 "main_aux1" 14
|
|
ExecutionMode 4 LocalSize 4 4 2
|
|
Name 4 "main_aux1"
|
|
Name 11 "main(vu3;"
|
|
Name 10 "tid"
|
|
Name 14 "tid"
|
|
Decorate 14(tid) BuiltIn LocalInvocationId
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 0
|
|
7: TypeVector 6(int) 3
|
|
8: TypePointer Function 7(ivec3)
|
|
9: TypeFunction 2 8(ptr)
|
|
13: TypePointer Input 7(ivec3)
|
|
14(tid): 13(ptr) Variable Input
|
|
4(main_aux1): 2 Function None 3
|
|
5: Label
|
|
Return
|
|
FunctionEnd
|
|
11(main(vu3;): 2 Function None 9
|
|
10(tid): 8(ptr) FunctionParameter
|
|
12: Label
|
|
Return
|
|
FunctionEnd
|