4949#include " GraphicsAccessories.hpp"
5050#include " GraphicsUtilities.h"
5151#include " ShaderSourceFactoryUtils.hpp"
52+ #include " DXCompiler.hpp"
5253
5354namespace Diligent
5455{
@@ -153,6 +154,18 @@ static void ComputeDeviceAttribsHash(XXH128State& Hasher, IRenderDevice* pDevice
153154 }
154155}
155156
157+ static const char * GetDXCompilerLibName (IRenderDevice* pDevice)
158+ {
159+ if (IDXCompiler* pDXCompiler = GetDeviceDXCompiler (pDevice))
160+ {
161+ return pDXCompiler->GetLibraryName ().c_str ();
162+ }
163+ else
164+ {
165+ return nullptr ;
166+ }
167+ }
168+
156169RenderStateCacheImpl::RenderStateCacheImpl (IReferenceCounters* pRefCounters,
157170 const RenderStateCacheCreateInfo& CreateInfo) :
158171 TBase{pRefCounters},
@@ -190,7 +203,8 @@ RenderStateCacheImpl::RenderStateCacheImpl(IReferenceCounters* pRe
190203 break ;
191204
192205 case RENDER_DEVICE_TYPE_D3D12:
193- SerializationDeviceCI.D3D12 .ShaderVersion = SerializationDeviceCI.DeviceInfo .MaxShaderVersion .HLSL ;
206+ SerializationDeviceCI.D3D12 .ShaderVersion = SerializationDeviceCI.DeviceInfo .MaxShaderVersion .HLSL ;
207+ SerializationDeviceCI.D3D12 .DxCompilerPath = GetDXCompilerLibName (m_pDevice);
194208 break ;
195209
196210 case RENDER_DEVICE_TYPE_GL:
@@ -200,7 +214,8 @@ RenderStateCacheImpl::RenderStateCacheImpl(IReferenceCounters* pRe
200214 break ;
201215
202216 case RENDER_DEVICE_TYPE_VULKAN:
203- SerializationDeviceCI.Vulkan .ApiVersion = SerializationDeviceCI.DeviceInfo .APIVersion ;
217+ SerializationDeviceCI.Vulkan .ApiVersion = SerializationDeviceCI.DeviceInfo .APIVersion ;
218+ SerializationDeviceCI.Vulkan .DxCompilerPath = GetDXCompilerLibName (m_pDevice);
204219 break ;
205220
206221 case RENDER_DEVICE_TYPE_METAL:
0 commit comments