1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-13 19:29:14 +01:00

[d3d11] Disallow mismatching shader bytecode and type

Fixes a wine test which lead to a "refcounting bug" down the line.
This commit is contained in:
Joshua Ashton 2021-01-08 00:55:38 +00:00 committed by Philip Rebohle
parent 2405e474e5
commit 838a6ef0f1

View File

@ -34,7 +34,11 @@ namespace dxvk {
// Decide whether we need to create a pass-through
// geometry shader for vertex shader stream output
bool passthroughShader = pDxbcModuleInfo->xfb != nullptr
&& module.programInfo().type() != DxbcProgramType::GeometryShader;
&& (module.programInfo().type() == DxbcProgramType::VertexShader
|| module.programInfo().type() == DxbcProgramType::DomainShader);
if (module.programInfo().shaderStage() != pShaderKey->type() && !passthroughShader)
throw DxvkError("Mismatching shader type.");
m_shader = passthroughShader
? module.compilePassthroughShader(*pDxbcModuleInfo, name)