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
273d3a50
Commit
273d3a50
authored
Jan 15, 2020
by
John Kessenich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SPV/Vulkan: Add support for Vulkan 1.2, which defaults to SPIR-V 1.5.
parent
d203754b
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
25 additions
and
10 deletions
+25
-10
SpvTools.cpp
SPIRV/SpvTools.cpp
+2
-0
StandAlone.cpp
StandAlone/StandAlone.cpp
+18
-10
runtests
Test/runtests
+1
-0
localintermediate.h
glslang/MachineIndependent/localintermediate.h
+3
-0
ShaderLang.h
glslang/Public/ShaderLang.h
+1
-0
No files found.
SPIRV/SpvTools.cpp
View file @
273d3a50
...
...
@@ -67,6 +67,8 @@ spv_target_env MapToSpirvToolsEnv(const SpvVersion& spvVersion, spv::SpvBuildLog
logger
->
missingFunctionality
(
"Target version for SPIRV-Tools validator"
);
return
spv_target_env
::
SPV_ENV_VULKAN_1_1
;
}
case
glslang
:
:
EShTargetVulkan_1_2
:
return
spv_target_env
::
SPV_ENV_UNIVERSAL_1_5
;
//?? should change to SPV_ENV_VULKAN_1_2, when available
default
:
break
;
}
...
...
StandAlone/StandAlone.cpp
View file @
273d3a50
...
...
@@ -608,6 +608,9 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
}
else
if
(
strcmp
(
argv
[
1
],
"vulkan1.1"
)
==
0
)
{
setVulkanSpv
();
ClientVersion
=
glslang
::
EShTargetVulkan_1_1
;
}
else
if
(
strcmp
(
argv
[
1
],
"vulkan1.2"
)
==
0
)
{
setVulkanSpv
();
ClientVersion
=
glslang
::
EShTargetVulkan_1_2
;
}
else
if
(
strcmp
(
argv
[
1
],
"opengl"
)
==
0
)
{
setOpenGlSpv
();
ClientVersion
=
glslang
::
EShTargetOpenGL_450
;
...
...
@@ -630,7 +633,7 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
TargetLanguage
=
glslang
::
EShTargetSpv
;
TargetVersion
=
glslang
::
EShTargetSpv_1_5
;
}
else
Error
(
"--target-env expected one of: vulkan1.0, vulkan1.1, opengl,
\n
"
Error
(
"--target-env expected one of: vulkan1.0, vulkan1.1,
vulkan1.2,
opengl,
\n
"
"spirv1.0, spirv1.1, spirv1.2, spirv1.3, spirv1.4, or spirv1.5"
);
}
bumpArg
();
...
...
@@ -825,6 +828,10 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
TargetLanguage
=
glslang
::
EShTargetSpv
;
TargetVersion
=
glslang
::
EShTargetSpv_1_3
;
break
;
case
glslang
:
:
EShTargetVulkan_1_2
:
TargetLanguage
=
glslang
::
EShTargetSpv
;
TargetVersion
=
glslang
::
EShTargetSpv_1_5
;
break
;
case
glslang
:
:
EShTargetOpenGL_450
:
TargetLanguage
=
glslang
::
EShTargetSpv
;
TargetVersion
=
glslang
::
EShTargetSpv_1_0
;
...
...
@@ -1640,16 +1647,17 @@ void usage()
" --sep synonym for --source-entrypoint
\n
"
" --stdin read from stdin instead of from a file;
\n
"
" requires providing the shader stage using -S
\n
"
" --target-env {vulkan1.0 | vulkan1.1 | opengl |
\n
"
" --target-env {vulkan1.0 | vulkan1.1 |
vulkan1.2 |
opengl |
\n
"
" spirv1.0 | spirv1.1 | spirv1.2 | spirv1.3 | spirv1.4 | spirv1.5}
\n
"
" set execution environment that emitted code
\n
"
" will execute in (versus source language
\n
"
" semantics selected by --client) defaults:
\n
"
" * 'vulkan1.0' under '--client vulkan<ver>'
\n
"
" * 'opengl' under '--client opengl<ver>'
\n
"
" * 'spirv1.0' under --target-env vulkan1.0
\n
"
" * 'spirv1.3' under --target-env vulkan1.1
\n
"
" multiple --targen-env can be specified.
\n
"
" Set the execution environment that the
\n
"
" generated code will be executed in.
\n
"
" Defaults to:
\n
"
" * vulkan1.0 under --client vulkan<ver>
\n
"
" * opengl under --client opengl<ver>
\n
"
" * spirv1.0 under --target-env vulkan1.0
\n
"
" * spirv1.3 under --target-env vulkan1.1
\n
"
" * spirv1.5 under --target-env vulkan1.2
\n
"
" Multiple --target-env can be specified.
\n
"
" --variable-name <name>
\n
"
" --vn <name> creates a C header file that contains a
\n
"
" uint32_t array named <name>
\n
"
...
...
Test/runtests
View file @
273d3a50
...
...
@@ -189,6 +189,7 @@ $EXE --client vulkan100 spv.targetVulkan.vert || HASERROR=1
$EXE
--client
opengl100 spv.targetOpenGL.vert
||
HASERROR
=
1
$EXE
--target-env
vulkan1.0 spv.targetVulkan.vert
||
HASERROR
=
1
$EXE
--target-env
vulkan1.1 spv.targetVulkan.vert
||
HASERROR
=
1
$EXE
--target-env
vulkan1.2 spv.targetVulkan.vert
||
HASERROR
=
1
$EXE
--target-env
opengl spv.targetOpenGL.vert
||
HASERROR
=
1
$EXE
-V100
spv.targetVulkan.vert
||
HASERROR
=
1
$EXE
-G100
spv.targetOpenGL.vert
||
HASERROR
=
1
...
...
glslang/MachineIndependent/localintermediate.h
View file @
273d3a50
...
...
@@ -332,6 +332,9 @@ public:
case
EShTargetVulkan_1_1
:
processes
.
addProcess
(
"target-env vulkan1.1"
);
break
;
case
EShTargetVulkan_1_2
:
processes
.
addProcess
(
"target-env vulkan1.2"
);
break
;
default
:
processes
.
addProcess
(
"target-env vulkanUnknown"
);
break
;
...
...
glslang/Public/ShaderLang.h
View file @
273d3a50
...
...
@@ -145,6 +145,7 @@ typedef enum {
typedef
enum
{
EShTargetVulkan_1_0
=
(
1
<<
22
),
// Vulkan 1.0
EShTargetVulkan_1_1
=
(
1
<<
22
)
|
(
1
<<
12
),
// Vulkan 1.1
EShTargetVulkan_1_2
=
(
1
<<
22
)
|
(
2
<<
12
),
// Vulkan 1.2
EShTargetOpenGL_450
=
450
,
// OpenGL
}
EShTargetClientVersion
;
...
...
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