Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
470026f9
Commit
470026f9
authored
Mar 29, 2017
by
Rex Xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
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.
parent
86e49d17
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
154 additions
and
115 deletions
+154
-115
GlslangToSpv.cpp
SPIRV/GlslangToSpv.cpp
+31
-10
SpvBuilder.h
SPIRV/SpvBuilder.h
+10
-0
hlsl.intrinsic.frexp.frag.out
Test/baseResults/hlsl.intrinsic.frexp.frag.out
+70
-66
hlsl.intrinsic.frexp.vert.out
Test/baseResults/hlsl.intrinsic.frexp.vert.out
+43
-39
No files found.
SPIRV/GlslangToSpv.cpp
View file @
470026f9
...
@@ -4609,6 +4609,9 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
...
@@ -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::
...
@@ -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::
...
@@ -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
;
...
...
SPIRV/SpvBuilder.h
View file @
470026f9
...
@@ -134,6 +134,9 @@ public:
...
@@ -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:
...
@@ -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
));
...
...
Test/baseResults/hlsl.intrinsic.frexp.frag.out
View file @
470026f9
...
@@ -191,12 +191,12 @@ gl_FragCoord origin is upper left
...
@@ -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 9
4
// Id's are bound by 9
8
Capability Shader
Capability Shader
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 9
1
EntryPoint Fragment 4 "main" 9
5
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
...
@@ -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 4
8
"r000"
Name 4
9
"r000"
Name 5
1
"ResType"
Name 5
2
"ResType"
Name 6
0
"r000"
Name 6
2
"r000"
Name 6
3
"ResType"
Name 6
5
"ResType"
Name 7
1
"r000"
Name 7
4
"r000"
Name 7
4
"ResType"
Name 7
7
"ResType"
Name 8
3
"ps_output"
Name 8
7
"ps_output"
Name 9
1
"color"
Name 9
5
"color"
Decorate 9
1
(color) Location 0
Decorate 9
5
(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
...
@@ -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)
4
5
: 6(float) Constant 0
4
6
: 6(float) Constant 0
5
0
: TypeVector 40(int) 2
5
1
: TypeVector 40(int) 2
5
1(ResType): TypeStruct 13(fvec2) 50
(ivec2)
5
2(ResType): TypeStruct 13(fvec2) 51
(ivec2)
5
5
: 6(float) Constant 1065353216
5
7
: 6(float) Constant 1065353216
5
6
: 6(float) Constant 1073741824
5
8
: 6(float) Constant 1073741824
5
7: 13(fvec2) ConstantComposite 55 56
5
9: 13(fvec2) ConstantComposite 57 58
6
2
: TypeVector 40(int) 3
6
4
: TypeVector 40(int) 3
6
3(ResType): TypeStruct 20(fvec3) 62
(ivec3)
6
5(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
7
3
: TypeVector 40(int) 4
7
6
: TypeVector 40(int) 4
7
4(ResType): TypeStruct 27(fvec4) 73
(ivec4)
7
7(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
8
2
: TypePointer Function 34(PS_OUTPUT)
8
6
: TypePointer Function 34(PS_OUTPUT)
8
4
: 40(int) Constant 0
8
8
: 40(int) Constant 0
8
5: 27(fvec4) ConstantComposite 55 55 55 55
8
9: 27(fvec4) ConstantComposite 57 57 57 57
9
0
: TypePointer Output 27(fvec4)
9
4
: TypePointer Output 27(fvec4)
9
1(color): 90
(ptr) Variable Output
9
5(color): 94
(ptr) Variable Output
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
9
2
:34(PS_OUTPUT) FunctionCall 36(@main()
9
6
:34(PS_OUTPUT) FunctionCall 36(@main()
9
3: 27(fvec4) CompositeExtract 92
0
9
7: 27(fvec4) CompositeExtract 96
0
Store 9
1(color) 93
Store 9
5(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
...
@@ -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
8
3(ps_output): 82
(ptr) Variable Function
8
7(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
Test/baseResults/hlsl.intrinsic.frexp.vert.out
View file @
470026f9
...
@@ -114,7 +114,7 @@ Shader version: 450
...
@@ -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 7
4
// Id's are bound by 7
8
Capability Shader
Capability Shader
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
...
@@ -134,9 +134,9 @@ Shader version: 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 4
5
"ResType"
Name 4
6
"ResType"
Name 5
6
"ResType"
Name 5
8
"ResType"
Name 6
6
"ResType"
Name 6
9
"ResType"
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeFloat 32
6: TypeFloat 32
...
@@ -153,20 +153,20 @@ Shader version: 450
...
@@ -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)
4
0
: 6(float) Constant 0
4
1
: 6(float) Constant 0
4
4
: TypeVector 35(int) 2
4
5
: TypeVector 35(int) 2
4
5(ResType): TypeStruct 13(fvec2) 44
(ivec2)
4
6(ResType): TypeStruct 13(fvec2) 45
(ivec2)
49
: 6(float) Constant 1065353216
51
: 6(float) Constant 1065353216
5
0
: 6(float) Constant 1073741824
5
2
: 6(float) Constant 1073741824
5
1: 13(fvec2) ConstantComposite 49 50
5
3: 13(fvec2) ConstantComposite 51 52
5
5
: TypeVector 35(int) 3
5
7
: TypeVector 35(int) 3
5
6(ResType): TypeStruct 20(fvec3) 55
(ivec3)
5
8(ResType): TypeStruct 20(fvec3) 57
(ivec3)
6
0
: 6(float) Constant 1077936128
6
3
: 6(float) Constant 1077936128
6
1: 20(fvec3) ConstantComposite 49 50 60
6
4: 20(fvec3) ConstantComposite 51 52 63
6
5
: TypeVector 35(int) 4
6
8
: TypeVector 35(int) 4
6
6(ResType): TypeStruct 27(fvec4) 65
(ivec4)
6
9(ResType): TypeStruct 27(fvec4) 68
(ivec4)
7
0
: 6(float) Constant 1082130432
7
4
: 6(float) Constant 1082130432
7
1: 27(fvec4) ConstantComposite 49 50 60 70
7
5: 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
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment