diff options
author | Philip Rebohle <philip.rebohle@tu-dortmund.de> | 2022-08-11 03:44:05 +0300 |
---|---|---|
committer | Philip Rebohle <philip.rebohle@tu-dortmund.de> | 2022-08-11 04:53:39 +0300 |
commit | 20fd23c8e9d98485e6db04cb5f35fa2c1d516ffa (patch) | |
tree | fe3af089bd064a80b462a3b48efe80a598f5d3dd | |
parent | e76234483b9aba3e649de5718b0bff85fafd97fa (diff) |
[d3d9] Request high-priority shader compiles as necessaryshader-priority
-rw-r--r-- | src/d3d9/d3d9_device.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index fe8d16f0..22da70b6 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -6214,8 +6214,13 @@ namespace dxvk { template <DxsoProgramType ShaderStage> 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<stage>(std::move(cShader)); |