mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 12:00:05 +00:00
Add HLSL memory barrier intrinsics, fix dst, add lit & EvaluateAttributeSnapped
This commit is contained in:
parent
19b92fff7e
commit
6e72fddaa2
@ -1405,6 +1405,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
|||||||
case glslang::EOpMemoryBarrierImage:
|
case glslang::EOpMemoryBarrierImage:
|
||||||
case glslang::EOpMemoryBarrierShared:
|
case glslang::EOpMemoryBarrierShared:
|
||||||
case glslang::EOpGroupMemoryBarrier:
|
case glslang::EOpGroupMemoryBarrier:
|
||||||
|
case glslang::EOpAllMemoryBarrierWithGroupSync:
|
||||||
|
case glslang::EOpGroupMemoryBarrierWithGroupSync:
|
||||||
|
case glslang::EOpWorkgroupMemoryBarrier:
|
||||||
|
case glslang::EOpWorkgroupMemoryBarrierWithGroupSync:
|
||||||
noReturnValue = true;
|
noReturnValue = true;
|
||||||
// These all have 0 operands and will naturally finish up in the code below for 0 operands
|
// These all have 0 operands and will naturally finish up in the code below for 0 operands
|
||||||
break;
|
break;
|
||||||
@ -3986,6 +3990,21 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op)
|
|||||||
case glslang::EOpGroupMemoryBarrier:
|
case glslang::EOpGroupMemoryBarrier:
|
||||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask);
|
||||||
return 0;
|
return 0;
|
||||||
|
case glslang::EOpAllMemoryBarrierWithGroupSync:
|
||||||
|
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||||
|
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
||||||
|
return 0;
|
||||||
|
case glslang::EOpGroupMemoryBarrierWithGroupSync:
|
||||||
|
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||||
|
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask);
|
||||||
|
return 0;
|
||||||
|
case glslang::EOpWorkgroupMemoryBarrier:
|
||||||
|
builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask);
|
||||||
|
return 0;
|
||||||
|
case glslang::EOpWorkgroupMemoryBarrierWithGroupSync:
|
||||||
|
// Control barrier with non-"None" semantic is also a memory barrier.
|
||||||
|
builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask);
|
||||||
|
return 0;
|
||||||
default:
|
default:
|
||||||
logger->missingFunctionality("unknown operation with no arguments");
|
logger->missingFunctionality("unknown operation with no arguments");
|
||||||
return 0;
|
return 0;
|
||||||
|
70
Test/baseResults/hlsl.intrinsics.barriers.comp.out
Normal file
70
Test/baseResults/hlsl.intrinsics.barriers.comp.out
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
hlsl.intrinsics.barriers.comp
|
||||||
|
Shader version: 450
|
||||||
|
local_size = (1, 1, 1)
|
||||||
|
0:? Sequence
|
||||||
|
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
||||||
|
0:3 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:4 MemoryBarrier (global void)
|
||||||
|
0:5 AllMemoryBarrierWithGroupSync (global void)
|
||||||
|
0:6 GroupMemoryBarrier (global void)
|
||||||
|
0:7 GroupMemoryBarrierWithGroupSync (global void)
|
||||||
|
0:8 WorkgroupMemoryBarrier (global void)
|
||||||
|
0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
|
||||||
|
0:11 Branch: Return with expression
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked compute stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
local_size = (1, 1, 1)
|
||||||
|
0:? Sequence
|
||||||
|
0:14 Function Definition: ComputeShaderFunction( (temp float)
|
||||||
|
0:3 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:4 MemoryBarrier (global void)
|
||||||
|
0:5 AllMemoryBarrierWithGroupSync (global void)
|
||||||
|
0:6 GroupMemoryBarrier (global void)
|
||||||
|
0:7 GroupMemoryBarrierWithGroupSync (global void)
|
||||||
|
0:8 WorkgroupMemoryBarrier (global void)
|
||||||
|
0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
|
||||||
|
0:11 Branch: Return with expression
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
// 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 "ComputeShaderFunction"
|
||||||
|
ExecutionMode 4 LocalSize 1 1 1
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "ComputeShaderFunction"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeInt 32 0
|
||||||
|
7: 6(int) Constant 1
|
||||||
|
8: 6(int) Constant 4048
|
||||||
|
9: 6(int) Constant 512
|
||||||
|
10: 6(int) Constant 2
|
||||||
|
11: 6(int) Constant 256
|
||||||
|
12: TypeFloat 32
|
||||||
|
13: 12(float) Constant 0
|
||||||
|
4(ComputeShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
MemoryBarrier 7 8
|
||||||
|
ControlBarrier 7 7 8
|
||||||
|
MemoryBarrier 7 9
|
||||||
|
ControlBarrier 7 7 9
|
||||||
|
MemoryBarrier 10 11
|
||||||
|
ControlBarrier 10 10 11
|
||||||
|
ReturnValue 13
|
||||||
|
FunctionEnd
|
160
Test/baseResults/hlsl.intrinsics.evalfns.frag.out
Normal file
160
Test/baseResults/hlsl.intrinsics.evalfns.frag.out
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
hlsl.intrinsics.evalfns.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
|
||||||
|
0:3 Function Parameters:
|
||||||
|
0:3 'inF1' (in float)
|
||||||
|
0:3 'inF2' (in 2-component vector of float)
|
||||||
|
0:3 'inF3' (in 3-component vector of float)
|
||||||
|
0:3 'inF4' (in 4-component vector of float)
|
||||||
|
0:3 'inI2' (in 2-component vector of int)
|
||||||
|
0:? Sequence
|
||||||
|
0:4 interpolateAtOffset (temp float)
|
||||||
|
0:4 'inF1' (in float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.500000
|
||||||
|
0:? -0.062500
|
||||||
|
0:5 interpolateAtOffset (temp 2-component vector of float)
|
||||||
|
0:5 'inF2' (in 2-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.062500
|
||||||
|
0:6 interpolateAtOffset (temp 3-component vector of float)
|
||||||
|
0:6 'inF3' (in 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.187500
|
||||||
|
0:? -0.375000
|
||||||
|
0:7 interpolateAtOffset (temp 4-component vector of float)
|
||||||
|
0:7 'inF4' (in 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.437500
|
||||||
|
0:? -0.500000
|
||||||
|
0:9 interpolateAtOffset (temp float)
|
||||||
|
0:9 'inF1' (in float)
|
||||||
|
0:9 vector-scale (temp 2-component vector of float)
|
||||||
|
0:9 Convert int to float (temp 2-component vector of float)
|
||||||
|
0:9 right-shift (temp 2-component vector of int)
|
||||||
|
0:9 left-shift (temp 2-component vector of int)
|
||||||
|
0:9 'inI2' (in 2-component vector of int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 28 (const int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 28 (const int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 0.062500
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
|
||||||
|
0:3 Function Parameters:
|
||||||
|
0:3 'inF1' (in float)
|
||||||
|
0:3 'inF2' (in 2-component vector of float)
|
||||||
|
0:3 'inF3' (in 3-component vector of float)
|
||||||
|
0:3 'inF4' (in 4-component vector of float)
|
||||||
|
0:3 'inI2' (in 2-component vector of int)
|
||||||
|
0:? Sequence
|
||||||
|
0:4 interpolateAtOffset (temp float)
|
||||||
|
0:4 'inF1' (in float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? -0.500000
|
||||||
|
0:? -0.062500
|
||||||
|
0:5 interpolateAtOffset (temp 2-component vector of float)
|
||||||
|
0:5 'inF2' (in 2-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.000000
|
||||||
|
0:? 0.062500
|
||||||
|
0:6 interpolateAtOffset (temp 3-component vector of float)
|
||||||
|
0:6 'inF3' (in 3-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.187500
|
||||||
|
0:? -0.375000
|
||||||
|
0:7 interpolateAtOffset (temp 4-component vector of float)
|
||||||
|
0:7 'inF4' (in 4-component vector of float)
|
||||||
|
0:? Constant:
|
||||||
|
0:? 0.437500
|
||||||
|
0:? -0.500000
|
||||||
|
0:9 interpolateAtOffset (temp float)
|
||||||
|
0:9 'inF1' (in float)
|
||||||
|
0:9 vector-scale (temp 2-component vector of float)
|
||||||
|
0:9 Convert int to float (temp 2-component vector of float)
|
||||||
|
0:9 right-shift (temp 2-component vector of int)
|
||||||
|
0:9 left-shift (temp 2-component vector of int)
|
||||||
|
0:9 'inI2' (in 2-component vector of int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 28 (const int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 28 (const int)
|
||||||
|
0:9 Constant:
|
||||||
|
0:9 0.062500
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 46
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
Capability InterpolationFunction
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "main" 8 15 22 29 36
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "main"
|
||||||
|
Name 8 "inF1"
|
||||||
|
Name 15 "inF2"
|
||||||
|
Name 22 "inF3"
|
||||||
|
Name 29 "inF4"
|
||||||
|
Name 36 "inI2"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypePointer Input 6(float)
|
||||||
|
8(inF1): 7(ptr) Variable Input
|
||||||
|
9: TypeVector 6(float) 2
|
||||||
|
10: 6(float) Constant 3204448256
|
||||||
|
11: 6(float) Constant 3179282432
|
||||||
|
12: 9(fvec2) ConstantComposite 10 11
|
||||||
|
14: TypePointer Input 9(fvec2)
|
||||||
|
15(inF2): 14(ptr) Variable Input
|
||||||
|
16: 6(float) Constant 0
|
||||||
|
17: 6(float) Constant 1031798784
|
||||||
|
18: 9(fvec2) ConstantComposite 16 17
|
||||||
|
20: TypeVector 6(float) 3
|
||||||
|
21: TypePointer Input 20(fvec3)
|
||||||
|
22(inF3): 21(ptr) Variable Input
|
||||||
|
23: 6(float) Constant 1044381696
|
||||||
|
24: 6(float) Constant 3200253952
|
||||||
|
25: 9(fvec2) ConstantComposite 23 24
|
||||||
|
27: TypeVector 6(float) 4
|
||||||
|
28: TypePointer Input 27(fvec4)
|
||||||
|
29(inF4): 28(ptr) Variable Input
|
||||||
|
30: 6(float) Constant 1054867456
|
||||||
|
31: 9(fvec2) ConstantComposite 30 10
|
||||||
|
33: TypeInt 32 1
|
||||||
|
34: TypeVector 33(int) 2
|
||||||
|
35: TypePointer Input 34(ivec2)
|
||||||
|
36(inI2): 35(ptr) Variable Input
|
||||||
|
38: 33(int) Constant 28
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
13: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 12
|
||||||
|
19: 9(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 15(inF2) 18
|
||||||
|
26: 20(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 22(inF3) 25
|
||||||
|
32: 27(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 29(inF4) 31
|
||||||
|
37: 34(ivec2) Load 36(inI2)
|
||||||
|
39: 34(ivec2) CompositeConstruct 38 38
|
||||||
|
40: 34(ivec2) ShiftLeftLogical 37 39
|
||||||
|
41: 34(ivec2) CompositeConstruct 38 38
|
||||||
|
42: 34(ivec2) ShiftRightArithmetic 40 41
|
||||||
|
43: 9(fvec2) ConvertSToF 42
|
||||||
|
44: 9(fvec2) VectorTimesScalar 43 17
|
||||||
|
45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 44
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
129
Test/baseResults/hlsl.intrinsics.f1632.frag.out
Normal file
129
Test/baseResults/hlsl.intrinsics.f1632.frag.out
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
hlsl.intrinsics.f1632.frag
|
||||||
|
ERROR: 0:3: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||||
|
ERROR: 0:16: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||||
|
ERROR: 0:23: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||||
|
ERROR: 0:30: 'f32tof16' : unimplemented intrinsic: handle natively
|
||||||
|
ERROR: 4 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
ERROR: node is still EOpNull!
|
||||||
|
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'inF0' (in float)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 ERROR: Bad unary op
|
||||||
|
(global uint)
|
||||||
|
0:3 'inF0' (in float)
|
||||||
|
0:5 Branch: Return with expression
|
||||||
|
0:5 Constant:
|
||||||
|
0:5 0.000000
|
||||||
|
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:9 'inF0' (in 1-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:11 Branch: Return with expression
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0.000000
|
||||||
|
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
||||||
|
0:15 Function Parameters:
|
||||||
|
0:15 'inF0' (in 2-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:16 ERROR: Bad unary op
|
||||||
|
(global 2-component vector of uint)
|
||||||
|
0:16 'inF0' (in 2-component vector of float)
|
||||||
|
0:18 Branch: Return with expression
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float)
|
||||||
|
0:22 Function Parameters:
|
||||||
|
0:22 'inF0' (in 3-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:23 ERROR: Bad unary op
|
||||||
|
(global 3-component vector of uint)
|
||||||
|
0:23 'inF0' (in 3-component vector of float)
|
||||||
|
0:25 Branch: Return with expression
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||||
|
0:29 Function Parameters:
|
||||||
|
0:29 'inF0' (in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:30 ERROR: Bad unary op
|
||||||
|
(global 4-component vector of uint)
|
||||||
|
0:30 'inF0' (in 4-component vector of float)
|
||||||
|
0:32 Branch: Return with expression
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
ERROR: node is still EOpNull!
|
||||||
|
0:8 Function Definition: PixelShaderFunction(f1; (temp float)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'inF0' (in float)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 ERROR: Bad unary op
|
||||||
|
(global uint)
|
||||||
|
0:3 'inF0' (in float)
|
||||||
|
0:5 Branch: Return with expression
|
||||||
|
0:5 Constant:
|
||||||
|
0:5 0.000000
|
||||||
|
0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float)
|
||||||
|
0:9 Function Parameters:
|
||||||
|
0:9 'inF0' (in 1-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:11 Branch: Return with expression
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0.000000
|
||||||
|
0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float)
|
||||||
|
0:15 Function Parameters:
|
||||||
|
0:15 'inF0' (in 2-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:16 ERROR: Bad unary op
|
||||||
|
(global 2-component vector of uint)
|
||||||
|
0:16 'inF0' (in 2-component vector of float)
|
||||||
|
0:18 Branch: Return with expression
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float)
|
||||||
|
0:22 Function Parameters:
|
||||||
|
0:22 'inF0' (in 3-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:23 ERROR: Bad unary op
|
||||||
|
(global 3-component vector of uint)
|
||||||
|
0:23 'inF0' (in 3-component vector of float)
|
||||||
|
0:25 Branch: Return with expression
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
|
||||||
|
0:29 Function Parameters:
|
||||||
|
0:29 'inF0' (in 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:30 ERROR: Bad unary op
|
||||||
|
(global 4-component vector of uint)
|
||||||
|
0:30 'inF0' (in 4-component vector of float)
|
||||||
|
0:32 Branch: Return with expression
|
||||||
|
0:? Constant:
|
||||||
|
0:? 1.000000
|
||||||
|
0:? 2.000000
|
||||||
|
0:? 3.000000
|
||||||
|
0:? 4.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
SPIR-V is not generated for failed compile or link
|
@ -638,7 +638,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:281 dot-product (global float)
|
0:281 dot-product (global float)
|
||||||
0:281 'inF0' (in 4-component vector of float)
|
0:281 'inF0' (in 4-component vector of float)
|
||||||
0:281 'inF1' (in 4-component vector of float)
|
0:281 'inF1' (in 4-component vector of float)
|
||||||
0:282 Construct vec4 (temp float)
|
0:282 Construct vec4 (temp 4-component vector of float)
|
||||||
0:282 Constant:
|
0:282 Constant:
|
||||||
0:282 1.000000
|
0:282 1.000000
|
||||||
0:282 component-wise multiply (temp float)
|
0:282 component-wise multiply (temp float)
|
||||||
@ -2088,7 +2088,7 @@ gl_FragCoord origin is upper left
|
|||||||
0:281 dot-product (global float)
|
0:281 dot-product (global float)
|
||||||
0:281 'inF0' (in 4-component vector of float)
|
0:281 'inF0' (in 4-component vector of float)
|
||||||
0:281 'inF1' (in 4-component vector of float)
|
0:281 'inF1' (in 4-component vector of float)
|
||||||
0:282 Construct vec4 (temp float)
|
0:282 Construct vec4 (temp 4-component vector of float)
|
||||||
0:282 Constant:
|
0:282 Constant:
|
||||||
0:282 1.000000
|
0:282 1.000000
|
||||||
0:282 component-wise multiply (temp float)
|
0:282 component-wise multiply (temp float)
|
||||||
@ -2897,13 +2897,13 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 1264
|
// Id's are bound by 1265
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
Capability DerivativeControl
|
Capability DerivativeControl
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 718 732 747 856 870 885 997 1011 1026
|
EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 719 733 748 857 871 886 998 1012 1027
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 450
|
Source HLSL 450
|
||||||
Name 4 "PixelShaderFunction"
|
Name 4 "PixelShaderFunction"
|
||||||
@ -2947,58 +2947,58 @@ gl_FragCoord origin is upper left
|
|||||||
Name 557 "inU0"
|
Name 557 "inU0"
|
||||||
Name 563 "inF1"
|
Name 563 "inF1"
|
||||||
Name 570 "inF2"
|
Name 570 "inF2"
|
||||||
Name 634 "ResType"
|
Name 635 "ResType"
|
||||||
Name 718 "inF0"
|
Name 719 "inF0"
|
||||||
Name 732 "inF1"
|
Name 733 "inF1"
|
||||||
Name 747 "inF2"
|
Name 748 "inF2"
|
||||||
Name 790 "ResType"
|
Name 791 "ResType"
|
||||||
Name 856 "inF0"
|
Name 857 "inF0"
|
||||||
Name 870 "inF1"
|
Name 871 "inF1"
|
||||||
Name 885 "inF2"
|
Name 886 "inF2"
|
||||||
Name 931 "ResType"
|
Name 932 "ResType"
|
||||||
Name 997 "inF0"
|
Name 998 "inF0"
|
||||||
Name 1011 "inF1"
|
Name 1012 "inF1"
|
||||||
Name 1026 "inF2"
|
Name 1027 "inF2"
|
||||||
Name 1075 "ResType"
|
Name 1076 "ResType"
|
||||||
Name 1140 "r0"
|
Name 1141 "r0"
|
||||||
Name 1144 "r1"
|
Name 1145 "r1"
|
||||||
Name 1148 "r2"
|
Name 1149 "r2"
|
||||||
Name 1152 "r3"
|
Name 1153 "r3"
|
||||||
Name 1156 "r4"
|
Name 1157 "r4"
|
||||||
Name 1160 "r5"
|
Name 1161 "r5"
|
||||||
Name 1164 "r6"
|
Name 1165 "r6"
|
||||||
Name 1168 "r7"
|
Name 1169 "r7"
|
||||||
Name 1172 "r8"
|
Name 1173 "r8"
|
||||||
Name 1176 "r0"
|
Name 1177 "r0"
|
||||||
Name 1180 "r1"
|
Name 1181 "r1"
|
||||||
Name 1184 "r2"
|
Name 1185 "r2"
|
||||||
Name 1188 "r3"
|
Name 1189 "r3"
|
||||||
Name 1192 "r4"
|
Name 1193 "r4"
|
||||||
Name 1196 "r5"
|
Name 1197 "r5"
|
||||||
Name 1200 "r6"
|
Name 1201 "r6"
|
||||||
Name 1204 "r7"
|
Name 1205 "r7"
|
||||||
Name 1208 "r8"
|
Name 1209 "r8"
|
||||||
Name 1212 "r0"
|
Name 1213 "r0"
|
||||||
Name 1216 "r1"
|
Name 1217 "r1"
|
||||||
Name 1220 "r2"
|
Name 1221 "r2"
|
||||||
Name 1224 "r3"
|
Name 1225 "r3"
|
||||||
Name 1228 "r4"
|
Name 1229 "r4"
|
||||||
Name 1232 "r5"
|
Name 1233 "r5"
|
||||||
Name 1236 "r6"
|
Name 1237 "r6"
|
||||||
Name 1240 "r7"
|
Name 1241 "r7"
|
||||||
Name 1244 "r8"
|
Name 1245 "r8"
|
||||||
Name 1249 "gs_ua"
|
Name 1250 "gs_ua"
|
||||||
Name 1250 "gs_ub"
|
Name 1251 "gs_ub"
|
||||||
Name 1251 "gs_uc"
|
Name 1252 "gs_uc"
|
||||||
Name 1253 "gs_ua2"
|
Name 1254 "gs_ua2"
|
||||||
Name 1254 "gs_ub2"
|
Name 1255 "gs_ub2"
|
||||||
Name 1255 "gs_uc2"
|
Name 1256 "gs_uc2"
|
||||||
Name 1257 "gs_ua3"
|
Name 1258 "gs_ua3"
|
||||||
Name 1258 "gs_ub3"
|
Name 1259 "gs_ub3"
|
||||||
Name 1259 "gs_uc3"
|
Name 1260 "gs_uc3"
|
||||||
Name 1261 "gs_ua4"
|
Name 1262 "gs_ua4"
|
||||||
Name 1262 "gs_ub4"
|
Name 1263 "gs_ub4"
|
||||||
Name 1263 "gs_uc4"
|
Name 1264 "gs_uc4"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -3078,42 +3078,42 @@ gl_FragCoord origin is upper left
|
|||||||
574: 34(fvec4) ConstantComposite 84 84 84 84
|
574: 34(fvec4) ConstantComposite 84 84 84 84
|
||||||
575: TypeVector 50(bool) 4
|
575: TypeVector 50(bool) 4
|
||||||
585: 554(ivec4) ConstantComposite 93 241 412 159
|
585: 554(ivec4) ConstantComposite 93 241 412 159
|
||||||
634(ResType): TypeStruct 34(fvec4) 551(ivec4)
|
635(ResType): TypeStruct 34(fvec4) 551(ivec4)
|
||||||
678: 64(int) Constant 4
|
679: 64(int) Constant 4
|
||||||
679: 554(ivec4) ConstantComposite 327 159 241 678
|
680: 554(ivec4) ConstantComposite 327 159 241 679
|
||||||
714: 6(float) Constant 1082130432
|
715: 6(float) Constant 1082130432
|
||||||
715: 34(fvec4) ConstantComposite 156 325 535 714
|
716: 34(fvec4) ConstantComposite 156 325 535 715
|
||||||
717: TypePointer Input 10
|
718: TypePointer Input 10
|
||||||
718(inF0): 717(ptr) Variable Input
|
719(inF0): 718(ptr) Variable Input
|
||||||
732(inF1): 717(ptr) Variable Input
|
733(inF1): 718(ptr) Variable Input
|
||||||
738: 10 ConstantComposite 230 230
|
739: 10 ConstantComposite 230 230
|
||||||
739: TypeMatrix 231(bvec2) 2
|
740: TypeMatrix 231(bvec2) 2
|
||||||
747(inF2): 717(ptr) Variable Input
|
748(inF2): 718(ptr) Variable Input
|
||||||
790(ResType): TypeStruct 10 207(ivec2)
|
791(ResType): TypeStruct 10 207(ivec2)
|
||||||
852: 8(fvec2) ConstantComposite 325 325
|
853: 8(fvec2) ConstantComposite 325 325
|
||||||
853: 10 ConstantComposite 852 852
|
854: 10 ConstantComposite 853 853
|
||||||
855: TypePointer Input 23
|
856: TypePointer Input 23
|
||||||
856(inF0): 855(ptr) Variable Input
|
857(inF0): 856(ptr) Variable Input
|
||||||
870(inF1): 855(ptr) Variable Input
|
871(inF1): 856(ptr) Variable Input
|
||||||
876: 23 ConstantComposite 401 401 401
|
877: 23 ConstantComposite 401 401 401
|
||||||
877: TypeMatrix 402(bvec3) 3
|
878: TypeMatrix 402(bvec3) 3
|
||||||
885(inF2): 855(ptr) Variable Input
|
886(inF2): 856(ptr) Variable Input
|
||||||
931(ResType): TypeStruct 23 378(ivec3)
|
932(ResType): TypeStruct 23 378(ivec3)
|
||||||
993: 21(fvec3) ConstantComposite 535 535 535
|
994: 21(fvec3) ConstantComposite 535 535 535
|
||||||
994: 23 ConstantComposite 993 993 993
|
995: 23 ConstantComposite 994 994 994
|
||||||
996: TypePointer Input 36
|
997: TypePointer Input 36
|
||||||
997(inF0): 996(ptr) Variable Input
|
998(inF0): 997(ptr) Variable Input
|
||||||
1011(inF1): 996(ptr) Variable Input
|
1012(inF1): 997(ptr) Variable Input
|
||||||
1017: 36 ConstantComposite 574 574 574 574
|
1018: 36 ConstantComposite 574 574 574 574
|
||||||
1018: TypeMatrix 575(bvec4) 4
|
1019: TypeMatrix 575(bvec4) 4
|
||||||
1026(inF2): 996(ptr) Variable Input
|
1027(inF2): 997(ptr) Variable Input
|
||||||
1075(ResType): TypeStruct 36 551(ivec4)
|
1076(ResType): TypeStruct 36 551(ivec4)
|
||||||
1137: 34(fvec4) ConstantComposite 714 714 714 714
|
1138: 34(fvec4) ConstantComposite 715 715 715 715
|
||||||
1138: 36 ConstantComposite 1137 1137 1137 1137
|
1139: 36 ConstantComposite 1138 1138 1138 1138
|
||||||
1248: TypePointer Function 64(int)
|
1249: TypePointer Function 64(int)
|
||||||
1252: TypePointer Function 210(ivec2)
|
1253: TypePointer Function 210(ivec2)
|
||||||
1256: TypePointer Function 381(ivec3)
|
1257: TypePointer Function 381(ivec3)
|
||||||
1260: TypePointer Function 554(ivec4)
|
1261: TypePointer Function 554(ivec4)
|
||||||
4(PixelShaderFunction): 2 Function None 3
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
49: 6(float) Load 48(inF0)
|
49: 6(float) Load 48(inF0)
|
||||||
@ -3260,51 +3260,51 @@ gl_FragCoord origin is upper left
|
|||||||
17(inFM0): 11(ptr) FunctionParameter
|
17(inFM0): 11(ptr) FunctionParameter
|
||||||
18(inFM1): 11(ptr) FunctionParameter
|
18(inFM1): 11(ptr) FunctionParameter
|
||||||
20: Label
|
20: Label
|
||||||
1140(r0): 7(ptr) Variable Function
|
1141(r0): 7(ptr) Variable Function
|
||||||
1144(r1): 9(ptr) Variable Function
|
1145(r1): 9(ptr) Variable Function
|
||||||
1148(r2): 9(ptr) Variable Function
|
1149(r2): 9(ptr) Variable Function
|
||||||
1152(r3): 7(ptr) Variable Function
|
1153(r3): 7(ptr) Variable Function
|
||||||
1156(r4): 9(ptr) Variable Function
|
1157(r4): 9(ptr) Variable Function
|
||||||
1160(r5): 9(ptr) Variable Function
|
1161(r5): 9(ptr) Variable Function
|
||||||
1164(r6): 11(ptr) Variable Function
|
1165(r6): 11(ptr) Variable Function
|
||||||
1168(r7): 11(ptr) Variable Function
|
1169(r7): 11(ptr) Variable Function
|
||||||
1172(r8): 11(ptr) Variable Function
|
1173(r8): 11(ptr) Variable Function
|
||||||
1141: 6(float) Load 13(inF0)
|
1142: 6(float) Load 13(inF0)
|
||||||
1142: 6(float) Load 14(inF1)
|
1143: 6(float) Load 14(inF1)
|
||||||
1143: 6(float) FMul 1141 1142
|
1144: 6(float) FMul 1142 1143
|
||||||
Store 1140(r0) 1143
|
Store 1141(r0) 1144
|
||||||
1145: 8(fvec2) Load 15(inFV0)
|
1146: 8(fvec2) Load 15(inFV0)
|
||||||
1146: 6(float) Load 13(inF0)
|
1147: 6(float) Load 13(inF0)
|
||||||
1147: 8(fvec2) VectorTimesScalar 1145 1146
|
1148: 8(fvec2) VectorTimesScalar 1146 1147
|
||||||
Store 1144(r1) 1147
|
Store 1145(r1) 1148
|
||||||
1149: 6(float) Load 13(inF0)
|
1150: 6(float) Load 13(inF0)
|
||||||
1150: 8(fvec2) Load 15(inFV0)
|
1151: 8(fvec2) Load 15(inFV0)
|
||||||
1151: 8(fvec2) VectorTimesScalar 1150 1149
|
1152: 8(fvec2) VectorTimesScalar 1151 1150
|
||||||
Store 1148(r2) 1151
|
Store 1149(r2) 1152
|
||||||
1153: 8(fvec2) Load 15(inFV0)
|
1154: 8(fvec2) Load 15(inFV0)
|
||||||
1154: 8(fvec2) Load 16(inFV1)
|
1155: 8(fvec2) Load 16(inFV1)
|
||||||
1155: 6(float) Dot 1153 1154
|
1156: 6(float) Dot 1154 1155
|
||||||
Store 1152(r3) 1155
|
Store 1153(r3) 1156
|
||||||
1157: 10 Load 17(inFM0)
|
1158: 10 Load 17(inFM0)
|
||||||
1158: 8(fvec2) Load 15(inFV0)
|
1159: 8(fvec2) Load 15(inFV0)
|
||||||
1159: 8(fvec2) MatrixTimesVector 1157 1158
|
1160: 8(fvec2) MatrixTimesVector 1158 1159
|
||||||
Store 1156(r4) 1159
|
Store 1157(r4) 1160
|
||||||
1161: 8(fvec2) Load 15(inFV0)
|
1162: 8(fvec2) Load 15(inFV0)
|
||||||
1162: 10 Load 17(inFM0)
|
1163: 10 Load 17(inFM0)
|
||||||
1163: 8(fvec2) VectorTimesMatrix 1161 1162
|
1164: 8(fvec2) VectorTimesMatrix 1162 1163
|
||||||
Store 1160(r5) 1163
|
Store 1161(r5) 1164
|
||||||
1165: 10 Load 17(inFM0)
|
1166: 10 Load 17(inFM0)
|
||||||
1166: 6(float) Load 13(inF0)
|
1167: 6(float) Load 13(inF0)
|
||||||
1167: 10 MatrixTimesScalar 1165 1166
|
1168: 10 MatrixTimesScalar 1166 1167
|
||||||
Store 1164(r6) 1167
|
Store 1165(r6) 1168
|
||||||
1169: 6(float) Load 13(inF0)
|
1170: 6(float) Load 13(inF0)
|
||||||
1170: 10 Load 17(inFM0)
|
1171: 10 Load 17(inFM0)
|
||||||
1171: 10 MatrixTimesScalar 1170 1169
|
1172: 10 MatrixTimesScalar 1171 1170
|
||||||
Store 1168(r7) 1171
|
Store 1169(r7) 1172
|
||||||
1173: 10 Load 17(inFM0)
|
1174: 10 Load 17(inFM0)
|
||||||
1174: 10 Load 18(inFM1)
|
1175: 10 Load 18(inFM1)
|
||||||
1175: 10 MatrixTimesMatrix 1173 1174
|
1176: 10 MatrixTimesMatrix 1174 1175
|
||||||
Store 1172(r8) 1175
|
Store 1173(r8) 1176
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25
|
32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25
|
||||||
@ -3315,51 +3315,51 @@ gl_FragCoord origin is upper left
|
|||||||
30(inFM0): 24(ptr) FunctionParameter
|
30(inFM0): 24(ptr) FunctionParameter
|
||||||
31(inFM1): 24(ptr) FunctionParameter
|
31(inFM1): 24(ptr) FunctionParameter
|
||||||
33: Label
|
33: Label
|
||||||
1176(r0): 7(ptr) Variable Function
|
1177(r0): 7(ptr) Variable Function
|
||||||
1180(r1): 22(ptr) Variable Function
|
1181(r1): 22(ptr) Variable Function
|
||||||
1184(r2): 22(ptr) Variable Function
|
1185(r2): 22(ptr) Variable Function
|
||||||
1188(r3): 7(ptr) Variable Function
|
1189(r3): 7(ptr) Variable Function
|
||||||
1192(r4): 22(ptr) Variable Function
|
1193(r4): 22(ptr) Variable Function
|
||||||
1196(r5): 22(ptr) Variable Function
|
1197(r5): 22(ptr) Variable Function
|
||||||
1200(r6): 24(ptr) Variable Function
|
1201(r6): 24(ptr) Variable Function
|
||||||
1204(r7): 24(ptr) Variable Function
|
1205(r7): 24(ptr) Variable Function
|
||||||
1208(r8): 24(ptr) Variable Function
|
1209(r8): 24(ptr) Variable Function
|
||||||
1177: 6(float) Load 26(inF0)
|
1178: 6(float) Load 26(inF0)
|
||||||
1178: 6(float) Load 27(inF1)
|
1179: 6(float) Load 27(inF1)
|
||||||
1179: 6(float) FMul 1177 1178
|
1180: 6(float) FMul 1178 1179
|
||||||
Store 1176(r0) 1179
|
Store 1177(r0) 1180
|
||||||
1181: 21(fvec3) Load 28(inFV0)
|
1182: 21(fvec3) Load 28(inFV0)
|
||||||
1182: 6(float) Load 26(inF0)
|
1183: 6(float) Load 26(inF0)
|
||||||
1183: 21(fvec3) VectorTimesScalar 1181 1182
|
1184: 21(fvec3) VectorTimesScalar 1182 1183
|
||||||
Store 1180(r1) 1183
|
Store 1181(r1) 1184
|
||||||
1185: 6(float) Load 26(inF0)
|
1186: 6(float) Load 26(inF0)
|
||||||
1186: 21(fvec3) Load 28(inFV0)
|
1187: 21(fvec3) Load 28(inFV0)
|
||||||
1187: 21(fvec3) VectorTimesScalar 1186 1185
|
1188: 21(fvec3) VectorTimesScalar 1187 1186
|
||||||
Store 1184(r2) 1187
|
Store 1185(r2) 1188
|
||||||
1189: 21(fvec3) Load 28(inFV0)
|
1190: 21(fvec3) Load 28(inFV0)
|
||||||
1190: 21(fvec3) Load 29(inFV1)
|
1191: 21(fvec3) Load 29(inFV1)
|
||||||
1191: 6(float) Dot 1189 1190
|
1192: 6(float) Dot 1190 1191
|
||||||
Store 1188(r3) 1191
|
Store 1189(r3) 1192
|
||||||
1193: 23 Load 30(inFM0)
|
1194: 23 Load 30(inFM0)
|
||||||
1194: 21(fvec3) Load 28(inFV0)
|
1195: 21(fvec3) Load 28(inFV0)
|
||||||
1195: 21(fvec3) MatrixTimesVector 1193 1194
|
1196: 21(fvec3) MatrixTimesVector 1194 1195
|
||||||
Store 1192(r4) 1195
|
Store 1193(r4) 1196
|
||||||
1197: 21(fvec3) Load 28(inFV0)
|
1198: 21(fvec3) Load 28(inFV0)
|
||||||
1198: 23 Load 30(inFM0)
|
1199: 23 Load 30(inFM0)
|
||||||
1199: 21(fvec3) VectorTimesMatrix 1197 1198
|
1200: 21(fvec3) VectorTimesMatrix 1198 1199
|
||||||
Store 1196(r5) 1199
|
Store 1197(r5) 1200
|
||||||
1201: 23 Load 30(inFM0)
|
1202: 23 Load 30(inFM0)
|
||||||
1202: 6(float) Load 26(inF0)
|
1203: 6(float) Load 26(inF0)
|
||||||
1203: 23 MatrixTimesScalar 1201 1202
|
1204: 23 MatrixTimesScalar 1202 1203
|
||||||
Store 1200(r6) 1203
|
Store 1201(r6) 1204
|
||||||
1205: 6(float) Load 26(inF0)
|
1206: 6(float) Load 26(inF0)
|
||||||
1206: 23 Load 30(inFM0)
|
1207: 23 Load 30(inFM0)
|
||||||
1207: 23 MatrixTimesScalar 1206 1205
|
1208: 23 MatrixTimesScalar 1207 1206
|
||||||
Store 1204(r7) 1207
|
Store 1205(r7) 1208
|
||||||
1209: 23 Load 30(inFM0)
|
1210: 23 Load 30(inFM0)
|
||||||
1210: 23 Load 31(inFM1)
|
1211: 23 Load 31(inFM1)
|
||||||
1211: 23 MatrixTimesMatrix 1209 1210
|
1212: 23 MatrixTimesMatrix 1210 1211
|
||||||
Store 1208(r8) 1211
|
Store 1209(r8) 1212
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38
|
45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38
|
||||||
@ -3370,62 +3370,62 @@ gl_FragCoord origin is upper left
|
|||||||
43(inFM0): 37(ptr) FunctionParameter
|
43(inFM0): 37(ptr) FunctionParameter
|
||||||
44(inFM1): 37(ptr) FunctionParameter
|
44(inFM1): 37(ptr) FunctionParameter
|
||||||
46: Label
|
46: Label
|
||||||
1212(r0): 7(ptr) Variable Function
|
1213(r0): 7(ptr) Variable Function
|
||||||
1216(r1): 35(ptr) Variable Function
|
1217(r1): 35(ptr) Variable Function
|
||||||
1220(r2): 35(ptr) Variable Function
|
1221(r2): 35(ptr) Variable Function
|
||||||
1224(r3): 7(ptr) Variable Function
|
1225(r3): 7(ptr) Variable Function
|
||||||
1228(r4): 35(ptr) Variable Function
|
1229(r4): 35(ptr) Variable Function
|
||||||
1232(r5): 35(ptr) Variable Function
|
1233(r5): 35(ptr) Variable Function
|
||||||
1236(r6): 37(ptr) Variable Function
|
1237(r6): 37(ptr) Variable Function
|
||||||
1240(r7): 37(ptr) Variable Function
|
1241(r7): 37(ptr) Variable Function
|
||||||
1244(r8): 37(ptr) Variable Function
|
1245(r8): 37(ptr) Variable Function
|
||||||
1249(gs_ua): 1248(ptr) Variable Function
|
1250(gs_ua): 1249(ptr) Variable Function
|
||||||
1250(gs_ub): 1248(ptr) Variable Function
|
1251(gs_ub): 1249(ptr) Variable Function
|
||||||
1251(gs_uc): 1248(ptr) Variable Function
|
1252(gs_uc): 1249(ptr) Variable Function
|
||||||
1253(gs_ua2): 1252(ptr) Variable Function
|
1254(gs_ua2): 1253(ptr) Variable Function
|
||||||
1254(gs_ub2): 1252(ptr) Variable Function
|
1255(gs_ub2): 1253(ptr) Variable Function
|
||||||
1255(gs_uc2): 1252(ptr) Variable Function
|
1256(gs_uc2): 1253(ptr) Variable Function
|
||||||
1257(gs_ua3): 1256(ptr) Variable Function
|
1258(gs_ua3): 1257(ptr) Variable Function
|
||||||
1258(gs_ub3): 1256(ptr) Variable Function
|
1259(gs_ub3): 1257(ptr) Variable Function
|
||||||
1259(gs_uc3): 1256(ptr) Variable Function
|
1260(gs_uc3): 1257(ptr) Variable Function
|
||||||
1261(gs_ua4): 1260(ptr) Variable Function
|
1262(gs_ua4): 1261(ptr) Variable Function
|
||||||
1262(gs_ub4): 1260(ptr) Variable Function
|
1263(gs_ub4): 1261(ptr) Variable Function
|
||||||
1263(gs_uc4): 1260(ptr) Variable Function
|
1264(gs_uc4): 1261(ptr) Variable Function
|
||||||
1213: 6(float) Load 39(inF0)
|
1214: 6(float) Load 39(inF0)
|
||||||
1214: 6(float) Load 40(inF1)
|
1215: 6(float) Load 40(inF1)
|
||||||
1215: 6(float) FMul 1213 1214
|
1216: 6(float) FMul 1214 1215
|
||||||
Store 1212(r0) 1215
|
Store 1213(r0) 1216
|
||||||
1217: 34(fvec4) Load 41(inFV0)
|
1218: 34(fvec4) Load 41(inFV0)
|
||||||
1218: 6(float) Load 39(inF0)
|
1219: 6(float) Load 39(inF0)
|
||||||
1219: 34(fvec4) VectorTimesScalar 1217 1218
|
1220: 34(fvec4) VectorTimesScalar 1218 1219
|
||||||
Store 1216(r1) 1219
|
Store 1217(r1) 1220
|
||||||
1221: 6(float) Load 39(inF0)
|
1222: 6(float) Load 39(inF0)
|
||||||
1222: 34(fvec4) Load 41(inFV0)
|
1223: 34(fvec4) Load 41(inFV0)
|
||||||
1223: 34(fvec4) VectorTimesScalar 1222 1221
|
1224: 34(fvec4) VectorTimesScalar 1223 1222
|
||||||
Store 1220(r2) 1223
|
Store 1221(r2) 1224
|
||||||
1225: 34(fvec4) Load 41(inFV0)
|
1226: 34(fvec4) Load 41(inFV0)
|
||||||
1226: 34(fvec4) Load 42(inFV1)
|
1227: 34(fvec4) Load 42(inFV1)
|
||||||
1227: 6(float) Dot 1225 1226
|
1228: 6(float) Dot 1226 1227
|
||||||
Store 1224(r3) 1227
|
Store 1225(r3) 1228
|
||||||
1229: 36 Load 43(inFM0)
|
1230: 36 Load 43(inFM0)
|
||||||
1230: 34(fvec4) Load 41(inFV0)
|
1231: 34(fvec4) Load 41(inFV0)
|
||||||
1231: 34(fvec4) MatrixTimesVector 1229 1230
|
1232: 34(fvec4) MatrixTimesVector 1230 1231
|
||||||
Store 1228(r4) 1231
|
Store 1229(r4) 1232
|
||||||
1233: 34(fvec4) Load 41(inFV0)
|
1234: 34(fvec4) Load 41(inFV0)
|
||||||
1234: 36 Load 43(inFM0)
|
1235: 36 Load 43(inFM0)
|
||||||
1235: 34(fvec4) VectorTimesMatrix 1233 1234
|
1236: 34(fvec4) VectorTimesMatrix 1234 1235
|
||||||
Store 1232(r5) 1235
|
Store 1233(r5) 1236
|
||||||
1237: 36 Load 43(inFM0)
|
1238: 36 Load 43(inFM0)
|
||||||
1238: 6(float) Load 39(inF0)
|
1239: 6(float) Load 39(inF0)
|
||||||
1239: 36 MatrixTimesScalar 1237 1238
|
1240: 36 MatrixTimesScalar 1238 1239
|
||||||
Store 1236(r6) 1239
|
Store 1237(r6) 1240
|
||||||
1241: 6(float) Load 39(inF0)
|
1242: 6(float) Load 39(inF0)
|
||||||
1242: 36 Load 43(inFM0)
|
1243: 36 Load 43(inFM0)
|
||||||
1243: 36 MatrixTimesScalar 1242 1241
|
1244: 36 MatrixTimesScalar 1243 1242
|
||||||
Store 1240(r7) 1243
|
Store 1241(r7) 1244
|
||||||
1245: 36 Load 43(inFM0)
|
1246: 36 Load 43(inFM0)
|
||||||
1246: 36 Load 44(inFM1)
|
1247: 36 Load 44(inFM1)
|
||||||
1247: 36 MatrixTimesMatrix 1245 1246
|
1248: 36 MatrixTimesMatrix 1246 1247
|
||||||
Store 1244(r8) 1247
|
Store 1245(r8) 1248
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
134
Test/baseResults/hlsl.intrinsics.lit.frag.out
Normal file
134
Test/baseResults/hlsl.intrinsics.lit.frag.out
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
hlsl.intrinsics.lit.frag
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'n_dot_l' (in float)
|
||||||
|
0:2 'n_dot_h' (in float)
|
||||||
|
0:2 'm' (in float)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:3 'r0' (temp 4-component vector of float)
|
||||||
|
0:3 Construct vec4 (temp 4-component vector of float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 1.000000
|
||||||
|
0:3 max (temp float)
|
||||||
|
0:3 'n_dot_l' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.000000
|
||||||
|
0:3 Test condition and select (temp float)
|
||||||
|
0:3 Condition
|
||||||
|
0:3 Compare Less Than (temp bool)
|
||||||
|
0:3 min (temp float)
|
||||||
|
0:3 'n_dot_l' (in float)
|
||||||
|
0:3 'n_dot_h' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.000000
|
||||||
|
0:3 true case
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.000000
|
||||||
|
0:3 false case
|
||||||
|
0:3 component-wise multiply (temp float)
|
||||||
|
0:3 'n_dot_h' (in float)
|
||||||
|
0:3 'm' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 1.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
Linked fragment stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 450
|
||||||
|
gl_FragCoord origin is upper left
|
||||||
|
0:? Sequence
|
||||||
|
0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
|
||||||
|
0:2 Function Parameters:
|
||||||
|
0:2 'n_dot_l' (in float)
|
||||||
|
0:2 'n_dot_h' (in float)
|
||||||
|
0:2 'm' (in float)
|
||||||
|
0:? Sequence
|
||||||
|
0:3 move second child to first child (temp 4-component vector of float)
|
||||||
|
0:3 'r0' (temp 4-component vector of float)
|
||||||
|
0:3 Construct vec4 (temp 4-component vector of float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 1.000000
|
||||||
|
0:3 max (temp float)
|
||||||
|
0:3 'n_dot_l' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.000000
|
||||||
|
0:3 Test condition and select (temp float)
|
||||||
|
0:3 Condition
|
||||||
|
0:3 Compare Less Than (temp bool)
|
||||||
|
0:3 min (temp float)
|
||||||
|
0:3 'n_dot_l' (in float)
|
||||||
|
0:3 'n_dot_h' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.000000
|
||||||
|
0:3 true case
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 0.000000
|
||||||
|
0:3 false case
|
||||||
|
0:3 component-wise multiply (temp float)
|
||||||
|
0:3 'n_dot_h' (in float)
|
||||||
|
0:3 'm' (in float)
|
||||||
|
0:3 Constant:
|
||||||
|
0:3 1.000000
|
||||||
|
0:? Linker Objects
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 33
|
||||||
|
|
||||||
|
Capability Shader
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Fragment 4 "PixelShaderFunction" 12 19 28
|
||||||
|
ExecutionMode 4 OriginUpperLeft
|
||||||
|
Source HLSL 450
|
||||||
|
Name 4 "PixelShaderFunction"
|
||||||
|
Name 9 "r0"
|
||||||
|
Name 12 "n_dot_l"
|
||||||
|
Name 19 "n_dot_h"
|
||||||
|
Name 28 "m"
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypePointer Function 7(fvec4)
|
||||||
|
10: 6(float) Constant 1065353216
|
||||||
|
11: TypePointer Input 6(float)
|
||||||
|
12(n_dot_l): 11(ptr) Variable Input
|
||||||
|
14: 6(float) Constant 0
|
||||||
|
16: TypePointer Function 6(float)
|
||||||
|
19(n_dot_h): 11(ptr) Variable Input
|
||||||
|
22: TypeBool
|
||||||
|
28(m): 11(ptr) Variable Input
|
||||||
|
4(PixelShaderFunction): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
9(r0): 8(ptr) Variable Function
|
||||||
|
17: 16(ptr) Variable Function
|
||||||
|
13: 6(float) Load 12(n_dot_l)
|
||||||
|
15: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 13 14
|
||||||
|
18: 6(float) Load 12(n_dot_l)
|
||||||
|
20: 6(float) Load 19(n_dot_h)
|
||||||
|
21: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 18 20
|
||||||
|
23: 22(bool) FOrdLessThan 21 14
|
||||||
|
SelectionMerge 25 None
|
||||||
|
BranchConditional 23 24 26
|
||||||
|
24: Label
|
||||||
|
Store 17 14
|
||||||
|
Branch 25
|
||||||
|
26: Label
|
||||||
|
27: 6(float) Load 19(n_dot_h)
|
||||||
|
29: 6(float) Load 28(m)
|
||||||
|
30: 6(float) FMul 27 29
|
||||||
|
Store 17 30
|
||||||
|
Branch 25
|
||||||
|
25: Label
|
||||||
|
31: 6(float) Load 17
|
||||||
|
32: 7(fvec4) CompositeConstruct 10 15 31 10
|
||||||
|
Store 9(r0) 32
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
@ -1,4 +1,6 @@
|
|||||||
hlsl.intrinsics.negative.vert
|
hlsl.intrinsics.negative.vert
|
||||||
|
ERROR: 0:18: 'AllMemoryBarrier' : no matching overloaded function found
|
||||||
|
ERROR: 0:19: 'AllMemoryBarrierWithGroupSync' : no matching overloaded function found
|
||||||
ERROR: 0:20: 'asdouble' : no matching overloaded function found
|
ERROR: 0:20: 'asdouble' : no matching overloaded function found
|
||||||
ERROR: 0:21: 'CheckAccessFullyMapped' : no matching overloaded function found
|
ERROR: 0:21: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||||
ERROR: 0:22: 'CheckAccessFullyMapped' : no matching overloaded function found
|
ERROR: 0:22: 'CheckAccessFullyMapped' : no matching overloaded function found
|
||||||
@ -6,6 +8,8 @@ ERROR: 0:23: 'clip' : no matching overloaded function found
|
|||||||
ERROR: 0:24: 'countbits' : no matching overloaded function found
|
ERROR: 0:24: 'countbits' : no matching overloaded function found
|
||||||
ERROR: 0:25: 'cross' : no matching overloaded function found
|
ERROR: 0:25: 'cross' : no matching overloaded function found
|
||||||
ERROR: 0:26: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
ERROR: 0:26: 'D3DCOLORtoUBYTE4' : no matching overloaded function found
|
||||||
|
ERROR: 0:27: 'DeviceMemoryBarrier' : no matching overloaded function found
|
||||||
|
ERROR: 0:28: 'DeviceMemoryBarrierWithGroupSync' : no matching overloaded function found
|
||||||
ERROR: 0:29: 'ddx' : no matching overloaded function found
|
ERROR: 0:29: 'ddx' : no matching overloaded function found
|
||||||
ERROR: 0:30: 'ddx_coarse' : no matching overloaded function found
|
ERROR: 0:30: 'ddx_coarse' : no matching overloaded function found
|
||||||
ERROR: 0:31: 'ddx_fine' : no matching overloaded function found
|
ERROR: 0:31: 'ddx_fine' : no matching overloaded function found
|
||||||
@ -35,6 +39,8 @@ ERROR: 0:54: 'InterlockedOr' : no matching overloaded function found
|
|||||||
ERROR: 0:55: 'InterlockedOr' : no matching overloaded function found
|
ERROR: 0:55: 'InterlockedOr' : no matching overloaded function found
|
||||||
ERROR: 0:56: 'InterlockedXor' : no matching overloaded function found
|
ERROR: 0:56: 'InterlockedXor' : no matching overloaded function found
|
||||||
ERROR: 0:57: 'InterlockedXor' : no matching overloaded function found
|
ERROR: 0:57: 'InterlockedXor' : no matching overloaded function found
|
||||||
|
ERROR: 0:58: 'GroupMemoryBarrier' : no matching overloaded function found
|
||||||
|
ERROR: 0:59: 'GroupMemoryBarrierWithGroupSync' : no matching overloaded function found
|
||||||
ERROR: 0:60: 'length' : no matching overloaded function found
|
ERROR: 0:60: 'length' : no matching overloaded function found
|
||||||
ERROR: 0:61: 'msad4' : no matching overloaded function found
|
ERROR: 0:61: 'msad4' : no matching overloaded function found
|
||||||
ERROR: 0:62: 'normalize' : no matching overloaded function found
|
ERROR: 0:62: 'normalize' : no matching overloaded function found
|
||||||
@ -226,7 +232,7 @@ ERROR: 0:270: 'normalize' : no matching overloaded function found
|
|||||||
ERROR: 0:270: 'reflect' : no matching overloaded function found
|
ERROR: 0:270: 'reflect' : no matching overloaded function found
|
||||||
ERROR: 0:270: 'refract' : no matching overloaded function found
|
ERROR: 0:270: 'refract' : no matching overloaded function found
|
||||||
ERROR: 0:270: 'reversebits' : no matching overloaded function found
|
ERROR: 0:270: 'reversebits' : no matching overloaded function found
|
||||||
ERROR: 227 compilation errors. No code generated.
|
ERROR: 233 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
@ -238,6 +244,10 @@ ERROR: node is still EOpNull!
|
|||||||
0:15 'inF2' (in float)
|
0:15 'inF2' (in float)
|
||||||
0:15 'inI0' (in int)
|
0:15 'inI0' (in int)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0.000000
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0.000000
|
||||||
0:20 Constant:
|
0:20 Constant:
|
||||||
0:20 0.000000
|
0:20 0.000000
|
||||||
0:21 Constant:
|
0:21 Constant:
|
||||||
@ -252,6 +262,10 @@ ERROR: node is still EOpNull!
|
|||||||
0:25 0.000000
|
0:25 0.000000
|
||||||
0:26 Constant:
|
0:26 Constant:
|
||||||
0:26 0.000000
|
0:26 0.000000
|
||||||
|
0:27 Constant:
|
||||||
|
0:27 0.000000
|
||||||
|
0:28 Constant:
|
||||||
|
0:28 0.000000
|
||||||
0:29 Constant:
|
0:29 Constant:
|
||||||
0:29 0.000000
|
0:29 0.000000
|
||||||
0:30 Constant:
|
0:30 Constant:
|
||||||
@ -310,6 +324,10 @@ ERROR: node is still EOpNull!
|
|||||||
0:56 0.000000
|
0:56 0.000000
|
||||||
0:57 Constant:
|
0:57 Constant:
|
||||||
0:57 0.000000
|
0:57 0.000000
|
||||||
|
0:58 Constant:
|
||||||
|
0:58 0.000000
|
||||||
|
0:59 Constant:
|
||||||
|
0:59 0.000000
|
||||||
0:60 Constant:
|
0:60 Constant:
|
||||||
0:60 0.000000
|
0:60 0.000000
|
||||||
0:61 Constant:
|
0:61 Constant:
|
||||||
@ -821,6 +839,10 @@ ERROR: node is still EOpNull!
|
|||||||
0:15 'inF2' (in float)
|
0:15 'inF2' (in float)
|
||||||
0:15 'inI0' (in int)
|
0:15 'inI0' (in int)
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0.000000
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0.000000
|
||||||
0:20 Constant:
|
0:20 Constant:
|
||||||
0:20 0.000000
|
0:20 0.000000
|
||||||
0:21 Constant:
|
0:21 Constant:
|
||||||
@ -835,6 +857,10 @@ ERROR: node is still EOpNull!
|
|||||||
0:25 0.000000
|
0:25 0.000000
|
||||||
0:26 Constant:
|
0:26 Constant:
|
||||||
0:26 0.000000
|
0:26 0.000000
|
||||||
|
0:27 Constant:
|
||||||
|
0:27 0.000000
|
||||||
|
0:28 Constant:
|
||||||
|
0:28 0.000000
|
||||||
0:29 Constant:
|
0:29 Constant:
|
||||||
0:29 0.000000
|
0:29 0.000000
|
||||||
0:30 Constant:
|
0:30 Constant:
|
||||||
@ -893,6 +919,10 @@ ERROR: node is still EOpNull!
|
|||||||
0:56 0.000000
|
0:56 0.000000
|
||||||
0:57 Constant:
|
0:57 Constant:
|
||||||
0:57 0.000000
|
0:57 0.000000
|
||||||
|
0:58 Constant:
|
||||||
|
0:58 0.000000
|
||||||
|
0:59 Constant:
|
||||||
|
0:59 0.000000
|
||||||
0:60 Constant:
|
0:60 Constant:
|
||||||
0:60 0.000000
|
0:60 0.000000
|
||||||
0:61 Constant:
|
0:61 Constant:
|
||||||
|
@ -530,7 +530,7 @@ Shader version: 450
|
|||||||
0:227 dot-product (global float)
|
0:227 dot-product (global float)
|
||||||
0:227 'inF0' (in 4-component vector of float)
|
0:227 'inF0' (in 4-component vector of float)
|
||||||
0:227 'inF1' (in 4-component vector of float)
|
0:227 'inF1' (in 4-component vector of float)
|
||||||
0:228 Construct vec4 (temp float)
|
0:228 Construct vec4 (temp 4-component vector of float)
|
||||||
0:228 Constant:
|
0:228 Constant:
|
||||||
0:228 1.000000
|
0:228 1.000000
|
||||||
0:228 component-wise multiply (temp float)
|
0:228 component-wise multiply (temp float)
|
||||||
@ -1759,7 +1759,7 @@ Shader version: 450
|
|||||||
0:227 dot-product (global float)
|
0:227 dot-product (global float)
|
||||||
0:227 'inF0' (in 4-component vector of float)
|
0:227 'inF0' (in 4-component vector of float)
|
||||||
0:227 'inF1' (in 4-component vector of float)
|
0:227 'inF1' (in 4-component vector of float)
|
||||||
0:228 Construct vec4 (temp float)
|
0:228 Construct vec4 (temp 4-component vector of float)
|
||||||
0:228 Constant:
|
0:228 Constant:
|
||||||
0:228 1.000000
|
0:228 1.000000
|
||||||
0:228 component-wise multiply (temp float)
|
0:228 component-wise multiply (temp float)
|
||||||
@ -2455,12 +2455,12 @@ Shader version: 450
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 1089
|
// Id's are bound by 1090
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4 "VertexShaderFunction" 48 67 73 80 174 192 198 205 321 339 345 352 470 488 494 501 625 639 646 741 755 762 860 874 881
|
EntryPoint Vertex 4 "VertexShaderFunction" 48 67 73 80 174 192 198 205 321 339 345 352 470 488 494 501 626 640 647 742 756 763 861 875 882
|
||||||
Source HLSL 450
|
Source HLSL 450
|
||||||
Name 4 "VertexShaderFunction"
|
Name 4 "VertexShaderFunction"
|
||||||
Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;"
|
Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;"
|
||||||
@ -2503,46 +2503,46 @@ Shader version: 450
|
|||||||
Name 488 "inU0"
|
Name 488 "inU0"
|
||||||
Name 494 "inF1"
|
Name 494 "inF1"
|
||||||
Name 501 "inF2"
|
Name 501 "inF2"
|
||||||
Name 545 "ResType"
|
Name 546 "ResType"
|
||||||
Name 625 "inF0"
|
Name 626 "inF0"
|
||||||
Name 639 "inF1"
|
Name 640 "inF1"
|
||||||
Name 646 "inF2"
|
Name 647 "inF2"
|
||||||
Name 677 "ResType"
|
Name 678 "ResType"
|
||||||
Name 741 "inF0"
|
Name 742 "inF0"
|
||||||
Name 755 "inF1"
|
Name 756 "inF1"
|
||||||
Name 762 "inF2"
|
Name 763 "inF2"
|
||||||
Name 796 "ResType"
|
Name 797 "ResType"
|
||||||
Name 860 "inF0"
|
Name 861 "inF0"
|
||||||
Name 874 "inF1"
|
Name 875 "inF1"
|
||||||
Name 881 "inF2"
|
Name 882 "inF2"
|
||||||
Name 918 "ResType"
|
Name 919 "ResType"
|
||||||
Name 981 "r0"
|
Name 982 "r0"
|
||||||
Name 985 "r1"
|
Name 986 "r1"
|
||||||
Name 989 "r2"
|
Name 990 "r2"
|
||||||
Name 993 "r3"
|
Name 994 "r3"
|
||||||
Name 997 "r4"
|
Name 998 "r4"
|
||||||
Name 1001 "r5"
|
Name 1002 "r5"
|
||||||
Name 1005 "r6"
|
Name 1006 "r6"
|
||||||
Name 1009 "r7"
|
Name 1010 "r7"
|
||||||
Name 1013 "r8"
|
Name 1014 "r8"
|
||||||
Name 1017 "r0"
|
Name 1018 "r0"
|
||||||
Name 1021 "r1"
|
Name 1022 "r1"
|
||||||
Name 1025 "r2"
|
Name 1026 "r2"
|
||||||
Name 1029 "r3"
|
Name 1030 "r3"
|
||||||
Name 1033 "r4"
|
Name 1034 "r4"
|
||||||
Name 1037 "r5"
|
Name 1038 "r5"
|
||||||
Name 1041 "r6"
|
Name 1042 "r6"
|
||||||
Name 1045 "r7"
|
Name 1046 "r7"
|
||||||
Name 1049 "r8"
|
Name 1050 "r8"
|
||||||
Name 1053 "r0"
|
Name 1054 "r0"
|
||||||
Name 1057 "r1"
|
Name 1058 "r1"
|
||||||
Name 1061 "r2"
|
Name 1062 "r2"
|
||||||
Name 1065 "r3"
|
Name 1066 "r3"
|
||||||
Name 1069 "r4"
|
Name 1070 "r4"
|
||||||
Name 1073 "r5"
|
Name 1074 "r5"
|
||||||
Name 1077 "r6"
|
Name 1078 "r6"
|
||||||
Name 1081 "r7"
|
Name 1082 "r7"
|
||||||
Name 1085 "r8"
|
Name 1086 "r8"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -2618,33 +2618,33 @@ Shader version: 450
|
|||||||
494(inF1): 469(ptr) Variable Input
|
494(inF1): 469(ptr) Variable Input
|
||||||
501(inF2): 469(ptr) Variable Input
|
501(inF2): 469(ptr) Variable Input
|
||||||
508: 485(ivec4) ConstantComposite 87 212 359 136
|
508: 485(ivec4) ConstantComposite 87 212 359 136
|
||||||
545(ResType): TypeStruct 34(fvec4) 482(ivec4)
|
546(ResType): TypeStruct 34(fvec4) 482(ivec4)
|
||||||
550: TypeVector 50(bool) 4
|
551: TypeVector 50(bool) 4
|
||||||
585: 64(int) Constant 4
|
586: 64(int) Constant 4
|
||||||
586: 485(ivec4) ConstantComposite 282 136 212 585
|
587: 485(ivec4) ConstantComposite 282 136 212 586
|
||||||
621: 6(float) Constant 1082130432
|
622: 6(float) Constant 1082130432
|
||||||
622: 34(fvec4) ConstantComposite 144 280 466 621
|
623: 34(fvec4) ConstantComposite 144 280 466 622
|
||||||
624: TypePointer Input 10
|
625: TypePointer Input 10
|
||||||
625(inF0): 624(ptr) Variable Input
|
626(inF0): 625(ptr) Variable Input
|
||||||
639(inF1): 624(ptr) Variable Input
|
640(inF1): 625(ptr) Variable Input
|
||||||
646(inF2): 624(ptr) Variable Input
|
647(inF2): 625(ptr) Variable Input
|
||||||
677(ResType): TypeStruct 10 186(ivec2)
|
678(ResType): TypeStruct 10 186(ivec2)
|
||||||
737: 8(fvec2) ConstantComposite 280 280
|
738: 8(fvec2) ConstantComposite 280 280
|
||||||
738: 10 ConstantComposite 737 737
|
739: 10 ConstantComposite 738 738
|
||||||
740: TypePointer Input 23
|
741: TypePointer Input 23
|
||||||
741(inF0): 740(ptr) Variable Input
|
742(inF0): 741(ptr) Variable Input
|
||||||
755(inF1): 740(ptr) Variable Input
|
756(inF1): 741(ptr) Variable Input
|
||||||
762(inF2): 740(ptr) Variable Input
|
763(inF2): 741(ptr) Variable Input
|
||||||
796(ResType): TypeStruct 23 333(ivec3)
|
797(ResType): TypeStruct 23 333(ivec3)
|
||||||
856: 21(fvec3) ConstantComposite 466 466 466
|
857: 21(fvec3) ConstantComposite 466 466 466
|
||||||
857: 23 ConstantComposite 856 856 856
|
858: 23 ConstantComposite 857 857 857
|
||||||
859: TypePointer Input 36
|
860: TypePointer Input 36
|
||||||
860(inF0): 859(ptr) Variable Input
|
861(inF0): 860(ptr) Variable Input
|
||||||
874(inF1): 859(ptr) Variable Input
|
875(inF1): 860(ptr) Variable Input
|
||||||
881(inF2): 859(ptr) Variable Input
|
882(inF2): 860(ptr) Variable Input
|
||||||
918(ResType): TypeStruct 36 482(ivec4)
|
919(ResType): TypeStruct 36 482(ivec4)
|
||||||
978: 34(fvec4) ConstantComposite 621 621 621 621
|
979: 34(fvec4) ConstantComposite 622 622 622 622
|
||||||
979: 36 ConstantComposite 978 978 978 978
|
980: 36 ConstantComposite 979 979 979 979
|
||||||
4(VertexShaderFunction): 2 Function None 3
|
4(VertexShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
49: 6(float) Load 48(inF0)
|
49: 6(float) Load 48(inF0)
|
||||||
@ -2768,51 +2768,51 @@ Shader version: 450
|
|||||||
17(inFM0): 11(ptr) FunctionParameter
|
17(inFM0): 11(ptr) FunctionParameter
|
||||||
18(inFM1): 11(ptr) FunctionParameter
|
18(inFM1): 11(ptr) FunctionParameter
|
||||||
20: Label
|
20: Label
|
||||||
981(r0): 7(ptr) Variable Function
|
982(r0): 7(ptr) Variable Function
|
||||||
985(r1): 9(ptr) Variable Function
|
986(r1): 9(ptr) Variable Function
|
||||||
989(r2): 9(ptr) Variable Function
|
990(r2): 9(ptr) Variable Function
|
||||||
993(r3): 7(ptr) Variable Function
|
994(r3): 7(ptr) Variable Function
|
||||||
997(r4): 9(ptr) Variable Function
|
998(r4): 9(ptr) Variable Function
|
||||||
1001(r5): 9(ptr) Variable Function
|
1002(r5): 9(ptr) Variable Function
|
||||||
1005(r6): 11(ptr) Variable Function
|
1006(r6): 11(ptr) Variable Function
|
||||||
1009(r7): 11(ptr) Variable Function
|
1010(r7): 11(ptr) Variable Function
|
||||||
1013(r8): 11(ptr) Variable Function
|
1014(r8): 11(ptr) Variable Function
|
||||||
982: 6(float) Load 13(inF0)
|
983: 6(float) Load 13(inF0)
|
||||||
983: 6(float) Load 14(inF1)
|
984: 6(float) Load 14(inF1)
|
||||||
984: 6(float) FMul 982 983
|
985: 6(float) FMul 983 984
|
||||||
Store 981(r0) 984
|
Store 982(r0) 985
|
||||||
986: 8(fvec2) Load 15(inFV0)
|
987: 8(fvec2) Load 15(inFV0)
|
||||||
987: 6(float) Load 13(inF0)
|
988: 6(float) Load 13(inF0)
|
||||||
988: 8(fvec2) VectorTimesScalar 986 987
|
989: 8(fvec2) VectorTimesScalar 987 988
|
||||||
Store 985(r1) 988
|
Store 986(r1) 989
|
||||||
990: 6(float) Load 13(inF0)
|
991: 6(float) Load 13(inF0)
|
||||||
991: 8(fvec2) Load 15(inFV0)
|
992: 8(fvec2) Load 15(inFV0)
|
||||||
992: 8(fvec2) VectorTimesScalar 991 990
|
993: 8(fvec2) VectorTimesScalar 992 991
|
||||||
Store 989(r2) 992
|
Store 990(r2) 993
|
||||||
994: 8(fvec2) Load 15(inFV0)
|
995: 8(fvec2) Load 15(inFV0)
|
||||||
995: 8(fvec2) Load 16(inFV1)
|
996: 8(fvec2) Load 16(inFV1)
|
||||||
996: 6(float) Dot 994 995
|
997: 6(float) Dot 995 996
|
||||||
Store 993(r3) 996
|
Store 994(r3) 997
|
||||||
998: 10 Load 17(inFM0)
|
999: 10 Load 17(inFM0)
|
||||||
999: 8(fvec2) Load 15(inFV0)
|
1000: 8(fvec2) Load 15(inFV0)
|
||||||
1000: 8(fvec2) MatrixTimesVector 998 999
|
1001: 8(fvec2) MatrixTimesVector 999 1000
|
||||||
Store 997(r4) 1000
|
Store 998(r4) 1001
|
||||||
1002: 8(fvec2) Load 15(inFV0)
|
1003: 8(fvec2) Load 15(inFV0)
|
||||||
1003: 10 Load 17(inFM0)
|
1004: 10 Load 17(inFM0)
|
||||||
1004: 8(fvec2) VectorTimesMatrix 1002 1003
|
1005: 8(fvec2) VectorTimesMatrix 1003 1004
|
||||||
Store 1001(r5) 1004
|
Store 1002(r5) 1005
|
||||||
1006: 10 Load 17(inFM0)
|
1007: 10 Load 17(inFM0)
|
||||||
1007: 6(float) Load 13(inF0)
|
1008: 6(float) Load 13(inF0)
|
||||||
1008: 10 MatrixTimesScalar 1006 1007
|
1009: 10 MatrixTimesScalar 1007 1008
|
||||||
Store 1005(r6) 1008
|
Store 1006(r6) 1009
|
||||||
1010: 6(float) Load 13(inF0)
|
1011: 6(float) Load 13(inF0)
|
||||||
1011: 10 Load 17(inFM0)
|
1012: 10 Load 17(inFM0)
|
||||||
1012: 10 MatrixTimesScalar 1011 1010
|
1013: 10 MatrixTimesScalar 1012 1011
|
||||||
Store 1009(r7) 1012
|
Store 1010(r7) 1013
|
||||||
1014: 10 Load 17(inFM0)
|
1015: 10 Load 17(inFM0)
|
||||||
1015: 10 Load 18(inFM1)
|
1016: 10 Load 18(inFM1)
|
||||||
1016: 10 MatrixTimesMatrix 1014 1015
|
1017: 10 MatrixTimesMatrix 1015 1016
|
||||||
Store 1013(r8) 1016
|
Store 1014(r8) 1017
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25
|
32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25
|
||||||
@ -2823,51 +2823,51 @@ Shader version: 450
|
|||||||
30(inFM0): 24(ptr) FunctionParameter
|
30(inFM0): 24(ptr) FunctionParameter
|
||||||
31(inFM1): 24(ptr) FunctionParameter
|
31(inFM1): 24(ptr) FunctionParameter
|
||||||
33: Label
|
33: Label
|
||||||
1017(r0): 7(ptr) Variable Function
|
1018(r0): 7(ptr) Variable Function
|
||||||
1021(r1): 22(ptr) Variable Function
|
1022(r1): 22(ptr) Variable Function
|
||||||
1025(r2): 22(ptr) Variable Function
|
1026(r2): 22(ptr) Variable Function
|
||||||
1029(r3): 7(ptr) Variable Function
|
1030(r3): 7(ptr) Variable Function
|
||||||
1033(r4): 22(ptr) Variable Function
|
1034(r4): 22(ptr) Variable Function
|
||||||
1037(r5): 22(ptr) Variable Function
|
1038(r5): 22(ptr) Variable Function
|
||||||
1041(r6): 24(ptr) Variable Function
|
1042(r6): 24(ptr) Variable Function
|
||||||
1045(r7): 24(ptr) Variable Function
|
1046(r7): 24(ptr) Variable Function
|
||||||
1049(r8): 24(ptr) Variable Function
|
1050(r8): 24(ptr) Variable Function
|
||||||
1018: 6(float) Load 26(inF0)
|
1019: 6(float) Load 26(inF0)
|
||||||
1019: 6(float) Load 27(inF1)
|
1020: 6(float) Load 27(inF1)
|
||||||
1020: 6(float) FMul 1018 1019
|
1021: 6(float) FMul 1019 1020
|
||||||
Store 1017(r0) 1020
|
Store 1018(r0) 1021
|
||||||
1022: 21(fvec3) Load 28(inFV0)
|
1023: 21(fvec3) Load 28(inFV0)
|
||||||
1023: 6(float) Load 26(inF0)
|
1024: 6(float) Load 26(inF0)
|
||||||
1024: 21(fvec3) VectorTimesScalar 1022 1023
|
1025: 21(fvec3) VectorTimesScalar 1023 1024
|
||||||
Store 1021(r1) 1024
|
Store 1022(r1) 1025
|
||||||
1026: 6(float) Load 26(inF0)
|
1027: 6(float) Load 26(inF0)
|
||||||
1027: 21(fvec3) Load 28(inFV0)
|
1028: 21(fvec3) Load 28(inFV0)
|
||||||
1028: 21(fvec3) VectorTimesScalar 1027 1026
|
1029: 21(fvec3) VectorTimesScalar 1028 1027
|
||||||
Store 1025(r2) 1028
|
Store 1026(r2) 1029
|
||||||
1030: 21(fvec3) Load 28(inFV0)
|
1031: 21(fvec3) Load 28(inFV0)
|
||||||
1031: 21(fvec3) Load 29(inFV1)
|
1032: 21(fvec3) Load 29(inFV1)
|
||||||
1032: 6(float) Dot 1030 1031
|
1033: 6(float) Dot 1031 1032
|
||||||
Store 1029(r3) 1032
|
Store 1030(r3) 1033
|
||||||
1034: 23 Load 30(inFM0)
|
1035: 23 Load 30(inFM0)
|
||||||
1035: 21(fvec3) Load 28(inFV0)
|
1036: 21(fvec3) Load 28(inFV0)
|
||||||
1036: 21(fvec3) MatrixTimesVector 1034 1035
|
1037: 21(fvec3) MatrixTimesVector 1035 1036
|
||||||
Store 1033(r4) 1036
|
Store 1034(r4) 1037
|
||||||
1038: 21(fvec3) Load 28(inFV0)
|
1039: 21(fvec3) Load 28(inFV0)
|
||||||
1039: 23 Load 30(inFM0)
|
1040: 23 Load 30(inFM0)
|
||||||
1040: 21(fvec3) VectorTimesMatrix 1038 1039
|
1041: 21(fvec3) VectorTimesMatrix 1039 1040
|
||||||
Store 1037(r5) 1040
|
Store 1038(r5) 1041
|
||||||
1042: 23 Load 30(inFM0)
|
1043: 23 Load 30(inFM0)
|
||||||
1043: 6(float) Load 26(inF0)
|
1044: 6(float) Load 26(inF0)
|
||||||
1044: 23 MatrixTimesScalar 1042 1043
|
1045: 23 MatrixTimesScalar 1043 1044
|
||||||
Store 1041(r6) 1044
|
Store 1042(r6) 1045
|
||||||
1046: 6(float) Load 26(inF0)
|
1047: 6(float) Load 26(inF0)
|
||||||
1047: 23 Load 30(inFM0)
|
1048: 23 Load 30(inFM0)
|
||||||
1048: 23 MatrixTimesScalar 1047 1046
|
1049: 23 MatrixTimesScalar 1048 1047
|
||||||
Store 1045(r7) 1048
|
Store 1046(r7) 1049
|
||||||
1050: 23 Load 30(inFM0)
|
1051: 23 Load 30(inFM0)
|
||||||
1051: 23 Load 31(inFM1)
|
1052: 23 Load 31(inFM1)
|
||||||
1052: 23 MatrixTimesMatrix 1050 1051
|
1053: 23 MatrixTimesMatrix 1051 1052
|
||||||
Store 1049(r8) 1052
|
Store 1050(r8) 1053
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38
|
45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38
|
||||||
@ -2878,50 +2878,50 @@ Shader version: 450
|
|||||||
43(inFM0): 37(ptr) FunctionParameter
|
43(inFM0): 37(ptr) FunctionParameter
|
||||||
44(inFM1): 37(ptr) FunctionParameter
|
44(inFM1): 37(ptr) FunctionParameter
|
||||||
46: Label
|
46: Label
|
||||||
1053(r0): 7(ptr) Variable Function
|
1054(r0): 7(ptr) Variable Function
|
||||||
1057(r1): 35(ptr) Variable Function
|
1058(r1): 35(ptr) Variable Function
|
||||||
1061(r2): 35(ptr) Variable Function
|
1062(r2): 35(ptr) Variable Function
|
||||||
1065(r3): 7(ptr) Variable Function
|
1066(r3): 7(ptr) Variable Function
|
||||||
1069(r4): 35(ptr) Variable Function
|
1070(r4): 35(ptr) Variable Function
|
||||||
1073(r5): 35(ptr) Variable Function
|
1074(r5): 35(ptr) Variable Function
|
||||||
1077(r6): 37(ptr) Variable Function
|
1078(r6): 37(ptr) Variable Function
|
||||||
1081(r7): 37(ptr) Variable Function
|
1082(r7): 37(ptr) Variable Function
|
||||||
1085(r8): 37(ptr) Variable Function
|
1086(r8): 37(ptr) Variable Function
|
||||||
1054: 6(float) Load 39(inF0)
|
1055: 6(float) Load 39(inF0)
|
||||||
1055: 6(float) Load 40(inF1)
|
1056: 6(float) Load 40(inF1)
|
||||||
1056: 6(float) FMul 1054 1055
|
1057: 6(float) FMul 1055 1056
|
||||||
Store 1053(r0) 1056
|
Store 1054(r0) 1057
|
||||||
1058: 34(fvec4) Load 41(inFV0)
|
1059: 34(fvec4) Load 41(inFV0)
|
||||||
1059: 6(float) Load 39(inF0)
|
1060: 6(float) Load 39(inF0)
|
||||||
1060: 34(fvec4) VectorTimesScalar 1058 1059
|
1061: 34(fvec4) VectorTimesScalar 1059 1060
|
||||||
Store 1057(r1) 1060
|
Store 1058(r1) 1061
|
||||||
1062: 6(float) Load 39(inF0)
|
1063: 6(float) Load 39(inF0)
|
||||||
1063: 34(fvec4) Load 41(inFV0)
|
1064: 34(fvec4) Load 41(inFV0)
|
||||||
1064: 34(fvec4) VectorTimesScalar 1063 1062
|
1065: 34(fvec4) VectorTimesScalar 1064 1063
|
||||||
Store 1061(r2) 1064
|
Store 1062(r2) 1065
|
||||||
1066: 34(fvec4) Load 41(inFV0)
|
1067: 34(fvec4) Load 41(inFV0)
|
||||||
1067: 34(fvec4) Load 42(inFV1)
|
1068: 34(fvec4) Load 42(inFV1)
|
||||||
1068: 6(float) Dot 1066 1067
|
1069: 6(float) Dot 1067 1068
|
||||||
Store 1065(r3) 1068
|
Store 1066(r3) 1069
|
||||||
1070: 36 Load 43(inFM0)
|
1071: 36 Load 43(inFM0)
|
||||||
1071: 34(fvec4) Load 41(inFV0)
|
1072: 34(fvec4) Load 41(inFV0)
|
||||||
1072: 34(fvec4) MatrixTimesVector 1070 1071
|
1073: 34(fvec4) MatrixTimesVector 1071 1072
|
||||||
Store 1069(r4) 1072
|
Store 1070(r4) 1073
|
||||||
1074: 34(fvec4) Load 41(inFV0)
|
1075: 34(fvec4) Load 41(inFV0)
|
||||||
1075: 36 Load 43(inFM0)
|
1076: 36 Load 43(inFM0)
|
||||||
1076: 34(fvec4) VectorTimesMatrix 1074 1075
|
1077: 34(fvec4) VectorTimesMatrix 1075 1076
|
||||||
Store 1073(r5) 1076
|
Store 1074(r5) 1077
|
||||||
1078: 36 Load 43(inFM0)
|
1079: 36 Load 43(inFM0)
|
||||||
1079: 6(float) Load 39(inF0)
|
1080: 6(float) Load 39(inF0)
|
||||||
1080: 36 MatrixTimesScalar 1078 1079
|
1081: 36 MatrixTimesScalar 1079 1080
|
||||||
Store 1077(r6) 1080
|
Store 1078(r6) 1081
|
||||||
1082: 6(float) Load 39(inF0)
|
1083: 6(float) Load 39(inF0)
|
||||||
1083: 36 Load 43(inFM0)
|
1084: 36 Load 43(inFM0)
|
||||||
1084: 36 MatrixTimesScalar 1083 1082
|
1085: 36 MatrixTimesScalar 1084 1083
|
||||||
Store 1081(r7) 1084
|
Store 1082(r7) 1085
|
||||||
1086: 36 Load 43(inFM0)
|
1087: 36 Load 43(inFM0)
|
||||||
1087: 36 Load 44(inFM1)
|
1088: 36 Load 44(inFM1)
|
||||||
1088: 36 MatrixTimesMatrix 1086 1087
|
1089: 36 MatrixTimesMatrix 1087 1088
|
||||||
Store 1085(r8) 1088
|
Store 1086(r8) 1089
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
13
Test/hlsl.intrinsics.barriers.comp
Normal file
13
Test/hlsl.intrinsics.barriers.comp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
float ComputeShaderFunction()
|
||||||
|
{
|
||||||
|
AllMemoryBarrier();
|
||||||
|
AllMemoryBarrierWithGroupSync();
|
||||||
|
DeviceMemoryBarrier();
|
||||||
|
DeviceMemoryBarrierWithGroupSync();
|
||||||
|
GroupMemoryBarrier();
|
||||||
|
GroupMemoryBarrierWithGroupSync();
|
||||||
|
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
10
Test/hlsl.intrinsics.evalfns.frag
Normal file
10
Test/hlsl.intrinsics.evalfns.frag
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
void main(float inF1, float2 inF2, float3 inF3, float4 inF4, int2 inI2) : COLOR
|
||||||
|
{
|
||||||
|
EvaluateAttributeSnapped(inF1, int2(8,15));
|
||||||
|
EvaluateAttributeSnapped(inF2, int2(0,1));
|
||||||
|
EvaluateAttributeSnapped(inF3, int2(3,10));
|
||||||
|
EvaluateAttributeSnapped(inF4, int2(7,8));
|
||||||
|
|
||||||
|
EvaluateAttributeSnapped(inF1, inI2);
|
||||||
|
}
|
34
Test/hlsl.intrinsics.f1632.frag
Normal file
34
Test/hlsl.intrinsics.f1632.frag
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
float PixelShaderFunction(float inF0)
|
||||||
|
{
|
||||||
|
f32tof16(inF0);
|
||||||
|
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
float1 PixelShaderFunction(float1 inF0)
|
||||||
|
{
|
||||||
|
// TODO: ... add when float1 prototypes are generated
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
float2 PixelShaderFunction(float2 inF0)
|
||||||
|
{
|
||||||
|
f32tof16(inF0);
|
||||||
|
|
||||||
|
return float2(1,2);
|
||||||
|
}
|
||||||
|
|
||||||
|
float3 PixelShaderFunction(float3 inF0)
|
||||||
|
{
|
||||||
|
f32tof16(inF0);
|
||||||
|
|
||||||
|
return float3(1,2,3);
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 PixelShaderFunction(float4 inF0)
|
||||||
|
{
|
||||||
|
f32tof16(inF0);
|
||||||
|
|
||||||
|
return float4(1,2,3,4);
|
||||||
|
}
|
||||||
|
|
4
Test/hlsl.intrinsics.lit.frag
Normal file
4
Test/hlsl.intrinsics.lit.frag
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
void PixelShaderFunction(float n_dot_l, float n_dot_h, float m)
|
||||||
|
{
|
||||||
|
float4 r0 = lit(n_dot_l, n_dot_h, m);
|
||||||
|
}
|
@ -15,8 +15,8 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
{
|
{
|
||||||
uint out_u1;
|
uint out_u1;
|
||||||
|
|
||||||
// AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
|
AllMemoryBarrier(); // expected error: only valid in compute stage
|
||||||
// AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
|
AllMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage
|
||||||
asdouble(inF0, inF1); // expected error: only integer inputs
|
asdouble(inF0, inF1); // expected error: only integer inputs
|
||||||
CheckAccessFullyMapped(3.0); // expected error: only valid on integers
|
CheckAccessFullyMapped(3.0); // expected error: only valid on integers
|
||||||
CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages
|
CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages
|
||||||
@ -24,8 +24,8 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
countbits(inF0); // expected error: only integer inputs
|
countbits(inF0); // expected error: only integer inputs
|
||||||
cross(inF0, inF1); // expected error: only on float3 inputs
|
cross(inF0, inF1); // expected error: only on float3 inputs
|
||||||
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
|
||||||
// DeviceMemoryBarrier(); // TODO: expected error: only valid in pixel & compute stages
|
DeviceMemoryBarrier(); // expected error: only valid in pixel & compute stages
|
||||||
// DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage
|
DeviceMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage
|
||||||
ddx(inF0); // expected error: only valid in pixel stage
|
ddx(inF0); // expected error: only valid in pixel stage
|
||||||
ddx_coarse(inF0); // expected error: only valid in pixel stage
|
ddx_coarse(inF0); // expected error: only valid in pixel stage
|
||||||
ddx_fine(inF0); // expected error: only valid in pixel stage
|
ddx_fine(inF0); // expected error: only valid in pixel stage
|
||||||
@ -55,8 +55,8 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0)
|
|||||||
InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||||
InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage
|
||||||
InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
|
||||||
// GroupMemoryBarrier(); // TODO: expected error: only valid in compute stage
|
GroupMemoryBarrier(); // expected error: only valid in compute stage
|
||||||
// GroupMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage
|
GroupMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage
|
||||||
length(inF0); // expect error: invalid on scalars
|
length(inF0); // expect error: invalid on scalars
|
||||||
msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
|
msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
|
||||||
normalize(inF0); // expect error: invalid on scalars
|
normalize(inF0); // expect error: invalid on scalars
|
||||||
|
@ -515,7 +515,14 @@ enum TOperator {
|
|||||||
EOpInterlockedMin, // ...
|
EOpInterlockedMin, // ...
|
||||||
EOpInterlockedOr, // ...
|
EOpInterlockedOr, // ...
|
||||||
EOpInterlockedXor, // ...
|
EOpInterlockedXor, // ...
|
||||||
|
EOpAllMemoryBarrierWithGroupSync, // memory barriers without non-hlsl AST equivalents
|
||||||
|
EOpGroupMemoryBarrierWithGroupSync, // ...
|
||||||
|
EOpWorkgroupMemoryBarrier, // ...
|
||||||
|
EOpWorkgroupMemoryBarrierWithGroupSync, // ...
|
||||||
|
EOpEvaluateAttributeSnapped, // InterpolateAtOffset with int position on 16x16 grid
|
||||||
|
EOpF32tof16, // HLSL conversion: half of a PackHalf2x16
|
||||||
|
EOpF16tof32, // HLSL conversion: half of an UnpackHalf2x16
|
||||||
|
EOpLit, // HLSL lighting coefficient vector
|
||||||
};
|
};
|
||||||
|
|
||||||
class TIntermTraverser;
|
class TIntermTraverser;
|
||||||
|
@ -543,6 +543,11 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
|
|||||||
case EOpSinCos: out.debug << "sincos"; break;
|
case EOpSinCos: out.debug << "sincos"; break;
|
||||||
case EOpGenMul: out.debug << "mul"; break;
|
case EOpGenMul: out.debug << "mul"; break;
|
||||||
|
|
||||||
|
case EOpAllMemoryBarrierWithGroupSync: out.debug << "AllMemoryBarrierWithGroupSync"; break;
|
||||||
|
case EOpGroupMemoryBarrierWithGroupSync: out.debug << "GroupMemoryBarrierWithGroupSync"; break;
|
||||||
|
case EOpWorkgroupMemoryBarrier: out.debug << "WorkgroupMemoryBarrier"; break;
|
||||||
|
case EOpWorkgroupMemoryBarrierWithGroupSync: out.debug << "WorkgroupMemoryBarrierWithGroupSync"; break;
|
||||||
|
|
||||||
default: out.debug.message(EPrefixError, "Bad aggregation op");
|
default: out.debug.message(EPrefixError, "Bad aggregation op");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,8 +81,12 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
{"hlsl.float4.frag", "PixelShaderFunction"},
|
{"hlsl.float4.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.forLoop.frag", "PixelShaderFunction"},
|
{"hlsl.forLoop.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.if.frag", "PixelShaderFunction"},
|
{"hlsl.if.frag", "PixelShaderFunction"},
|
||||||
|
{"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"},
|
||||||
{"hlsl.intrinsics.comp", "ComputeShaderFunction"},
|
{"hlsl.intrinsics.comp", "ComputeShaderFunction"},
|
||||||
|
{"hlsl.intrinsics.evalfns.frag", "main"},
|
||||||
|
{"hlsl.intrinsics.f1632.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.intrinsics.frag", "PixelShaderFunction"},
|
{"hlsl.intrinsics.frag", "PixelShaderFunction"},
|
||||||
|
{"hlsl.intrinsics.lit.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"},
|
{"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"},
|
||||||
{"hlsl.intrinsics.negative.frag", "PixelShaderFunction"},
|
{"hlsl.intrinsics.negative.frag", "PixelShaderFunction"},
|
||||||
{"hlsl.intrinsics.negative.vert", "VertexShaderFunction"},
|
{"hlsl.intrinsics.negative.vert", "VertexShaderFunction"},
|
||||||
|
@ -967,6 +967,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*&
|
|||||||
dst->getSequence().push_back(handleBinaryMath(loc, "mul", EOpMul, src0y, src1y));
|
dst->getSequence().push_back(handleBinaryMath(loc, "mul", EOpMul, src0y, src1y));
|
||||||
dst->getSequence().push_back(src0z);
|
dst->getSequence().push_back(src0z);
|
||||||
dst->getSequence().push_back(src1w);
|
dst->getSequence().push_back(src1w);
|
||||||
|
dst->setType(TType(EbtFloat, EvqTemporary, 4));
|
||||||
dst->setLoc(loc);
|
dst->setLoc(loc);
|
||||||
node = dst;
|
node = dst;
|
||||||
|
|
||||||
@ -1028,6 +1029,90 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*&
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case EOpEvaluateAttributeSnapped:
|
||||||
|
{
|
||||||
|
// SPIR-V InterpolateAtOffset uses float vec2 offset in pixels
|
||||||
|
// HLSL uses int2 offset on a 16x16 grid in [-8..7] on x & y:
|
||||||
|
// iU = (iU<<28)>>28
|
||||||
|
// fU = ((float)iU)/16
|
||||||
|
// Targets might handle this natively, in which case they can disable
|
||||||
|
// decompositions.
|
||||||
|
|
||||||
|
TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // value
|
||||||
|
TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // offset
|
||||||
|
|
||||||
|
TIntermTyped* i28 = intermediate.addConstantUnion(28, loc, true);
|
||||||
|
TIntermTyped* iU = handleBinaryMath(loc, ">>", EOpRightShift,
|
||||||
|
handleBinaryMath(loc, "<<", EOpLeftShift, arg1, i28),
|
||||||
|
i28);
|
||||||
|
|
||||||
|
TIntermTyped* recip16 = intermediate.addConstantUnion((1.0/16.0), EbtFloat, loc, true);
|
||||||
|
TIntermTyped* floatOffset = handleBinaryMath(loc, "mul", EOpMul,
|
||||||
|
intermediate.addConversion(EOpConstructFloat,
|
||||||
|
TType(EbtFloat, EvqTemporary, 2), iU),
|
||||||
|
recip16);
|
||||||
|
|
||||||
|
TIntermAggregate* interp = new TIntermAggregate(EOpInterpolateAtOffset);
|
||||||
|
interp->getSequence().push_back(arg0);
|
||||||
|
interp->getSequence().push_back(floatOffset);
|
||||||
|
interp->setLoc(loc);
|
||||||
|
interp->setType(arg0->getType());
|
||||||
|
interp->getWritableType().getQualifier().makeTemporary();
|
||||||
|
|
||||||
|
node = interp;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case EOpLit:
|
||||||
|
{
|
||||||
|
TIntermTyped* n_dot_l = argAggregate->getSequence()[0]->getAsTyped();
|
||||||
|
TIntermTyped* n_dot_h = argAggregate->getSequence()[1]->getAsTyped();
|
||||||
|
TIntermTyped* m = argAggregate->getSequence()[2]->getAsTyped();
|
||||||
|
|
||||||
|
TIntermAggregate* dst = new TIntermAggregate(EOpConstructVec4);
|
||||||
|
|
||||||
|
// Ambient
|
||||||
|
dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true));
|
||||||
|
|
||||||
|
// Diffuse:
|
||||||
|
TIntermTyped* zero = intermediate.addConstantUnion(0.0, EbtFloat, loc, true);
|
||||||
|
TIntermAggregate* diffuse = new TIntermAggregate(EOpMax);
|
||||||
|
diffuse->getSequence().push_back(n_dot_l);
|
||||||
|
diffuse->getSequence().push_back(zero);
|
||||||
|
diffuse->setLoc(loc);
|
||||||
|
diffuse->setType(TType(EbtFloat));
|
||||||
|
dst->getSequence().push_back(diffuse);
|
||||||
|
|
||||||
|
// Specular:
|
||||||
|
TIntermAggregate* min_ndot = new TIntermAggregate(EOpMin);
|
||||||
|
min_ndot->getSequence().push_back(n_dot_l);
|
||||||
|
min_ndot->getSequence().push_back(n_dot_h);
|
||||||
|
min_ndot->setLoc(loc);
|
||||||
|
min_ndot->setType(TType(EbtFloat));
|
||||||
|
|
||||||
|
TIntermTyped* compare = handleBinaryMath(loc, "<", EOpLessThan, min_ndot, zero);
|
||||||
|
TIntermTyped* n_dot_h_m = handleBinaryMath(loc, "mul", EOpMul, n_dot_h, m); // n_dot_h * m
|
||||||
|
|
||||||
|
dst->getSequence().push_back(intermediate.addSelection(compare, zero, n_dot_h_m, loc));
|
||||||
|
|
||||||
|
// One:
|
||||||
|
dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true));
|
||||||
|
|
||||||
|
dst->setLoc(loc);
|
||||||
|
dst->setType(TType(EbtFloat, EvqTemporary, 4));
|
||||||
|
node = dst;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case EOpF16tof32:
|
||||||
|
case EOpF32tof16:
|
||||||
|
{
|
||||||
|
// Temporary until decomposition is available.
|
||||||
|
error(loc, "unimplemented intrinsic: handle natively", "f32tof16", "");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break; // most pass through unchanged
|
break; // most pass through unchanged
|
||||||
}
|
}
|
||||||
|
@ -283,7 +283,7 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv
|
|||||||
// { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
// { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
|
||||||
{ "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
{ "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
|
||||||
{ "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
|
{ "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
|
||||||
{ "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,F", EShLangFragmentMask },
|
{ "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask },
|
||||||
{ "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
{ "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
|
||||||
{ "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
|
{ "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
|
||||||
@ -519,8 +519,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con
|
|||||||
symbolTable.relateToOperator("abs", EOpAbs);
|
symbolTable.relateToOperator("abs", EOpAbs);
|
||||||
symbolTable.relateToOperator("acos", EOpAcos);
|
symbolTable.relateToOperator("acos", EOpAcos);
|
||||||
symbolTable.relateToOperator("all", EOpAll);
|
symbolTable.relateToOperator("all", EOpAll);
|
||||||
// symbolTable.relateToOperator("AllMemoryBarrier");
|
symbolTable.relateToOperator("AllMemoryBarrier", EOpMemoryBarrier);
|
||||||
// symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync");
|
symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync", EOpAllMemoryBarrierWithGroupSync);
|
||||||
symbolTable.relateToOperator("any", EOpAny);
|
symbolTable.relateToOperator("any", EOpAny);
|
||||||
symbolTable.relateToOperator("asdouble", EOpUint64BitsToDouble);
|
symbolTable.relateToOperator("asdouble", EOpUint64BitsToDouble);
|
||||||
symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat);
|
symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat);
|
||||||
@ -546,19 +546,19 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con
|
|||||||
symbolTable.relateToOperator("ddy_fine", EOpDPdyFine);
|
symbolTable.relateToOperator("ddy_fine", EOpDPdyFine);
|
||||||
symbolTable.relateToOperator("degrees", EOpDegrees);
|
symbolTable.relateToOperator("degrees", EOpDegrees);
|
||||||
symbolTable.relateToOperator("determinant", EOpDeterminant);
|
symbolTable.relateToOperator("determinant", EOpDeterminant);
|
||||||
// symbolTable.relateToOperator("DeviceMemoryBarrier");
|
symbolTable.relateToOperator("DeviceMemoryBarrier", EOpGroupMemoryBarrier); // == ScopeDevice+CrossWorkGroup
|
||||||
// symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync");
|
symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpGroupMemoryBarrierWithGroupSync); // ...
|
||||||
symbolTable.relateToOperator("distance", EOpDistance);
|
symbolTable.relateToOperator("distance", EOpDistance);
|
||||||
symbolTable.relateToOperator("dot", EOpDot);
|
symbolTable.relateToOperator("dot", EOpDot);
|
||||||
symbolTable.relateToOperator("dst", EOpDst);
|
symbolTable.relateToOperator("dst", EOpDst);
|
||||||
// symbolTable.relateToOperator("errorf");
|
// symbolTable.relateToOperator("errorf", EOpErrorf);
|
||||||
symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid);
|
symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid);
|
||||||
symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample);
|
symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample);
|
||||||
// symbolTable.relateToOperator("EvaluateAttributeSnapped"); // TODO: hsnflr positions. new op?
|
symbolTable.relateToOperator("EvaluateAttributeSnapped", EOpEvaluateAttributeSnapped);
|
||||||
symbolTable.relateToOperator("exp", EOpExp);
|
symbolTable.relateToOperator("exp", EOpExp);
|
||||||
symbolTable.relateToOperator("exp2", EOpExp2);
|
symbolTable.relateToOperator("exp2", EOpExp2);
|
||||||
// symbolTable.relateToOperator("f16tof32");
|
symbolTable.relateToOperator("f16tof32", EOpF16tof32);
|
||||||
// symbolTable.relateToOperator("f32tof16");
|
symbolTable.relateToOperator("f32tof16", EOpF32tof16);
|
||||||
symbolTable.relateToOperator("faceforward", EOpFaceForward);
|
symbolTable.relateToOperator("faceforward", EOpFaceForward);
|
||||||
symbolTable.relateToOperator("firstbithigh", EOpFindMSB);
|
symbolTable.relateToOperator("firstbithigh", EOpFindMSB);
|
||||||
symbolTable.relateToOperator("firstbitlow", EOpFindLSB);
|
symbolTable.relateToOperator("firstbitlow", EOpFindLSB);
|
||||||
@ -570,8 +570,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con
|
|||||||
symbolTable.relateToOperator("fwidth", EOpFwidth);
|
symbolTable.relateToOperator("fwidth", EOpFwidth);
|
||||||
// symbolTable.relateToOperator("GetRenderTargetSampleCount");
|
// symbolTable.relateToOperator("GetRenderTargetSampleCount");
|
||||||
// symbolTable.relateToOperator("GetRenderTargetSamplePosition");
|
// symbolTable.relateToOperator("GetRenderTargetSamplePosition");
|
||||||
// symbolTable.relateToOperator("GroupMemoryBarrier");
|
symbolTable.relateToOperator("GroupMemoryBarrier", EOpWorkgroupMemoryBarrier);
|
||||||
// symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync");
|
symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync", EOpWorkgroupMemoryBarrierWithGroupSync);
|
||||||
symbolTable.relateToOperator("InterlockedAdd", EOpInterlockedAdd);
|
symbolTable.relateToOperator("InterlockedAdd", EOpInterlockedAdd);
|
||||||
symbolTable.relateToOperator("InterlockedAnd", EOpInterlockedAnd);
|
symbolTable.relateToOperator("InterlockedAnd", EOpInterlockedAnd);
|
||||||
symbolTable.relateToOperator("InterlockedCompareExchange", EOpInterlockedCompareExchange);
|
symbolTable.relateToOperator("InterlockedCompareExchange", EOpInterlockedCompareExchange);
|
||||||
@ -586,7 +586,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con
|
|||||||
symbolTable.relateToOperator("isnan", EOpIsNan);
|
symbolTable.relateToOperator("isnan", EOpIsNan);
|
||||||
symbolTable.relateToOperator("ldexp", EOpLdexp);
|
symbolTable.relateToOperator("ldexp", EOpLdexp);
|
||||||
symbolTable.relateToOperator("length", EOpLength);
|
symbolTable.relateToOperator("length", EOpLength);
|
||||||
// symbolTable.relateToOperator("lit");
|
symbolTable.relateToOperator("lit", EOpLit);
|
||||||
symbolTable.relateToOperator("log", EOpLog);
|
symbolTable.relateToOperator("log", EOpLog);
|
||||||
symbolTable.relateToOperator("log10", EOpLog10);
|
symbolTable.relateToOperator("log10", EOpLog10);
|
||||||
symbolTable.relateToOperator("log2", EOpLog2);
|
symbolTable.relateToOperator("log2", EOpLog2);
|
||||||
@ -599,7 +599,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con
|
|||||||
// symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type
|
// symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type
|
||||||
symbolTable.relateToOperator("normalize", EOpNormalize);
|
symbolTable.relateToOperator("normalize", EOpNormalize);
|
||||||
symbolTable.relateToOperator("pow", EOpPow);
|
symbolTable.relateToOperator("pow", EOpPow);
|
||||||
// symbolTable.relateToOperator("printf");
|
// symbolTable.relateToOperator("printf", EOpPrintf);
|
||||||
// symbolTable.relateToOperator("Process2DQuadTessFactorsAvg");
|
// symbolTable.relateToOperator("Process2DQuadTessFactorsAvg");
|
||||||
// symbolTable.relateToOperator("Process2DQuadTessFactorsMax");
|
// symbolTable.relateToOperator("Process2DQuadTessFactorsMax");
|
||||||
// symbolTable.relateToOperator("Process2DQuadTessFactorsMin");
|
// symbolTable.relateToOperator("Process2DQuadTessFactorsMin");
|
||||||
|
Loading…
Reference in New Issue
Block a user