diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index 61aaca29e..e093f0f2d 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -2049,6 +2049,16 @@ namespace dxvk { if (FAILED(hr)) return hr; + auto shader = commonShader.GetShader(); + + if (shader->hasCapability(spv::CapabilityStencilExportEXT) + && !m_dxvkDevice->extensions().extShaderStencilExport) + return E_INVALIDARG; + + if (shader->hasCapability(spv::CapabilityShaderViewportIndexLayerEXT) + && !m_dxvkDevice->extensions().extShaderViewportIndexLayer) + return E_INVALIDARG; + *pShaderModule = std::move(commonShader); return S_OK; }