diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch')
-rw-r--r-- | nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch b/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch new file mode 100644 index 000000000000..99833a020cda --- /dev/null +++ b/nixpkgs/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch @@ -0,0 +1,48 @@ +diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp +index 09f3559a..215787f9 100644 +--- a/src/d3d11/d3d11_device.cpp ++++ b/src/d3d11/d3d11_device.cpp +@@ -801,8 +801,12 @@ namespace dxvk { + InitReturnPtr(ppGeometryShader); + D3D11CommonShader module; + +- if (!m_dxvkDevice->features().extTransformFeedback.transformFeedback) +- return DXGI_ERROR_INVALID_CALL; ++ if (!m_dxvkDevice->features().extTransformFeedback.transformFeedback) { ++ Logger::err( ++ "D3D11: CreateGeometryShaderWithStreamOutput:" ++ "\n Transform feedback not supported by device"); ++ return S_OK; ++ } + + // Zero-init some counterss so that we can increment + // them while walking over the stream output entries +@@ -1920,7 +1924,7 @@ namespace dxvk { + DxvkDeviceFeatures supported = adapter->features(); + DxvkDeviceFeatures enabled = {}; + +- enabled.core.features.geometryShader = VK_TRUE; ++ enabled.core.features.geometryShader = supported.core.features.geometryShader; + enabled.core.features.robustBufferAccess = VK_TRUE; + enabled.core.features.shaderStorageImageWriteWithoutFormat = VK_TRUE; + enabled.core.features.depthBounds = supported.core.features.depthBounds; +@@ -1951,7 +1955,7 @@ namespace dxvk { + enabled.core.features.sampleRateShading = VK_TRUE; + enabled.core.features.samplerAnisotropy = supported.core.features.samplerAnisotropy; + enabled.core.features.shaderClipDistance = VK_TRUE; +- enabled.core.features.shaderCullDistance = VK_TRUE; ++ enabled.core.features.shaderCullDistance = supported.core.features.shaderCullDistance; + enabled.core.features.textureCompressionBC = VK_TRUE; + enabled.extDepthClipEnable.depthClipEnable = supported.extDepthClipEnable.depthClipEnable; + enabled.extHostQueryReset.hostQueryReset = VK_TRUE; +@@ -1971,8 +1975,8 @@ namespace dxvk { + enabled.core.features.logicOp = supported.core.features.logicOp; + enabled.core.features.shaderImageGatherExtended = VK_TRUE; + enabled.core.features.variableMultisampleRate = supported.core.features.variableMultisampleRate; +- enabled.extTransformFeedback.transformFeedback = VK_TRUE; +- enabled.extTransformFeedback.geometryStreams = VK_TRUE; ++ enabled.extTransformFeedback.transformFeedback = supported.extTransformFeedback.transformFeedback; ++ enabled.extTransformFeedback.geometryStreams = supported.extTransformFeedback.geometryStreams; + } + + if (featureLevel >= D3D_FEATURE_LEVEL_10_1) { |