Skip to content

Commit 5ca848d

Browse files
Render state cache: use DXC library name from the render device
1 parent 9cf85ef commit 5ca848d

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

Graphics/GraphicsTools/src/RenderStateCacheImpl.cpp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
#include "GraphicsAccessories.hpp"
5050
#include "GraphicsUtilities.h"
5151
#include "ShaderSourceFactoryUtils.hpp"
52+
#include "DXCompiler.hpp"
5253

5354
namespace 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+
156169
RenderStateCacheImpl::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

Comments
 (0)