HLSL: Fix an issue of frexp().
The "exp" parameter is floating-point type in HLSL intrinsic while it is integer type in GLSL built-in function.
This commit is contained in:
parent
86e49d1773
commit
470026f9d7
@ -4609,6 +4609,9 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
spv::Id typeId0 = 0;
|
spv::Id typeId0 = 0;
|
||||||
if (consumedOperands > 0)
|
if (consumedOperands > 0)
|
||||||
typeId0 = builder.getTypeId(operands[0]);
|
typeId0 = builder.getTypeId(operands[0]);
|
||||||
|
spv::Id typeId1 = 0;
|
||||||
|
if (consumedOperands > 1)
|
||||||
|
typeId1 = builder.getTypeId(operands[1]);
|
||||||
spv::Id frexpIntType = 0;
|
spv::Id frexpIntType = 0;
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
@ -4730,13 +4733,22 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
libCall = spv::GLSLstd450Fma;
|
libCall = spv::GLSLstd450Fma;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpFrexp:
|
case glslang::EOpFrexp:
|
||||||
libCall = spv::GLSLstd450FrexpStruct;
|
{
|
||||||
if (builder.getNumComponents(operands[0]) == 1)
|
libCall = spv::GLSLstd450FrexpStruct;
|
||||||
frexpIntType = builder.makeIntegerType(32, true);
|
assert(builder.isPointerType(typeId1));
|
||||||
else
|
typeId1 = builder.getContainedTypeId(typeId1);
|
||||||
frexpIntType = builder.makeVectorType(builder.makeIntegerType(32, true), builder.getNumComponents(operands[0]));
|
#ifdef AMD_EXTENSIONS
|
||||||
typeId = builder.makeStructResultType(typeId0, frexpIntType);
|
int width = builder.getScalarTypeWidth(typeId1);
|
||||||
consumedOperands = 1;
|
#else
|
||||||
|
int width = 32;
|
||||||
|
#endif
|
||||||
|
if (builder.getNumComponents(operands[0]) == 1)
|
||||||
|
frexpIntType = builder.makeIntegerType(width, true);
|
||||||
|
else
|
||||||
|
frexpIntType = builder.makeVectorType(builder.makeIntegerType(width, true), builder.getNumComponents(operands[0]));
|
||||||
|
typeId = builder.makeStructResultType(typeId0, frexpIntType);
|
||||||
|
consumedOperands = 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case glslang::EOpLdexp:
|
case glslang::EOpLdexp:
|
||||||
libCall = spv::GLSLstd450Ldexp;
|
libCall = spv::GLSLstd450Ldexp;
|
||||||
@ -4844,9 +4856,18 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
|||||||
builder.createStore(builder.createCompositeExtract(id, typeId0, 1), operands[2]);
|
builder.createStore(builder.createCompositeExtract(id, typeId0, 1), operands[2]);
|
||||||
break;
|
break;
|
||||||
case glslang::EOpFrexp:
|
case glslang::EOpFrexp:
|
||||||
assert(operands.size() == 2);
|
{
|
||||||
builder.createStore(builder.createCompositeExtract(id, frexpIntType, 1), operands[1]);
|
assert(operands.size() == 2);
|
||||||
id = builder.createCompositeExtract(id, typeId0, 0);
|
if (builder.isFloatType(builder.getScalarTypeId(typeId1))) {
|
||||||
|
// "exp" is floating-point type (from HLSL intrinsic)
|
||||||
|
spv::Id member1 = builder.createCompositeExtract(id, frexpIntType, 1);
|
||||||
|
member1 = builder.createUnaryOp(spv::OpConvertSToF, typeId1, member1);
|
||||||
|
builder.createStore(member1, operands[1]);
|
||||||
|
} else
|
||||||
|
// "exp" is integer type (from GLSL built-in function)
|
||||||
|
builder.createStore(builder.createCompositeExtract(id, frexpIntType, 1), operands[1]);
|
||||||
|
id = builder.createCompositeExtract(id, typeId0, 0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -134,6 +134,9 @@ public:
|
|||||||
bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); }
|
bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); }
|
||||||
|
|
||||||
bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
|
bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
|
||||||
|
bool isIntType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) != 0; }
|
||||||
|
bool isUintType(Id typeId) const { return getTypeClass(typeId) == OpTypeInt && module.getInstruction(typeId)->getImmediateOperand(1) == 0; }
|
||||||
|
bool isFloatType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat; }
|
||||||
bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; }
|
bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; }
|
||||||
bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; }
|
bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; }
|
||||||
bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; }
|
bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; }
|
||||||
@ -153,6 +156,13 @@ public:
|
|||||||
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
|
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
|
||||||
StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); }
|
StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); }
|
||||||
|
|
||||||
|
int getScalarTypeWidth(Id typeId) const
|
||||||
|
{
|
||||||
|
Id scalarTypeId = getScalarTypeId(typeId);
|
||||||
|
assert(getTypeClass(scalarTypeId) == OpTypeInt || getTypeClass(scalarTypeId) == OpTypeFloat);
|
||||||
|
return module.getInstruction(scalarTypeId)->getImmediateOperand(0);
|
||||||
|
}
|
||||||
|
|
||||||
int getTypeNumColumns(Id typeId) const
|
int getTypeNumColumns(Id typeId) const
|
||||||
{
|
{
|
||||||
assert(isMatrixType(typeId));
|
assert(isMatrixType(typeId));
|
||||||
|
@ -191,12 +191,12 @@ 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 94
|
// Id's are bound by 98
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 91
|
EntryPoint Fragment 4 "main" 95
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 11 "PixelShaderFunctionS(f1;f1;"
|
Name 11 "PixelShaderFunctionS(f1;f1;"
|
||||||
@ -216,15 +216,15 @@ gl_FragCoord origin is upper left
|
|||||||
Name 36 "@main("
|
Name 36 "@main("
|
||||||
Name 38 "r000"
|
Name 38 "r000"
|
||||||
Name 41 "ResType"
|
Name 41 "ResType"
|
||||||
Name 48 "r000"
|
Name 49 "r000"
|
||||||
Name 51 "ResType"
|
Name 52 "ResType"
|
||||||
Name 60 "r000"
|
Name 62 "r000"
|
||||||
Name 63 "ResType"
|
Name 65 "ResType"
|
||||||
Name 71 "r000"
|
Name 74 "r000"
|
||||||
Name 74 "ResType"
|
Name 77 "ResType"
|
||||||
Name 83 "ps_output"
|
Name 87 "ps_output"
|
||||||
Name 91 "color"
|
Name 95 "color"
|
||||||
Decorate 91(color) Location 0
|
Decorate 95(color) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -243,30 +243,30 @@ gl_FragCoord origin is upper left
|
|||||||
35: TypeFunction 34(PS_OUTPUT)
|
35: TypeFunction 34(PS_OUTPUT)
|
||||||
40: TypeInt 32 1
|
40: TypeInt 32 1
|
||||||
41(ResType): TypeStruct 6(float) 40(int)
|
41(ResType): TypeStruct 6(float) 40(int)
|
||||||
45: 6(float) Constant 0
|
46: 6(float) Constant 0
|
||||||
50: TypeVector 40(int) 2
|
51: TypeVector 40(int) 2
|
||||||
51(ResType): TypeStruct 13(fvec2) 50(ivec2)
|
52(ResType): TypeStruct 13(fvec2) 51(ivec2)
|
||||||
55: 6(float) Constant 1065353216
|
57: 6(float) Constant 1065353216
|
||||||
56: 6(float) Constant 1073741824
|
58: 6(float) Constant 1073741824
|
||||||
57: 13(fvec2) ConstantComposite 55 56
|
59: 13(fvec2) ConstantComposite 57 58
|
||||||
62: TypeVector 40(int) 3
|
64: TypeVector 40(int) 3
|
||||||
63(ResType): TypeStruct 20(fvec3) 62(ivec3)
|
65(ResType): TypeStruct 20(fvec3) 64(ivec3)
|
||||||
67: 6(float) Constant 1077936128
|
70: 6(float) Constant 1077936128
|
||||||
68: 20(fvec3) ConstantComposite 55 56 67
|
71: 20(fvec3) ConstantComposite 57 58 70
|
||||||
73: TypeVector 40(int) 4
|
76: TypeVector 40(int) 4
|
||||||
74(ResType): TypeStruct 27(fvec4) 73(ivec4)
|
77(ResType): TypeStruct 27(fvec4) 76(ivec4)
|
||||||
78: 6(float) Constant 1082130432
|
82: 6(float) Constant 1082130432
|
||||||
79: 27(fvec4) ConstantComposite 55 56 67 78
|
83: 27(fvec4) ConstantComposite 57 58 70 82
|
||||||
82: TypePointer Function 34(PS_OUTPUT)
|
86: TypePointer Function 34(PS_OUTPUT)
|
||||||
84: 40(int) Constant 0
|
88: 40(int) Constant 0
|
||||||
85: 27(fvec4) ConstantComposite 55 55 55 55
|
89: 27(fvec4) ConstantComposite 57 57 57 57
|
||||||
90: TypePointer Output 27(fvec4)
|
94: TypePointer Output 27(fvec4)
|
||||||
91(color): 90(ptr) Variable Output
|
95(color): 94(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
92:34(PS_OUTPUT) FunctionCall 36(@main()
|
96:34(PS_OUTPUT) FunctionCall 36(@main()
|
||||||
93: 27(fvec4) CompositeExtract 92 0
|
97: 27(fvec4) CompositeExtract 96 0
|
||||||
Store 91(color) 93
|
Store 95(color) 97
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(PixelShaderFunctionS(f1;f1;): 6(float) Function None 8
|
11(PixelShaderFunctionS(f1;f1;): 6(float) Function None 8
|
||||||
@ -277,55 +277,59 @@ gl_FragCoord origin is upper left
|
|||||||
39: 6(float) Load 9(inF0)
|
39: 6(float) Load 9(inF0)
|
||||||
42: 41(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 39
|
42: 41(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 39
|
||||||
43: 40(int) CompositeExtract 42 1
|
43: 40(int) CompositeExtract 42 1
|
||||||
Store 10(inF1) 43
|
44: 6(float) ConvertSToF 43
|
||||||
44: 6(float) CompositeExtract 42 0
|
Store 10(inF1) 44
|
||||||
Store 38(r000) 44
|
45: 6(float) CompositeExtract 42 0
|
||||||
ReturnValue 45
|
Store 38(r000) 45
|
||||||
|
ReturnValue 46
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
18(PixelShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15
|
18(PixelShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15
|
||||||
16(inF0): 14(ptr) FunctionParameter
|
16(inF0): 14(ptr) FunctionParameter
|
||||||
17(inF1): 14(ptr) FunctionParameter
|
17(inF1): 14(ptr) FunctionParameter
|
||||||
19: Label
|
19: Label
|
||||||
48(r000): 14(ptr) Variable Function
|
49(r000): 14(ptr) Variable Function
|
||||||
49: 13(fvec2) Load 16(inF0)
|
50: 13(fvec2) Load 16(inF0)
|
||||||
52: 51(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 49
|
53: 52(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 50
|
||||||
53: 50(ivec2) CompositeExtract 52 1
|
54: 51(ivec2) CompositeExtract 53 1
|
||||||
Store 17(inF1) 53
|
55: 13(fvec2) ConvertSToF 54
|
||||||
54: 13(fvec2) CompositeExtract 52 0
|
Store 17(inF1) 55
|
||||||
Store 48(r000) 54
|
56: 13(fvec2) CompositeExtract 53 0
|
||||||
ReturnValue 57
|
Store 49(r000) 56
|
||||||
|
ReturnValue 59
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
25(PixelShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22
|
25(PixelShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22
|
||||||
23(inF0): 21(ptr) FunctionParameter
|
23(inF0): 21(ptr) FunctionParameter
|
||||||
24(inF1): 21(ptr) FunctionParameter
|
24(inF1): 21(ptr) FunctionParameter
|
||||||
26: Label
|
26: Label
|
||||||
60(r000): 21(ptr) Variable Function
|
62(r000): 21(ptr) Variable Function
|
||||||
61: 20(fvec3) Load 23(inF0)
|
63: 20(fvec3) Load 23(inF0)
|
||||||
64: 63(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 61
|
66: 65(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 63
|
||||||
65: 62(ivec3) CompositeExtract 64 1
|
67: 64(ivec3) CompositeExtract 66 1
|
||||||
Store 24(inF1) 65
|
68: 20(fvec3) ConvertSToF 67
|
||||||
66: 20(fvec3) CompositeExtract 64 0
|
Store 24(inF1) 68
|
||||||
Store 60(r000) 66
|
69: 20(fvec3) CompositeExtract 66 0
|
||||||
ReturnValue 68
|
Store 62(r000) 69
|
||||||
|
ReturnValue 71
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
32(PixelShaderFunction(vf4;vf4;): 27(fvec4) Function None 29
|
32(PixelShaderFunction(vf4;vf4;): 27(fvec4) Function None 29
|
||||||
30(inF0): 28(ptr) FunctionParameter
|
30(inF0): 28(ptr) FunctionParameter
|
||||||
31(inF1): 28(ptr) FunctionParameter
|
31(inF1): 28(ptr) FunctionParameter
|
||||||
33: Label
|
33: Label
|
||||||
71(r000): 28(ptr) Variable Function
|
74(r000): 28(ptr) Variable Function
|
||||||
72: 27(fvec4) Load 30(inF0)
|
75: 27(fvec4) Load 30(inF0)
|
||||||
75: 74(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 72
|
78: 77(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 75
|
||||||
76: 73(ivec4) CompositeExtract 75 1
|
79: 76(ivec4) CompositeExtract 78 1
|
||||||
Store 31(inF1) 76
|
80: 27(fvec4) ConvertSToF 79
|
||||||
77: 27(fvec4) CompositeExtract 75 0
|
Store 31(inF1) 80
|
||||||
Store 71(r000) 77
|
81: 27(fvec4) CompositeExtract 78 0
|
||||||
ReturnValue 79
|
Store 74(r000) 81
|
||||||
|
ReturnValue 83
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
36(@main():34(PS_OUTPUT) Function None 35
|
36(@main():34(PS_OUTPUT) Function None 35
|
||||||
37: Label
|
37: Label
|
||||||
83(ps_output): 82(ptr) Variable Function
|
87(ps_output): 86(ptr) Variable Function
|
||||||
86: 28(ptr) AccessChain 83(ps_output) 84
|
90: 28(ptr) AccessChain 87(ps_output) 88
|
||||||
Store 86 85
|
Store 90 89
|
||||||
87:34(PS_OUTPUT) Load 83(ps_output)
|
91:34(PS_OUTPUT) Load 87(ps_output)
|
||||||
ReturnValue 87
|
ReturnValue 91
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
@ -114,7 +114,7 @@ Shader version: 450
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 74
|
// Id's are bound by 78
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -134,9 +134,9 @@ Shader version: 450
|
|||||||
Name 30 "inF0"
|
Name 30 "inF0"
|
||||||
Name 31 "inF1"
|
Name 31 "inF1"
|
||||||
Name 36 "ResType"
|
Name 36 "ResType"
|
||||||
Name 45 "ResType"
|
Name 46 "ResType"
|
||||||
Name 56 "ResType"
|
Name 58 "ResType"
|
||||||
Name 66 "ResType"
|
Name 69 "ResType"
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -153,20 +153,20 @@ Shader version: 450
|
|||||||
29: TypeFunction 27(fvec4) 28(ptr) 28(ptr)
|
29: TypeFunction 27(fvec4) 28(ptr) 28(ptr)
|
||||||
35: TypeInt 32 1
|
35: TypeInt 32 1
|
||||||
36(ResType): TypeStruct 6(float) 35(int)
|
36(ResType): TypeStruct 6(float) 35(int)
|
||||||
40: 6(float) Constant 0
|
41: 6(float) Constant 0
|
||||||
44: TypeVector 35(int) 2
|
45: TypeVector 35(int) 2
|
||||||
45(ResType): TypeStruct 13(fvec2) 44(ivec2)
|
46(ResType): TypeStruct 13(fvec2) 45(ivec2)
|
||||||
49: 6(float) Constant 1065353216
|
51: 6(float) Constant 1065353216
|
||||||
50: 6(float) Constant 1073741824
|
52: 6(float) Constant 1073741824
|
||||||
51: 13(fvec2) ConstantComposite 49 50
|
53: 13(fvec2) ConstantComposite 51 52
|
||||||
55: TypeVector 35(int) 3
|
57: TypeVector 35(int) 3
|
||||||
56(ResType): TypeStruct 20(fvec3) 55(ivec3)
|
58(ResType): TypeStruct 20(fvec3) 57(ivec3)
|
||||||
60: 6(float) Constant 1077936128
|
63: 6(float) Constant 1077936128
|
||||||
61: 20(fvec3) ConstantComposite 49 50 60
|
64: 20(fvec3) ConstantComposite 51 52 63
|
||||||
65: TypeVector 35(int) 4
|
68: TypeVector 35(int) 4
|
||||||
66(ResType): TypeStruct 27(fvec4) 65(ivec4)
|
69(ResType): TypeStruct 27(fvec4) 68(ivec4)
|
||||||
70: 6(float) Constant 1082130432
|
74: 6(float) Constant 1082130432
|
||||||
71: 27(fvec4) ConstantComposite 49 50 60 70
|
75: 27(fvec4) ConstantComposite 51 52 63 74
|
||||||
4(VertexShaderFunction): 2 Function None 3
|
4(VertexShaderFunction): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
Return
|
Return
|
||||||
@ -178,40 +178,44 @@ Shader version: 450
|
|||||||
34: 6(float) Load 9(inF0)
|
34: 6(float) Load 9(inF0)
|
||||||
37: 36(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 34
|
37: 36(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 34
|
||||||
38: 35(int) CompositeExtract 37 1
|
38: 35(int) CompositeExtract 37 1
|
||||||
Store 10(inF1) 38
|
39: 6(float) ConvertSToF 38
|
||||||
39: 6(float) CompositeExtract 37 0
|
Store 10(inF1) 39
|
||||||
ReturnValue 40
|
40: 6(float) CompositeExtract 37 0
|
||||||
|
ReturnValue 41
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
18(VertexShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15
|
18(VertexShaderFunction2(vf2;vf2;): 13(fvec2) Function None 15
|
||||||
16(inF0): 14(ptr) FunctionParameter
|
16(inF0): 14(ptr) FunctionParameter
|
||||||
17(inF1): 14(ptr) FunctionParameter
|
17(inF1): 14(ptr) FunctionParameter
|
||||||
19: Label
|
19: Label
|
||||||
43: 13(fvec2) Load 16(inF0)
|
44: 13(fvec2) Load 16(inF0)
|
||||||
46: 45(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 43
|
47: 46(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 44
|
||||||
47: 44(ivec2) CompositeExtract 46 1
|
48: 45(ivec2) CompositeExtract 47 1
|
||||||
Store 17(inF1) 47
|
49: 13(fvec2) ConvertSToF 48
|
||||||
48: 13(fvec2) CompositeExtract 46 0
|
Store 17(inF1) 49
|
||||||
ReturnValue 51
|
50: 13(fvec2) CompositeExtract 47 0
|
||||||
|
ReturnValue 53
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
25(VertexShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22
|
25(VertexShaderFunction3(vf3;vf3;): 20(fvec3) Function None 22
|
||||||
23(inF0): 21(ptr) FunctionParameter
|
23(inF0): 21(ptr) FunctionParameter
|
||||||
24(inF1): 21(ptr) FunctionParameter
|
24(inF1): 21(ptr) FunctionParameter
|
||||||
26: Label
|
26: Label
|
||||||
54: 20(fvec3) Load 23(inF0)
|
56: 20(fvec3) Load 23(inF0)
|
||||||
57: 56(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 54
|
59: 58(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 56
|
||||||
58: 55(ivec3) CompositeExtract 57 1
|
60: 57(ivec3) CompositeExtract 59 1
|
||||||
Store 24(inF1) 58
|
61: 20(fvec3) ConvertSToF 60
|
||||||
59: 20(fvec3) CompositeExtract 57 0
|
Store 24(inF1) 61
|
||||||
ReturnValue 61
|
62: 20(fvec3) CompositeExtract 59 0
|
||||||
|
ReturnValue 64
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
32(VertexShaderFunction4(vf4;vf4;): 27(fvec4) Function None 29
|
32(VertexShaderFunction4(vf4;vf4;): 27(fvec4) Function None 29
|
||||||
30(inF0): 28(ptr) FunctionParameter
|
30(inF0): 28(ptr) FunctionParameter
|
||||||
31(inF1): 28(ptr) FunctionParameter
|
31(inF1): 28(ptr) FunctionParameter
|
||||||
33: Label
|
33: Label
|
||||||
64: 27(fvec4) Load 30(inF0)
|
67: 27(fvec4) Load 30(inF0)
|
||||||
67: 66(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 64
|
70: 69(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 67
|
||||||
68: 65(ivec4) CompositeExtract 67 1
|
71: 68(ivec4) CompositeExtract 70 1
|
||||||
Store 31(inF1) 68
|
72: 27(fvec4) ConvertSToF 71
|
||||||
69: 27(fvec4) CompositeExtract 67 0
|
Store 31(inF1) 72
|
||||||
ReturnValue 71
|
73: 27(fvec4) CompositeExtract 70 0
|
||||||
|
ReturnValue 75
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
Loading…
x
Reference in New Issue
Block a user