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
d39b8afc
Unverified
Commit
d39b8afc
authored
May 28, 2020
by
alelenv
Committed by
GitHub
May 28, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
EXT_ray_tracing requires spv1.4 (#2237)
* EXT_ray_tracing requires spv1.4 * Fix typo. * Add extension data table. * Updated feedback #2.
parent
d0c9129d
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
91 additions
and
37 deletions
+91
-37
spv.ext.AnyHitShader.rahit.out
Test/baseResults/spv.ext.AnyHitShader.rahit.out
+2
-2
spv.ext.ClosestHitShader.rchit.out
Test/baseResults/spv.ext.ClosestHitShader.rchit.out
+2
-2
spv.ext.IntersectShader.rint.out
Test/baseResults/spv.ext.IntersectShader.rint.out
+2
-2
spv.ext.MissShader.rmiss.out
Test/baseResults/spv.ext.MissShader.rmiss.out
+2
-2
spv.ext.RayCallable.rcall.out
Test/baseResults/spv.ext.RayCallable.rcall.out
+2
-2
spv.ext.RayConstants.rgen.out
Test/baseResults/spv.ext.RayConstants.rgen.out
+2
-2
spv.ext.RayGenShader.rgen.out
Test/baseResults/spv.ext.RayGenShader.rgen.out
+3
-3
spv.ext.RayGenShader11.rgen.out
Test/baseResults/spv.ext.RayGenShader11.rgen.out
+3
-3
spv.ext.RayGenShaderArray.rgen.out
Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
+3
-3
Versions.cpp
glslang/MachineIndependent/Versions.cpp
+49
-1
Versions.h
glslang/MachineIndependent/Versions.h
+1
-0
parseVersions.h
glslang/MachineIndependent/parseVersions.h
+4
-0
ShaderLang.h
glslang/Public/ShaderLang.h
+1
-0
Spv.FromFile.cpp
gtests/Spv.FromFile.cpp
+15
-15
No files found.
Test/baseResults/spv.ext.AnyHitShader.rahit.out
View file @
d39b8afc
spv.ext.AnyHitShader.rahit
spv.ext.AnyHitShader.rahit
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 94
// Id's are bound by 94
...
@@ -7,7 +7,7 @@ spv.ext.AnyHitShader.rahit
...
@@ -7,7 +7,7 @@ spv.ext.AnyHitShader.rahit
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80
84
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.ext.ClosestHitShader.rchit.out
View file @
d39b8afc
spv.ext.ClosestHitShader.rchit
spv.ext.ClosestHitShader.rchit
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 101
// Id's are bound by 101
...
@@ -7,7 +7,7 @@ spv.ext.ClosestHitShader.rchit
...
@@ -7,7 +7,7 @@ spv.ext.ClosestHitShader.rchit
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 76 80
85 98 100
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.ext.IntersectShader.rint.out
View file @
d39b8afc
spv.ext.IntersectShader.rint
spv.ext.IntersectShader.rint
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 81
// Id's are bound by 81
...
@@ -7,7 +7,7 @@ spv.ext.IntersectShader.rint
...
@@ -7,7 +7,7 @@ spv.ext.IntersectShader.rint
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint IntersectionKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59 65 69
EntryPoint IntersectionKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59 65 69
73
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.ext.MissShader.rmiss.out
View file @
d39b8afc
spv.ext.MissShader.rmiss
spv.ext.MissShader.rmiss
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 54
// Id's are bound by 54
...
@@ -7,7 +7,7 @@ spv.ext.MissShader.rmiss
...
@@ -7,7 +7,7 @@ spv.ext.MissShader.rmiss
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint MissKHR 4 "main" 11 14 21 24 29 32
EntryPoint MissKHR 4 "main" 11 14 21 24 29 32
36 51 53
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.ext.RayCallable.rcall.out
View file @
d39b8afc
spv.ext.RayCallable.rcall
spv.ext.RayCallable.rcall
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 30
// Id's are bound by 30
...
@@ -7,7 +7,7 @@ spv.ext.RayCallable.rcall
...
@@ -7,7 +7,7 @@ spv.ext.RayCallable.rcall
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint CallableKHR 4 "main" 11 14
EntryPoint CallableKHR 4 "main" 11 14
18 29
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.ext.RayConstants.rgen.out
View file @
d39b8afc
spv.ext.RayConstants.rgen
spv.ext.RayConstants.rgen
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 27
// Id's are bound by 27
...
@@ -7,7 +7,7 @@ spv.ext.RayConstants.rgen
...
@@ -7,7 +7,7 @@ spv.ext.RayConstants.rgen
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint RayGenerationKHR 4 "main"
EntryPoint RayGenerationKHR 4 "main"
8 26
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.ext.RayGenShader.rgen.out
View file @
d39b8afc
spv.ext.RayGenShader.rgen
spv.ext.RayGenShader.rgen
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 58
// Id's are bound by 58
...
@@ -8,7 +8,7 @@ spv.ext.RayGenShader.rgen
...
@@ -8,7 +8,7 @@ spv.ext.RayGenShader.rgen
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint RayGenerationKHR 4 "main" 11 21
EntryPoint RayGenerationKHR 4 "main" 11 21
29 40 51 54 57
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_flags_primitive_culling"
SourceExtension "GL_EXT_ray_flags_primitive_culling"
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
...
@@ -33,7 +33,7 @@ spv.ext.RayGenShader.rgen
...
@@ -33,7 +33,7 @@ spv.ext.RayGenShader.rgen
Decorate 29(accEXT0) Binding 0
Decorate 29(accEXT0) Binding 0
MemberDecorate 38(block) 0 Offset 0
MemberDecorate 38(block) 0 Offset 0
MemberDecorate 38(block) 1 Offset 16
MemberDecorate 38(block) 1 Offset 16
Decorate 38(block) B
ufferB
lock
Decorate 38(block) Block
Decorate 51(accEXT1) DescriptorSet 0
Decorate 51(accEXT1) DescriptorSet 0
Decorate 51(accEXT1) Binding 1
Decorate 51(accEXT1) Binding 1
Decorate 54(imageu) DescriptorSet 0
Decorate 54(imageu) DescriptorSet 0
...
...
Test/baseResults/spv.ext.RayGenShader11.rgen.out
View file @
d39b8afc
spv.ext.RayGenShader11.rgen
spv.ext.RayGenShader11.rgen
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 53
// Id's are bound by 53
...
@@ -7,7 +7,7 @@ spv.ext.RayGenShader11.rgen
...
@@ -7,7 +7,7 @@ spv.ext.RayGenShader11.rgen
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint RayGenerationKHR 4 "main" 11 21
EntryPoint RayGenerationKHR 4 "main" 11 21
29 39 52
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
Name 4 "main"
Name 4 "main"
...
@@ -29,7 +29,7 @@ spv.ext.RayGenShader11.rgen
...
@@ -29,7 +29,7 @@ spv.ext.RayGenShader11.rgen
Decorate 29(accEXT) Binding 0
Decorate 29(accEXT) Binding 0
MemberDecorate 37(block) 0 Offset 0
MemberDecorate 37(block) 0 Offset 0
MemberDecorate 37(block) 1 Offset 16
MemberDecorate 37(block) 1 Offset 16
Decorate 37(block) B
ufferB
lock
Decorate 37(block) Block
Decorate 52(payload) Location 0
Decorate 52(payload) Location 0
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
...
...
Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
View file @
d39b8afc
spv.ext.RayGenShaderArray.rgen
spv.ext.RayGenShaderArray.rgen
// Module Version 10
0
00
// Module Version 10
4
00
// Generated by (magic number): 80008
// Generated by (magic number): 80008
// Id's are bound by 89
// Id's are bound by 89
...
@@ -10,7 +10,7 @@ spv.ext.RayGenShaderArray.rgen
...
@@ -10,7 +10,7 @@ spv.ext.RayGenShaderArray.rgen
Extension "SPV_KHR_ray_tracing"
Extension "SPV_KHR_ray_tracing"
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint RayGenerationKHR 4 "main" 11 21
EntryPoint RayGenerationKHR 4 "main" 11 21
30 36 60 88
Source GLSL 460
Source GLSL 460
SourceExtension "GL_EXT_nonuniform_qualifier"
SourceExtension "GL_EXT_nonuniform_qualifier"
SourceExtension "GL_EXT_ray_tracing"
SourceExtension "GL_EXT_ray_tracing"
...
@@ -36,7 +36,7 @@ spv.ext.RayGenShaderArray.rgen
...
@@ -36,7 +36,7 @@ spv.ext.RayGenShaderArray.rgen
MemberDecorate 34(block) 0 Offset 0
MemberDecorate 34(block) 0 Offset 0
MemberDecorate 34(block) 1 Offset 16
MemberDecorate 34(block) 1 Offset 16
MemberDecorate 34(block) 2 Offset 28
MemberDecorate 34(block) 2 Offset 28
Decorate 34(block) B
ufferB
lock
Decorate 34(block) Block
Decorate 60(accEXT1) DescriptorSet 0
Decorate 60(accEXT1) DescriptorSet 0
Decorate 60(accEXT1) Binding 1
Decorate 60(accEXT1) Binding 1
Decorate 75 DecorationNonUniformEXT
Decorate 75 DecorationNonUniformEXT
...
...
glslang/MachineIndependent/Versions.cpp
View file @
d39b8afc
...
@@ -64,6 +64,7 @@
...
@@ -64,6 +64,7 @@
// checkDeprecated()
// checkDeprecated()
// requireNotRemoved()
// requireNotRemoved()
// requireExtensions()
// requireExtensions()
// extensionRequires()
//
//
// Typically, only the first two calls are needed. They go into a code path that
// Typically, only the first two calls are needed. They go into a code path that
// implements Feature F, and will log the proper error/warning messages. Parsing
// implements Feature F, and will log the proper error/warning messages. Parsing
...
@@ -78,9 +79,11 @@
...
@@ -78,9 +79,11 @@
// const char* const XXX_extension_X = "XXX_extension_X";
// const char* const XXX_extension_X = "XXX_extension_X";
//
//
// 2) Add extension initialization to TParseVersions::initializeExtensionBehavior(),
// 2) Add extension initialization to TParseVersions::initializeExtensionBehavior(),
// the first function below:
// the first function below and optionally a entry to extensionData for additional
// error checks:
//
//
// extensionBehavior[XXX_extension_X] = EBhDisable;
// extensionBehavior[XXX_extension_X] = EBhDisable;
// (Optional) exts[] = {XXX_extension_X, EShTargetSpv_1_4}
//
//
// 3) Add any preprocessor directives etc. in the next function, TParseVersions::getPreamble():
// 3) Add any preprocessor directives etc. in the next function, TParseVersions::getPreamble():
//
//
...
@@ -140,6 +143,8 @@
...
@@ -140,6 +143,8 @@
// set of extensions that both enable them and are necessary, given the version of the symbol
// set of extensions that both enable them and are necessary, given the version of the symbol
// table. (There is a different symbol table for each version.)
// table. (There is a different symbol table for each version.)
//
//
// 7) If the extension has additional requirements like minimum SPIR-V version required, add them
// to extensionRequires()
#include "parseVersions.h"
#include "parseVersions.h"
#include "localintermediate.h"
#include "localintermediate.h"
...
@@ -155,6 +160,20 @@ namespace glslang {
...
@@ -155,6 +160,20 @@ namespace glslang {
//
//
void
TParseVersions
::
initializeExtensionBehavior
()
void
TParseVersions
::
initializeExtensionBehavior
()
{
{
typedef
struct
{
const
char
*
const
extensionName
;
EShTargetLanguageVersion
minSpvVersion
;
}
extensionData
;
const
extensionData
exts
[]
=
{
{
E_GL_EXT_ray_tracing
,
EShTargetSpv_1_4
}
};
for
(
int
ii
=
0
;
ii
<
sizeof
(
exts
)
/
sizeof
(
exts
[
0
]);
ii
++
)
{
// Add only extensions which require > spv1.0 to save space in map
if
(
exts
[
ii
].
minSpvVersion
>
EShTargetSpv_1_0
)
{
extensionMinSpv
[
E_GL_EXT_ray_tracing
]
=
exts
[
ii
].
minSpvVersion
;
}
}
extensionBehavior
[
E_GL_OES_texture_3D
]
=
EBhDisable
;
extensionBehavior
[
E_GL_OES_texture_3D
]
=
EBhDisable
;
extensionBehavior
[
E_GL_OES_standard_derivatives
]
=
EBhDisable
;
extensionBehavior
[
E_GL_OES_standard_derivatives
]
=
EBhDisable
;
extensionBehavior
[
E_GL_EXT_frag_depth
]
=
EBhDisable
;
extensionBehavior
[
E_GL_EXT_frag_depth
]
=
EBhDisable
;
...
@@ -329,6 +348,7 @@ void TParseVersions::initializeExtensionBehavior()
...
@@ -329,6 +348,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior
[
E_GL_EXT_shader_subgroup_extended_types_int64
]
=
EBhDisable
;
extensionBehavior
[
E_GL_EXT_shader_subgroup_extended_types_int64
]
=
EBhDisable
;
extensionBehavior
[
E_GL_EXT_shader_subgroup_extended_types_float16
]
=
EBhDisable
;
extensionBehavior
[
E_GL_EXT_shader_subgroup_extended_types_float16
]
=
EBhDisable
;
}
}
#endif // GLSLANG_WEB
#endif // GLSLANG_WEB
// Get code that is not part of a shared symbol table, is specific to this shader,
// Get code that is not part of a shared symbol table, is specific to this shader,
...
@@ -828,6 +848,9 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co
...
@@ -828,6 +848,9 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co
// check if extension is used with correct shader stage
// check if extension is used with correct shader stage
checkExtensionStage
(
getCurrentLoc
(),
extension
);
checkExtensionStage
(
getCurrentLoc
(),
extension
);
// check if extension has additional requirements
extensionRequires
(
getCurrentLoc
(),
extension
,
behaviorString
);
// update the requested extension
// update the requested extension
updateExtensionBehavior
(
extension
,
behavior
);
updateExtensionBehavior
(
extension
,
behavior
);
...
@@ -944,6 +967,24 @@ void TParseVersions::checkExtensionStage(const TSourceLoc& loc, const char * con
...
@@ -944,6 +967,24 @@ void TParseVersions::checkExtensionStage(const TSourceLoc& loc, const char * con
}
}
}
}
// Check if extension has additional requirements
void
TParseVersions
::
extensionRequires
(
const
TSourceLoc
&
loc
,
const
char
*
const
extension
,
const
char
*
behaviorString
)
{
bool
isEnabled
=
false
;
if
(
!
strcmp
(
"require"
,
behaviorString
))
isEnabled
=
true
;
else
if
(
!
strcmp
(
"enable"
,
behaviorString
))
isEnabled
=
true
;
if
(
isEnabled
)
{
unsigned
int
minSpvVersion
=
0
;
auto
iter
=
extensionMinSpv
.
find
(
TString
(
extension
));
if
(
iter
!=
extensionMinSpv
.
end
())
minSpvVersion
=
iter
->
second
;
requireSpv
(
loc
,
extension
,
minSpvVersion
);
}
}
// Call for any operation needing full GLSL integer data-type support.
// Call for any operation needing full GLSL integer data-type support.
void
TParseVersions
::
fullIntegerCheck
(
const
TSourceLoc
&
loc
,
const
char
*
op
)
void
TParseVersions
::
fullIntegerCheck
(
const
TSourceLoc
&
loc
,
const
char
*
op
)
{
{
...
@@ -1201,5 +1242,12 @@ void TParseVersions::requireSpv(const TSourceLoc& loc, const char* op)
...
@@ -1201,5 +1242,12 @@ void TParseVersions::requireSpv(const TSourceLoc& loc, const char* op)
error
(
loc
,
"only allowed when generating SPIR-V"
,
op
,
""
);
error
(
loc
,
"only allowed when generating SPIR-V"
,
op
,
""
);
#endif
#endif
}
}
void
TParseVersions
::
requireSpv
(
const
TSourceLoc
&
loc
,
const
char
*
op
,
unsigned
int
version
)
{
#ifndef GLSLANG_WEB
if
(
spvVersion
.
spv
<
version
)
error
(
loc
,
"not supported for current targeted SPIR-V version"
,
op
,
""
);
#endif
}
}
// end namespace glslang
}
// end namespace glslang
glslang/MachineIndependent/Versions.h
View file @
d39b8afc
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
// POSSIBILITY OF SUCH DAMAGE.
//
//
#ifndef _VERSIONS_INCLUDED_
#ifndef _VERSIONS_INCLUDED_
#define _VERSIONS_INCLUDED_
#define _VERSIONS_INCLUDED_
...
...
glslang/MachineIndependent/parseVersions.h
View file @
d39b8afc
...
@@ -101,6 +101,7 @@ public:
...
@@ -101,6 +101,7 @@ public:
void
updateExtensionBehavior
(
int
line
,
const
char
*
const
extension
,
const
char
*
behavior
)
{
}
void
updateExtensionBehavior
(
int
line
,
const
char
*
const
extension
,
const
char
*
behavior
)
{
}
void
updateExtensionBehavior
(
const
char
*
const
extension
,
TExtensionBehavior
)
{
}
void
updateExtensionBehavior
(
const
char
*
const
extension
,
TExtensionBehavior
)
{
}
void
checkExtensionStage
(
const
TSourceLoc
&
,
const
char
*
const
extension
)
{
}
void
checkExtensionStage
(
const
TSourceLoc
&
,
const
char
*
const
extension
)
{
}
void
extensionRequires
(
const
TSourceLoc
&
,
const
char
*
const
extension
,
const
char
*
behavior
)
{
}
void
fullIntegerCheck
(
const
TSourceLoc
&
,
const
char
*
op
)
{
}
void
fullIntegerCheck
(
const
TSourceLoc
&
,
const
char
*
op
)
{
}
void
doubleCheck
(
const
TSourceLoc
&
,
const
char
*
op
)
{
}
void
doubleCheck
(
const
TSourceLoc
&
,
const
char
*
op
)
{
}
bool
float16Arithmetic
()
{
return
false
;
}
bool
float16Arithmetic
()
{
return
false
;
}
...
@@ -139,6 +140,7 @@ public:
...
@@ -139,6 +140,7 @@ public:
virtual
bool
checkExtensionsRequested
(
const
TSourceLoc
&
,
int
numExtensions
,
const
char
*
const
extensions
[],
virtual
bool
checkExtensionsRequested
(
const
TSourceLoc
&
,
int
numExtensions
,
const
char
*
const
extensions
[],
const
char
*
featureDesc
);
const
char
*
featureDesc
);
virtual
void
checkExtensionStage
(
const
TSourceLoc
&
,
const
char
*
const
extension
);
virtual
void
checkExtensionStage
(
const
TSourceLoc
&
,
const
char
*
const
extension
);
virtual
void
extensionRequires
(
const
TSourceLoc
&
,
const
char
*
const
extension
,
const
char
*
behavior
);
virtual
void
fullIntegerCheck
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
fullIntegerCheck
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
unimplemented
(
const
TSourceLoc
&
,
const
char
*
featureDesc
);
virtual
void
unimplemented
(
const
TSourceLoc
&
,
const
char
*
featureDesc
);
...
@@ -170,6 +172,7 @@ public:
...
@@ -170,6 +172,7 @@ public:
virtual
void
vulkanRemoved
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
vulkanRemoved
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
requireVulkan
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
requireVulkan
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
requireSpv
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
requireSpv
(
const
TSourceLoc
&
,
const
char
*
op
);
virtual
void
requireSpv
(
const
TSourceLoc
&
,
const
char
*
op
,
unsigned
int
version
);
#if defined(GLSLANG_WEB) && !defined(GLSLANG_WEB_DEVEL)
#if defined(GLSLANG_WEB) && !defined(GLSLANG_WEB_DEVEL)
...
@@ -222,6 +225,7 @@ public:
...
@@ -222,6 +225,7 @@ public:
protected
:
protected
:
TMap
<
TString
,
TExtensionBehavior
>
extensionBehavior
;
// for each extension string, what its current behavior is set to
TMap
<
TString
,
TExtensionBehavior
>
extensionBehavior
;
// for each extension string, what its current behavior is set to
TMap
<
TString
,
unsigned
int
>
extensionMinSpv
;
// for each extension string, store minimum spirv required
EShMessages
messages
;
// errors/warnings/rule-sets
EShMessages
messages
;
// errors/warnings/rule-sets
int
numErrors
;
// number of compile-time errors encountered
int
numErrors
;
// number of compile-time errors encountered
TInputScanner
*
currentScanner
;
TInputScanner
*
currentScanner
;
...
...
glslang/Public/ShaderLang.h
View file @
d39b8afc
...
@@ -413,6 +413,7 @@ enum TResourceType {
...
@@ -413,6 +413,7 @@ enum TResourceType {
EResCount
EResCount
};
};
// Make one TShader per shader that you will link into a program. Then
// Make one TShader per shader that you will link into a program. Then
// - provide the shader through setStrings() or setStringsWithLengths()
// - provide the shader through setStrings() or setStringsWithLengths()
// - optionally call setEnv*(), see below for more detail
// - optionally call setEnv*(), see below for more detail
...
...
gtests/Spv.FromFile.cpp
View file @
d39b8afc
...
@@ -329,21 +329,6 @@ INSTANTIATE_TEST_CASE_P(
...
@@ -329,21 +329,6 @@ INSTANTIATE_TEST_CASE_P(
"spv.earlyReturnDiscard.frag"
,
"spv.earlyReturnDiscard.frag"
,
"spv.extPostDepthCoverage.frag"
,
"spv.extPostDepthCoverage.frag"
,
"spv.extPostDepthCoverage_Error.frag"
,
"spv.extPostDepthCoverage_Error.frag"
,
"spv.ext.AnyHitShader.rahit"
,
"spv.ext.AnyHitShader_Errors.rahit"
,
"spv.ext.ClosestHitShader.rchit"
,
"spv.ext.ClosestHitShader_Errors.rchit"
,
"spv.ext.IntersectShader.rint"
,
"spv.ext.IntersectShader_Errors.rint"
,
"spv.ext.MissShader.rmiss"
,
"spv.ext.MissShader_Errors.rmiss"
,
"spv.ext.RayPrimCull_Errors.rgen"
,
"spv.ext.RayCallable.rcall"
,
"spv.ext.RayCallable_Errors.rcall"
,
"spv.ext.RayConstants.rgen"
,
"spv.ext.RayGenShader.rgen"
,
"spv.ext.RayGenShader11.rgen"
,
"spv.ext.RayGenShaderArray.rgen"
,
"spv.float16convertonlyarith.comp"
,
"spv.float16convertonlyarith.comp"
,
"spv.float16convertonlystorage.comp"
,
"spv.float16convertonlystorage.comp"
,
"spv.flowControl.frag"
,
"spv.flowControl.frag"
,
...
@@ -554,6 +539,21 @@ INSTANTIATE_TEST_CASE_P(
...
@@ -554,6 +539,21 @@ INSTANTIATE_TEST_CASE_P(
"spv.1.4.sparseTexture.frag"
,
"spv.1.4.sparseTexture.frag"
,
"spv.1.4.texture.frag"
,
"spv.1.4.texture.frag"
,
"spv.1.4.constructComposite.comp"
,
"spv.1.4.constructComposite.comp"
,
"spv.ext.AnyHitShader.rahit"
,
"spv.ext.AnyHitShader_Errors.rahit"
,
"spv.ext.ClosestHitShader.rchit"
,
"spv.ext.ClosestHitShader_Errors.rchit"
,
"spv.ext.IntersectShader.rint"
,
"spv.ext.IntersectShader_Errors.rint"
,
"spv.ext.MissShader.rmiss"
,
"spv.ext.MissShader_Errors.rmiss"
,
"spv.ext.RayPrimCull_Errors.rgen"
,
"spv.ext.RayCallable.rcall"
,
"spv.ext.RayCallable_Errors.rcall"
,
"spv.ext.RayConstants.rgen"
,
"spv.ext.RayGenShader.rgen"
,
"spv.ext.RayGenShader11.rgen"
,
"spv.ext.RayGenShaderArray.rgen"
,
})),
})),
FileNameAsCustomTestSuffix
FileNameAsCustomTestSuffix
);
);
...
...
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