diff options
| author | azhirnov <zh1dron@gmail.com> | 2020-10-04 20:23:28 +0000 |
|---|---|---|
| committer | azhirnov <zh1dron@gmail.com> | 2020-10-04 20:32:25 +0000 |
| commit | 7838459ef71fe5f0979f30df8348a6981363d6c8 (patch) | |
| tree | 0fea27225f76476cd5e19f0b11e4c574040f7bfb /Graphics/ShaderTools | |
| parent | Added dummy implementation for D3D11, D3D12, OpenGL (diff) | |
| download | DiligentCore-7838459ef71fe5f0979f30df8348a6981363d6c8.tar.gz DiligentCore-7838459ef71fe5f0979f30df8348a6981363d6c8.zip | |
Added Vulkan implementation
Diffstat (limited to 'Graphics/ShaderTools')
| -rw-r--r-- | Graphics/ShaderTools/src/GLSLangUtils.cpp | 24 | ||||
| -rw-r--r-- | Graphics/ShaderTools/src/SPIRVShaderResources.cpp | 24 |
2 files changed, 30 insertions, 18 deletions
diff --git a/Graphics/ShaderTools/src/GLSLangUtils.cpp b/Graphics/ShaderTools/src/GLSLangUtils.cpp index ef57e27b..4382f67f 100644 --- a/Graphics/ShaderTools/src/GLSLangUtils.cpp +++ b/Graphics/ShaderTools/src/GLSLangUtils.cpp @@ -70,18 +70,24 @@ void FinalizeGlslang() static EShLanguage ShaderTypeToShLanguage(SHADER_TYPE ShaderType) { - static_assert(SHADER_TYPE_LAST == 0x080, "Please handle the new shader type in the switch below"); + static_assert(SHADER_TYPE_LAST == 0x2000, "Please handle the new shader type in the switch below"); 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_AMPLIFICATION: return EShLangTaskNV; - case SHADER_TYPE_MESH: return EShLangMeshNV; + 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; + case SHADER_TYPE_RAY_GEN: return EShLangRayGen; + case SHADER_TYPE_RAY_MISS: return EShLangMiss; + case SHADER_TYPE_RAY_CLOSEST_HIT: return EShLangClosestHit; + case SHADER_TYPE_RAY_ANY_HIT: return EShLangAnyHit; + case SHADER_TYPE_RAY_INTERSECTION: return EShLangIntersect; + case SHADER_TYPE_CALLABLE: return EShLangCallable; // clang-format on default: UNEXPECTED("Unexpected shader type"); diff --git a/Graphics/ShaderTools/src/SPIRVShaderResources.cpp b/Graphics/ShaderTools/src/SPIRVShaderResources.cpp index 2ba5d90a..b20394a4 100644 --- a/Graphics/ShaderTools/src/SPIRVShaderResources.cpp +++ b/Graphics/ShaderTools/src/SPIRVShaderResources.cpp @@ -150,18 +150,24 @@ ShaderResourceDesc SPIRVShaderResourceAttribs::GetResourceDesc() const static spv::ExecutionModel ShaderTypeToExecutionModel(SHADER_TYPE ShaderType) { - static_assert(SHADER_TYPE_LAST == 0x080, "Please handle the new shader type in the switch below"); + static_assert(SHADER_TYPE_LAST == 0x2000, "Please handle the new shader type in the switch below"); 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; - case SHADER_TYPE_AMPLIFICATION: return spv::ExecutionModelTaskNV; - case SHADER_TYPE_MESH: return spv::ExecutionModelMeshNV; + 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; + case SHADER_TYPE_RAY_GEN: return spv::ExecutionModelRayGenerationKHR; + case SHADER_TYPE_RAY_MISS: return spv::ExecutionModelMissKHR; + case SHADER_TYPE_RAY_CLOSEST_HIT: return spv::ExecutionModelClosestHitKHR; + case SHADER_TYPE_RAY_ANY_HIT: return spv::ExecutionModelAnyHitKHR; + case SHADER_TYPE_RAY_INTERSECTION: return spv::ExecutionModelIntersectionKHR; + case SHADER_TYPE_CALLABLE: return spv::ExecutionModelCallableKHR; // clang-format on default: UNEXPECTED("Unexpected shader type"); |
