From ab01643f73deb37e828d46a007e8643e449b28f9 Mon Sep 17 00:00:00 2001 From: azhirnov Date: Thu, 3 Sep 2020 01:59:01 +0300 Subject: fixed validation errors for SPIRV that compiled with DXC --- .../GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) (limited to 'Graphics/GraphicsEngineVulkan') diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp index 65150c48..6ca51b1e 100644 --- a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp @@ -39,7 +39,7 @@ #if !DILIGENT_NO_HLSL -# include "spirv-tools/optimizer.hpp" +# include "SPIRVUtils.hpp" #endif namespace Diligent @@ -129,25 +129,12 @@ RenderPassDesc PipelineStateVkImpl::GetImplicitRenderPassDesc( return RPDesc; } +#if DILIGENT_NO_HLSL static std::vector StripReflection(const std::vector& OriginalSPIRV) { -#if DILIGENT_NO_HLSL return OriginalSPIRV; -#else - std::vector StrippedSPIRV; - spvtools::Optimizer SpirvOptimizer(SPV_ENV_VULKAN_1_0); - // Decorations defined in SPV_GOOGLE_hlsl_functionality1 are the only instructions - // removed by strip-reflect-info pass. SPIRV offsets become INVALID after this operation. - SpirvOptimizer.RegisterPass(spvtools::CreateStripReflectInfoPass()); - auto res = SpirvOptimizer.Run(OriginalSPIRV.data(), OriginalSPIRV.size(), &StrippedSPIRV); - if (!res) - { - // Optimized SPIRV may be invalid - StrippedSPIRV.clear(); - } - return StrippedSPIRV; -#endif } +#endif PipelineStateVkImpl::PipelineStateVkImpl(IReferenceCounters* pRefCounters, RenderDeviceVkImpl* pDeviceVk, -- cgit v1.2.3