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
e58c080d
Unverified
Commit
e58c080d
authored
Dec 03, 2019
by
John Kessenich
Committed by
GitHub
Dec 03, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1990 from ianromanick/INTEL_shader_integer_functions2
Implement INTEL_shader_integer_functions2
parents
a4af7676
b3bd402c
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
270 additions
and
3 deletions
+270
-3
GlslangToSpv.cpp
SPIRV/GlslangToSpv.cpp
+47
-0
doc.cpp
SPIRV/doc.cpp
+2
-0
spv.specConstant.vert.out
Test/baseResults/spv.specConstant.vert.out
+3
-3
intermediate.h
glslang/Include/intermediate.h
+9
-0
Initialize.cpp
glslang/MachineIndependent/Initialize.cpp
+193
-0
Versions.cpp
glslang/MachineIndependent/Versions.cpp
+4
-0
Versions.h
glslang/MachineIndependent/Versions.h
+2
-0
intermOut.cpp
glslang/MachineIndependent/intermOut.cpp
+10
-0
No files found.
SPIRV/GlslangToSpv.cpp
View file @
e58c080d
...
@@ -2608,6 +2608,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
...
@@ -2608,6 +2608,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
atomic
=
true
;
atomic
=
true
;
break
;
break
;
case
glslang
:
:
EOpAbsDifference
:
case
glslang
:
:
EOpAddSaturate
:
case
glslang
:
:
EOpSubSaturate
:
case
glslang
:
:
EOpAverage
:
case
glslang
:
:
EOpAverageRounded
:
case
glslang
:
:
EOpMul32x16
:
builder
.
addCapability
(
spv
::
CapabilityIntegerFunctions2INTEL
);
builder
.
addExtension
(
"SPV_INTEL_shader_integer_functions2"
);
binOp
=
node
->
getOp
();
break
;
case
glslang
:
:
EOpIgnoreIntersectionNV
:
case
glslang
:
:
EOpIgnoreIntersectionNV
:
case
glslang
:
:
EOpTerminateRayNV
:
case
glslang
:
:
EOpTerminateRayNV
:
case
glslang
:
:
EOpTraceNV
:
case
glslang
:
:
EOpTraceNV
:
...
@@ -5231,6 +5242,30 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpD
...
@@ -5231,6 +5242,30 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, OpD
binOp
=
spv
::
OpLogicalNotEqual
;
binOp
=
spv
::
OpLogicalNotEqual
;
break
;
break
;
case
glslang
:
:
EOpAbsDifference
:
binOp
=
isUnsigned
?
spv
::
OpAbsUSubINTEL
:
spv
::
OpAbsISubINTEL
;
break
;
case
glslang
:
:
EOpAddSaturate
:
binOp
=
isUnsigned
?
spv
::
OpUAddSatINTEL
:
spv
::
OpIAddSatINTEL
;
break
;
case
glslang
:
:
EOpSubSaturate
:
binOp
=
isUnsigned
?
spv
::
OpUSubSatINTEL
:
spv
::
OpISubSatINTEL
;
break
;
case
glslang
:
:
EOpAverage
:
binOp
=
isUnsigned
?
spv
::
OpUAverageINTEL
:
spv
::
OpIAverageINTEL
;
break
;
case
glslang
:
:
EOpAverageRounded
:
binOp
=
isUnsigned
?
spv
::
OpUAverageRoundedINTEL
:
spv
::
OpIAverageRoundedINTEL
;
break
;
case
glslang
:
:
EOpMul32x16
:
binOp
=
isUnsigned
?
spv
::
OpUMul32x16INTEL
:
spv
::
OpIMul32x16INTEL
;
break
;
case
glslang
:
:
EOpLessThan
:
case
glslang
:
:
EOpLessThan
:
case
glslang
:
:
EOpGreaterThan
:
case
glslang
:
:
EOpGreaterThan
:
case
glslang
:
:
EOpLessThanEqual
:
case
glslang
:
:
EOpLessThanEqual
:
...
@@ -5745,6 +5780,18 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe
...
@@ -5745,6 +5780,18 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, OpDe
libCall
=
spv
::
GLSLstd450FindSMsb
;
libCall
=
spv
::
GLSLstd450FindSMsb
;
break
;
break
;
case
glslang
:
:
EOpCountLeadingZeros
:
builder
.
addCapability
(
spv
::
CapabilityIntegerFunctions2INTEL
);
builder
.
addExtension
(
"SPV_INTEL_shader_integer_functions2"
);
unaryOp
=
spv
::
OpUCountLeadingZerosINTEL
;
break
;
case
glslang
:
:
EOpCountTrailingZeros
:
builder
.
addCapability
(
spv
::
CapabilityIntegerFunctions2INTEL
);
builder
.
addExtension
(
"SPV_INTEL_shader_integer_functions2"
);
unaryOp
=
spv
::
OpUCountTrailingZerosINTEL
;
break
;
case
glslang
:
:
EOpBallot
:
case
glslang
:
:
EOpBallot
:
case
glslang
:
:
EOpReadFirstInvocation
:
case
glslang
:
:
EOpReadFirstInvocation
:
case
glslang
:
:
EOpAnyInvocation
:
case
glslang
:
:
EOpAnyInvocation
:
...
...
SPIRV/doc.cpp
View file @
e58c080d
...
@@ -931,6 +931,8 @@ const char* CapabilityString(int info)
...
@@ -931,6 +931,8 @@ const char* CapabilityString(int info)
case
CapabilityDemoteToHelperInvocationEXT
:
return
"DemoteToHelperInvocationEXT"
;
case
CapabilityDemoteToHelperInvocationEXT
:
return
"DemoteToHelperInvocationEXT"
;
case
CapabilityShaderClockKHR
:
return
"ShaderClockKHR"
;
case
CapabilityShaderClockKHR
:
return
"ShaderClockKHR"
;
case
CapabilityIntegerFunctions2INTEL
:
return
"CapabilityIntegerFunctions2INTEL"
;
default:
return
"Bad"
;
default:
return
"Bad"
;
}
}
}
}
...
...
Test/baseResults/spv.specConstant.vert.out
View file @
e58c080d
...
@@ -11,7 +11,7 @@ spv.specConstant.vert
...
@@ -11,7 +11,7 @@ spv.specConstant.vert
Source GLSL 400
Source GLSL 400
Name 4 "main"
Name 4 "main"
Name 9 "arraySize"
Name 9 "arraySize"
Name 14 "foo(vf4[s4
393
];"
Name 14 "foo(vf4[s4
529
];"
Name 13 "p"
Name 13 "p"
Name 17 "builtin_spec_constant("
Name 17 "builtin_spec_constant("
Name 20 "color"
Name 20 "color"
...
@@ -102,10 +102,10 @@ spv.specConstant.vert
...
@@ -102,10 +102,10 @@ spv.specConstant.vert
Store 20(color) 46
Store 20(color) 46
48: 10 Load 22(ucol)
48: 10 Load 22(ucol)
Store 47(param) 48
Store 47(param) 48
49: 2 FunctionCall 14(foo(vf4[s4
393
];) 47(param)
49: 2 FunctionCall 14(foo(vf4[s4
529
];) 47(param)
Return
Return
FunctionEnd
FunctionEnd
14(foo(vf4[s4
393
];): 2 Function None 12
14(foo(vf4[s4
529
];): 2 Function None 12
13(p): 11(ptr) FunctionParameter
13(p): 11(ptr) FunctionParameter
15: Label
15: Label
54: 24(ptr) AccessChain 53(dupUcol) 23
54: 24(ptr) AccessChain 53(dupUcol) 23
...
...
glslang/Include/intermediate.h
View file @
e58c080d
...
@@ -899,6 +899,15 @@ enum TOperator {
...
@@ -899,6 +899,15 @@ enum TOperator {
EOpFindLSB
,
EOpFindLSB
,
EOpFindMSB
,
EOpFindMSB
,
EOpCountLeadingZeros
,
EOpCountTrailingZeros
,
EOpAbsDifference
,
EOpAddSaturate
,
EOpSubSaturate
,
EOpAverage
,
EOpAverageRounded
,
EOpMul32x16
,
EOpTraceNV
,
EOpTraceNV
,
EOpReportIntersectionNV
,
EOpReportIntersectionNV
,
EOpIgnoreIntersectionNV
,
EOpIgnoreIntersectionNV
,
...
...
glslang/MachineIndependent/Initialize.cpp
View file @
e58c080d
...
@@ -2854,6 +2854,181 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
...
@@ -2854,6 +2854,181 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"
\n
"
);
"
\n
"
);
}
}
if
((
profile
!=
EEsProfile
&&
version
>=
130
)
||
(
profile
==
EEsProfile
&&
version
>=
300
))
{
commonBuiltins
.
append
(
"uint countLeadingZeros(uint);"
"uvec2 countLeadingZeros(uvec2);"
"uvec3 countLeadingZeros(uvec3);"
"uvec4 countLeadingZeros(uvec4);"
"uint countTrailingZeros(uint);"
"uvec2 countTrailingZeros(uvec2);"
"uvec3 countTrailingZeros(uvec3);"
"uvec4 countTrailingZeros(uvec4);"
"uint absoluteDifference(int, int);"
"uvec2 absoluteDifference(ivec2, ivec2);"
"uvec3 absoluteDifference(ivec3, ivec3);"
"uvec4 absoluteDifference(ivec4, ivec4);"
"uint16_t absoluteDifference(int16_t, int16_t);"
"u16vec2 absoluteDifference(i16vec2, i16vec2);"
"u16vec3 absoluteDifference(i16vec3, i16vec3);"
"u16vec4 absoluteDifference(i16vec4, i16vec4);"
"uint64_t absoluteDifference(int64_t, int64_t);"
"u64vec2 absoluteDifference(i64vec2, i64vec2);"
"u64vec3 absoluteDifference(i64vec3, i64vec3);"
"u64vec4 absoluteDifference(i64vec4, i64vec4);"
"uint absoluteDifference(uint, uint);"
"uvec2 absoluteDifference(uvec2, uvec2);"
"uvec3 absoluteDifference(uvec3, uvec3);"
"uvec4 absoluteDifference(uvec4, uvec4);"
"uint16_t absoluteDifference(uint16_t, uint16_t);"
"u16vec2 absoluteDifference(u16vec2, u16vec2);"
"u16vec3 absoluteDifference(u16vec3, u16vec3);"
"u16vec4 absoluteDifference(u16vec4, u16vec4);"
"uint64_t absoluteDifference(uint64_t, uint64_t);"
"u64vec2 absoluteDifference(u64vec2, u64vec2);"
"u64vec3 absoluteDifference(u64vec3, u64vec3);"
"u64vec4 absoluteDifference(u64vec4, u64vec4);"
"int addSaturate(int, int);"
"ivec2 addSaturate(ivec2, ivec2);"
"ivec3 addSaturate(ivec3, ivec3);"
"ivec4 addSaturate(ivec4, ivec4);"
"int16_t addSaturate(int16_t, int16_t);"
"i16vec2 addSaturate(i16vec2, i16vec2);"
"i16vec3 addSaturate(i16vec3, i16vec3);"
"i16vec4 addSaturate(i16vec4, i16vec4);"
"int64_t addSaturate(int64_t, int64_t);"
"i64vec2 addSaturate(i64vec2, i64vec2);"
"i64vec3 addSaturate(i64vec3, i64vec3);"
"i64vec4 addSaturate(i64vec4, i64vec4);"
"uint addSaturate(uint, uint);"
"uvec2 addSaturate(uvec2, uvec2);"
"uvec3 addSaturate(uvec3, uvec3);"
"uvec4 addSaturate(uvec4, uvec4);"
"uint16_t addSaturate(uint16_t, uint16_t);"
"u16vec2 addSaturate(u16vec2, u16vec2);"
"u16vec3 addSaturate(u16vec3, u16vec3);"
"u16vec4 addSaturate(u16vec4, u16vec4);"
"uint64_t addSaturate(uint64_t, uint64_t);"
"u64vec2 addSaturate(u64vec2, u64vec2);"
"u64vec3 addSaturate(u64vec3, u64vec3);"
"u64vec4 addSaturate(u64vec4, u64vec4);"
"int subtractSaturate(int, int);"
"ivec2 subtractSaturate(ivec2, ivec2);"
"ivec3 subtractSaturate(ivec3, ivec3);"
"ivec4 subtractSaturate(ivec4, ivec4);"
"int16_t subtractSaturate(int16_t, int16_t);"
"i16vec2 subtractSaturate(i16vec2, i16vec2);"
"i16vec3 subtractSaturate(i16vec3, i16vec3);"
"i16vec4 subtractSaturate(i16vec4, i16vec4);"
"int64_t subtractSaturate(int64_t, int64_t);"
"i64vec2 subtractSaturate(i64vec2, i64vec2);"
"i64vec3 subtractSaturate(i64vec3, i64vec3);"
"i64vec4 subtractSaturate(i64vec4, i64vec4);"
"uint subtractSaturate(uint, uint);"
"uvec2 subtractSaturate(uvec2, uvec2);"
"uvec3 subtractSaturate(uvec3, uvec3);"
"uvec4 subtractSaturate(uvec4, uvec4);"
"uint16_t subtractSaturate(uint16_t, uint16_t);"
"u16vec2 subtractSaturate(u16vec2, u16vec2);"
"u16vec3 subtractSaturate(u16vec3, u16vec3);"
"u16vec4 subtractSaturate(u16vec4, u16vec4);"
"uint64_t subtractSaturate(uint64_t, uint64_t);"
"u64vec2 subtractSaturate(u64vec2, u64vec2);"
"u64vec3 subtractSaturate(u64vec3, u64vec3);"
"u64vec4 subtractSaturate(u64vec4, u64vec4);"
"int average(int, int);"
"ivec2 average(ivec2, ivec2);"
"ivec3 average(ivec3, ivec3);"
"ivec4 average(ivec4, ivec4);"
"int16_t average(int16_t, int16_t);"
"i16vec2 average(i16vec2, i16vec2);"
"i16vec3 average(i16vec3, i16vec3);"
"i16vec4 average(i16vec4, i16vec4);"
"int64_t average(int64_t, int64_t);"
"i64vec2 average(i64vec2, i64vec2);"
"i64vec3 average(i64vec3, i64vec3);"
"i64vec4 average(i64vec4, i64vec4);"
"uint average(uint, uint);"
"uvec2 average(uvec2, uvec2);"
"uvec3 average(uvec3, uvec3);"
"uvec4 average(uvec4, uvec4);"
"uint16_t average(uint16_t, uint16_t);"
"u16vec2 average(u16vec2, u16vec2);"
"u16vec3 average(u16vec3, u16vec3);"
"u16vec4 average(u16vec4, u16vec4);"
"uint64_t average(uint64_t, uint64_t);"
"u64vec2 average(u64vec2, u64vec2);"
"u64vec3 average(u64vec3, u64vec3);"
"u64vec4 average(u64vec4, u64vec4);"
"int averageRounded(int, int);"
"ivec2 averageRounded(ivec2, ivec2);"
"ivec3 averageRounded(ivec3, ivec3);"
"ivec4 averageRounded(ivec4, ivec4);"
"int16_t averageRounded(int16_t, int16_t);"
"i16vec2 averageRounded(i16vec2, i16vec2);"
"i16vec3 averageRounded(i16vec3, i16vec3);"
"i16vec4 averageRounded(i16vec4, i16vec4);"
"int64_t averageRounded(int64_t, int64_t);"
"i64vec2 averageRounded(i64vec2, i64vec2);"
"i64vec3 averageRounded(i64vec3, i64vec3);"
"i64vec4 averageRounded(i64vec4, i64vec4);"
"uint averageRounded(uint, uint);"
"uvec2 averageRounded(uvec2, uvec2);"
"uvec3 averageRounded(uvec3, uvec3);"
"uvec4 averageRounded(uvec4, uvec4);"
"uint16_t averageRounded(uint16_t, uint16_t);"
"u16vec2 averageRounded(u16vec2, u16vec2);"
"u16vec3 averageRounded(u16vec3, u16vec3);"
"u16vec4 averageRounded(u16vec4, u16vec4);"
"uint64_t averageRounded(uint64_t, uint64_t);"
"u64vec2 averageRounded(u64vec2, u64vec2);"
"u64vec3 averageRounded(u64vec3, u64vec3);"
"u64vec4 averageRounded(u64vec4, u64vec4);"
"int multiply32x16(int, int);"
"ivec2 multiply32x16(ivec2, ivec2);"
"ivec3 multiply32x16(ivec3, ivec3);"
"ivec4 multiply32x16(ivec4, ivec4);"
"uint multiply32x16(uint, uint);"
"uvec2 multiply32x16(uvec2, uvec2);"
"uvec3 multiply32x16(uvec3, uvec3);"
"uvec4 multiply32x16(uvec4, uvec4);"
"
\n
"
);
}
if
((
profile
!=
EEsProfile
&&
version
>=
450
)
||
if
((
profile
!=
EEsProfile
&&
version
>=
450
)
||
(
profile
==
EEsProfile
&&
version
>=
320
))
{
(
profile
==
EEsProfile
&&
version
>=
320
))
{
commonBuiltins
.
append
(
commonBuiltins
.
append
(
...
@@ -6974,6 +7149,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
...
@@ -6974,6 +7149,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable
.
setFunctionExtensions
(
"fragmentFetchAMD"
,
1
,
&
E_GL_AMD_shader_fragment_mask
);
symbolTable
.
setFunctionExtensions
(
"fragmentFetchAMD"
,
1
,
&
E_GL_AMD_shader_fragment_mask
);
}
}
symbolTable
.
setFunctionExtensions
(
"countLeadingZeros"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"countTrailingZeros"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"absoluteDifference"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"addSaturate"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"subtractSaturate"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"average"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"averageRounded"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"multiply32x16"
,
1
,
&
E_GL_INTEL_shader_integer_functions2
);
symbolTable
.
setFunctionExtensions
(
"textureFootprintNV"
,
1
,
&
E_GL_NV_shader_texture_footprint
);
symbolTable
.
setFunctionExtensions
(
"textureFootprintNV"
,
1
,
&
E_GL_NV_shader_texture_footprint
);
symbolTable
.
setFunctionExtensions
(
"textureFootprintClampNV"
,
1
,
&
E_GL_NV_shader_texture_footprint
);
symbolTable
.
setFunctionExtensions
(
"textureFootprintClampNV"
,
1
,
&
E_GL_NV_shader_texture_footprint
);
symbolTable
.
setFunctionExtensions
(
"textureFootprintLodNV"
,
1
,
&
E_GL_NV_shader_texture_footprint
);
symbolTable
.
setFunctionExtensions
(
"textureFootprintLodNV"
,
1
,
&
E_GL_NV_shader_texture_footprint
);
...
@@ -8217,6 +8401,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
...
@@ -8217,6 +8401,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable
.
relateToOperator
(
"helperInvocationEXT"
,
EOpIsHelperInvocation
);
symbolTable
.
relateToOperator
(
"helperInvocationEXT"
,
EOpIsHelperInvocation
);
symbolTable
.
relateToOperator
(
"countLeadingZeros"
,
EOpCountLeadingZeros
);
symbolTable
.
relateToOperator
(
"countTrailingZeros"
,
EOpCountTrailingZeros
);
symbolTable
.
relateToOperator
(
"absoluteDifference"
,
EOpAbsDifference
);
symbolTable
.
relateToOperator
(
"addSaturate"
,
EOpAddSaturate
);
symbolTable
.
relateToOperator
(
"subtractSaturate"
,
EOpSubSaturate
);
symbolTable
.
relateToOperator
(
"average"
,
EOpAverage
);
symbolTable
.
relateToOperator
(
"averageRounded"
,
EOpAverageRounded
);
symbolTable
.
relateToOperator
(
"multiply32x16"
,
EOpMul32x16
);
if
(
PureOperatorBuiltins
)
{
if
(
PureOperatorBuiltins
)
{
symbolTable
.
relateToOperator
(
"imageSize"
,
EOpImageQuerySize
);
symbolTable
.
relateToOperator
(
"imageSize"
,
EOpImageQuerySize
);
symbolTable
.
relateToOperator
(
"imageSamples"
,
EOpImageQuerySamples
);
symbolTable
.
relateToOperator
(
"imageSamples"
,
EOpImageQuerySamples
);
...
...
glslang/MachineIndependent/Versions.cpp
View file @
e58c080d
...
@@ -236,6 +236,8 @@ void TParseVersions::initializeExtensionBehavior()
...
@@ -236,6 +236,8 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior
[
E_GL_AMD_shader_fragment_mask
]
=
EBhDisable
;
extensionBehavior
[
E_GL_AMD_shader_fragment_mask
]
=
EBhDisable
;
extensionBehavior
[
E_GL_AMD_gpu_shader_half_float_fetch
]
=
EBhDisable
;
extensionBehavior
[
E_GL_AMD_gpu_shader_half_float_fetch
]
=
EBhDisable
;
extensionBehavior
[
E_GL_INTEL_shader_integer_functions2
]
=
EBhDisable
;
extensionBehavior
[
E_GL_NV_sample_mask_override_coverage
]
=
EBhDisable
;
extensionBehavior
[
E_GL_NV_sample_mask_override_coverage
]
=
EBhDisable
;
extensionBehavior
[
E_SPV_NV_geometry_shader_passthrough
]
=
EBhDisable
;
extensionBehavior
[
E_SPV_NV_geometry_shader_passthrough
]
=
EBhDisable
;
extensionBehavior
[
E_GL_NV_viewport_array2
]
=
EBhDisable
;
extensionBehavior
[
E_GL_NV_viewport_array2
]
=
EBhDisable
;
...
@@ -434,6 +436,8 @@ void TParseVersions::getPreamble(std::string& preamble)
...
@@ -434,6 +436,8 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_AMD_shader_fragment_mask 1
\n
"
"#define GL_AMD_shader_fragment_mask 1
\n
"
"#define GL_AMD_gpu_shader_half_float_fetch 1
\n
"
"#define GL_AMD_gpu_shader_half_float_fetch 1
\n
"
"#define GL_INTEL_shader_integer_functions2 1
\n
"
"#define GL_NV_sample_mask_override_coverage 1
\n
"
"#define GL_NV_sample_mask_override_coverage 1
\n
"
"#define GL_NV_geometry_shader_passthrough 1
\n
"
"#define GL_NV_geometry_shader_passthrough 1
\n
"
"#define GL_NV_viewport_array2 1
\n
"
"#define GL_NV_viewport_array2 1
\n
"
...
...
glslang/MachineIndependent/Versions.h
View file @
e58c080d
...
@@ -206,6 +206,8 @@ const char* const E_GL_AMD_shader_image_load_store_lod = "GL_AMD_shader
...
@@ -206,6 +206,8 @@ const char* const E_GL_AMD_shader_image_load_store_lod = "GL_AMD_shader
const
char
*
const
E_GL_AMD_shader_fragment_mask
=
"GL_AMD_shader_fragment_mask"
;
const
char
*
const
E_GL_AMD_shader_fragment_mask
=
"GL_AMD_shader_fragment_mask"
;
const
char
*
const
E_GL_AMD_gpu_shader_half_float_fetch
=
"GL_AMD_gpu_shader_half_float_fetch"
;
const
char
*
const
E_GL_AMD_gpu_shader_half_float_fetch
=
"GL_AMD_gpu_shader_half_float_fetch"
;
const
char
*
const
E_GL_INTEL_shader_integer_functions2
=
"GL_INTEL_shader_integer_functions2"
;
const
char
*
const
E_GL_NV_sample_mask_override_coverage
=
"GL_NV_sample_mask_override_coverage"
;
const
char
*
const
E_GL_NV_sample_mask_override_coverage
=
"GL_NV_sample_mask_override_coverage"
;
const
char
*
const
E_SPV_NV_geometry_shader_passthrough
=
"GL_NV_geometry_shader_passthrough"
;
const
char
*
const
E_SPV_NV_geometry_shader_passthrough
=
"GL_NV_geometry_shader_passthrough"
;
const
char
*
const
E_GL_NV_viewport_array2
=
"GL_NV_viewport_array2"
;
const
char
*
const
E_GL_NV_viewport_array2
=
"GL_NV_viewport_array2"
;
...
...
glslang/MachineIndependent/intermOut.cpp
View file @
e58c080d
...
@@ -213,6 +213,13 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node)
...
@@ -213,6 +213,13 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node)
case
EOpLogicalXor
:
out
.
debug
<<
"logical-xor"
;
break
;
case
EOpLogicalXor
:
out
.
debug
<<
"logical-xor"
;
break
;
case
EOpLogicalAnd
:
out
.
debug
<<
"logical-and"
;
break
;
case
EOpLogicalAnd
:
out
.
debug
<<
"logical-and"
;
break
;
case
EOpAbsDifference
:
out
.
debug
<<
"absoluteDifference"
;
break
;
case
EOpAddSaturate
:
out
.
debug
<<
"addSaturate"
;
break
;
case
EOpSubSaturate
:
out
.
debug
<<
"subtractSaturate"
;
break
;
case
EOpAverage
:
out
.
debug
<<
"average"
;
break
;
case
EOpAverageRounded
:
out
.
debug
<<
"averageRounded"
;
break
;
case
EOpMul32x16
:
out
.
debug
<<
"multiply32x16"
;
break
;
default
:
out
.
debug
<<
"<unknown op>"
;
default
:
out
.
debug
<<
"<unknown op>"
;
}
}
...
@@ -557,6 +564,9 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
...
@@ -557,6 +564,9 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
case
EOpFindLSB
:
out
.
debug
<<
"findLSB"
;
break
;
case
EOpFindLSB
:
out
.
debug
<<
"findLSB"
;
break
;
case
EOpFindMSB
:
out
.
debug
<<
"findMSB"
;
break
;
case
EOpFindMSB
:
out
.
debug
<<
"findMSB"
;
break
;
case
EOpCountLeadingZeros
:
out
.
debug
<<
"countLeadingZeros"
;
break
;
case
EOpCountTrailingZeros
:
out
.
debug
<<
"countTrailingZeros"
;
break
;
case
EOpNoise
:
out
.
debug
<<
"noise"
;
break
;
case
EOpNoise
:
out
.
debug
<<
"noise"
;
break
;
case
EOpBallot
:
out
.
debug
<<
"ballot"
;
break
;
case
EOpBallot
:
out
.
debug
<<
"ballot"
;
break
;
...
...
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