diff options
| author | azhirnov <zh1dron@gmail.com> | 2020-08-11 19:48:23 +0000 |
|---|---|---|
| committer | azhirnov <zh1dron@gmail.com> | 2020-08-11 19:49:36 +0000 |
| commit | dc9a4e784c8bb97fbb16a01624c7b8f0544977a4 (patch) | |
| tree | b4a07f6e2029ca9d20999acfd940ea8e2556cb9d /Graphics/GLSLTools | |
| parent | Bash function for format validation in submodules (#155) (diff) | |
| download | DiligentCore-dc9a4e784c8bb97fbb16a01624c7b8f0544977a4.tar.gz DiligentCore-dc9a4e784c8bb97fbb16a01624c7b8f0544977a4.zip | |
Added mesh shader
added mesh shader support to DX12 and Vulkan, added DXIL compiler for Shader Model 6.x
Diffstat (limited to 'Graphics/GLSLTools')
| -rw-r--r-- | Graphics/GLSLTools/src/GLSLSourceBuilder.cpp | 7 | ||||
| -rw-r--r-- | Graphics/GLSLTools/src/SPIRVShaderResources.cpp | 16 | ||||
| -rw-r--r-- | Graphics/GLSLTools/src/SPIRVUtils.cpp | 14 |
3 files changed, 24 insertions, 13 deletions
diff --git a/Graphics/GLSLTools/src/GLSLSourceBuilder.cpp b/Graphics/GLSLTools/src/GLSLSourceBuilder.cpp index 8b369954..da1b6fec 100644 --- a/Graphics/GLSLTools/src/GLSLSourceBuilder.cpp +++ b/Graphics/GLSLTools/src/GLSLSourceBuilder.cpp @@ -64,6 +64,13 @@ const char* GetShaderTypeDefines(SHADER_TYPE Type) case SHADER_TYPE_COMPUTE: return "#define COMPUTE_SHADER 1\n"; + + case SHADER_TYPE_AMPLIFICATION: + return "#define TASK_SHADER 1\n" + "#define AMPLIFICATION_SHADER 1\n"; + + case SHADER_TYPE_MESH: + return "#define MESH_SHADER 1\n"; default: UNEXPECTED("Unexpected shader type"); diff --git a/Graphics/GLSLTools/src/SPIRVShaderResources.cpp b/Graphics/GLSLTools/src/SPIRVShaderResources.cpp index 46705ace..bf92e84b 100644 --- a/Graphics/GLSLTools/src/SPIRVShaderResources.cpp +++ b/Graphics/GLSLTools/src/SPIRVShaderResources.cpp @@ -149,13 +149,15 @@ static spv::ExecutionModel ShaderTypeToExecutionModel(SHADER_TYPE ShaderType) switch (ShaderType) { // clang-format off - case SHADER_TYPE_VERTEX: return spv::ExecutionModelVertex; - case SHADER_TYPE_HULL: return spv::ExecutionModelTessellationControl; - case SHADER_TYPE_DOMAIN: return spv::ExecutionModelTessellationEvaluation; - case SHADER_TYPE_GEOMETRY: return spv::ExecutionModelGeometry; - case SHADER_TYPE_PIXEL: return spv::ExecutionModelFragment; - case SHADER_TYPE_COMPUTE: return spv::ExecutionModelGLCompute; - // clang-format on + case SHADER_TYPE_VERTEX: return spv::ExecutionModelVertex; + case SHADER_TYPE_HULL: return spv::ExecutionModelTessellationControl; + case SHADER_TYPE_DOMAIN: return spv::ExecutionModelTessellationEvaluation; + case SHADER_TYPE_GEOMETRY: return spv::ExecutionModelGeometry; + case SHADER_TYPE_PIXEL: return spv::ExecutionModelFragment; + case SHADER_TYPE_COMPUTE: return spv::ExecutionModelGLCompute; + case SHADER_TYPE_AMPLIFICATION: return spv::ExecutionModelTaskNV; + case SHADER_TYPE_MESH: return spv::ExecutionModelMeshNV; + // clang-format on default: UNEXPECTED("Unexpected shader type"); diff --git a/Graphics/GLSLTools/src/SPIRVUtils.cpp b/Graphics/GLSLTools/src/SPIRVUtils.cpp index e02bc34e..5ae9d3a1 100644 --- a/Graphics/GLSLTools/src/SPIRVUtils.cpp +++ b/Graphics/GLSLTools/src/SPIRVUtils.cpp @@ -72,12 +72,14 @@ EShLanguage ShaderTypeToShLanguage(SHADER_TYPE ShaderType) switch (ShaderType) { // clang-format off - case SHADER_TYPE_VERTEX: return EShLangVertex; - case SHADER_TYPE_HULL: return EShLangTessControl; - case SHADER_TYPE_DOMAIN: return EShLangTessEvaluation; - case SHADER_TYPE_GEOMETRY: return EShLangGeometry; - case SHADER_TYPE_PIXEL: return EShLangFragment; - case SHADER_TYPE_COMPUTE: return EShLangCompute; + case SHADER_TYPE_VERTEX: return EShLangVertex; + case SHADER_TYPE_HULL: return EShLangTessControl; + case SHADER_TYPE_DOMAIN: return EShLangTessEvaluation; + case SHADER_TYPE_GEOMETRY: return EShLangGeometry; + case SHADER_TYPE_PIXEL: return EShLangFragment; + case SHADER_TYPE_COMPUTE: return EShLangCompute; + case SHADER_TYPE_AMPLIFICATION: return EShLangTaskNV; + case SHADER_TYPE_MESH: return EShLangMeshNV; // clang-format on default: UNEXPECTED("Unexpected shader type"); |
