From 9bd0040a90de94c7b0d4805ba649a15166e6ef93 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 11 Aug 2022 02:44:05 +0200 Subject: [PATCH] [d3d9] Request high-priority shader compiles as necessary --- src/d3d9/d3d9_device.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index c785a0b60..07d683603 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -6215,8 +6215,13 @@ namespace dxvk { template void D3D9DeviceEx::BindShader( const D3D9CommonShader* pShaderModule) { + auto shader = pShaderModule->GetShader(); + + if (unlikely(shader->needsLibraryCompile())) + m_dxvkDevice->requestCompileShader(shader); + EmitCs([ - cShader = pShaderModule->GetShader() + cShader = std::move(shader) ] (DxvkContext* ctx) mutable { constexpr VkShaderStageFlagBits stage = GetShaderStage(ShaderStage); ctx->bindShader(std::move(cShader));