summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-07-17 21:47:09 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-07-17 21:47:09 +0000
commit3bb266bfc21f635b46fec4effdecbd305c87e7b1 (patch)
tree286426221e4e4c3597a7665299df3e41ae985af5 /Graphics/GraphicsEngineVulkan
parentVK backend: fixed mipmap generation when glslang is disabled (diff)
downloadDiligentCore-3bb266bfc21f635b46fec4effdecbd305c87e7b1.tar.gz
DiligentCore-3bb266bfc21f635b46fec4effdecbd305c87e7b1.zip
Vk backend: disabled warning about missing SPV_GOOGLE_hlsl_functionality1 extension when SPIRV is not compiled from HLSL plus few improvements to handling SPIRV created from HLSL
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/src/ShaderVkImpl.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/ShaderVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/ShaderVkImpl.cpp
index 523a5108..8b3cf728 100644
--- a/Graphics/GraphicsEngineVulkan/src/ShaderVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/ShaderVkImpl.cpp
@@ -102,13 +102,22 @@ ShaderVkImpl::ShaderVkImpl(IReferenceCounters* pRefCounters,
// pipeline state is created
// Load shader resources
- auto& Allocator = GetRawAllocator();
- auto* pRawMem = ALLOCATE(Allocator, "Allocator for ShaderResources", SPIRVShaderResources, 1);
- bool IsHLSLVertexShader = CreationAttribs.SourceLanguage == SHADER_SOURCE_LANGUAGE_HLSL && m_Desc.ShaderType == SHADER_TYPE_VERTEX;
- auto* pResources = new (pRawMem) SPIRVShaderResources(Allocator, pRenderDeviceVk, m_SPIRV, m_Desc, CreationAttribs.UseCombinedTextureSamplers ? CreationAttribs.CombinedSamplerSuffix : nullptr, IsHLSLVertexShader, m_EntryPoint);
+ auto& Allocator = GetRawAllocator();
+ auto* pRawMem = ALLOCATE(Allocator, "Allocator for ShaderResources", SPIRVShaderResources, 1);
+ auto LoadShaderInputs = m_Desc.ShaderType == SHADER_TYPE_VERTEX;
+ auto* pResources = new (pRawMem) SPIRVShaderResources //
+ {
+ Allocator,
+ pRenderDeviceVk,
+ m_SPIRV,
+ m_Desc,
+ CreationAttribs.UseCombinedTextureSamplers ? CreationAttribs.CombinedSamplerSuffix : nullptr,
+ LoadShaderInputs,
+ m_EntryPoint //
+ };
m_pShaderResources.reset(pResources, STDDeleterRawMem<SPIRVShaderResources>(Allocator));
- if (IsHLSLVertexShader)
+ if (LoadShaderInputs && m_pShaderResources->IsHLSLSource())
{
MapHLSLVertexShaderInputs();
}