Browse Source

render: D3D12 Xbox does not have COMPARISON_FUNC_NONE yet

Ethan Lee 2 weeks ago
parent
commit
96b5c92780
1 changed files with 8 additions and 0 deletions
  1. 8 0
      src/render/direct3d12/SDL_render_d3d12.c

+ 8 - 0
src/render/direct3d12/SDL_render_d3d12.c

@@ -2877,7 +2877,15 @@ static D3D12_CPU_DESCRIPTOR_HANDLE *D3D12_GetSamplerState(D3D12_RenderData *data
         samplerDesc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_CLAMP;
         samplerDesc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_CLAMP;
         samplerDesc.MipLODBias = 0.0f;
         samplerDesc.MipLODBias = 0.0f;
         samplerDesc.MaxAnisotropy = 1;
         samplerDesc.MaxAnisotropy = 1;
+#if defined(SDL_PLATFORM_XBOXONE) || defined(SDL_PLATFORM_XBOXSERIES)
+        // FIXME: Xbox doesn't support FUNC_NONE as of the October 2025 GDK, but
+        // at the same time it fixes validation issues on Windows. It's probably
+        // the more appropriate value, so get rid of this when GDK catches up.
+        // -flibit
+        samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS;
+#else
         samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_NONE;
         samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_NONE;
+#endif
         samplerDesc.MinLOD = 0.0f;
         samplerDesc.MinLOD = 0.0f;
         samplerDesc.MaxLOD = D3D12_FLOAT32_MAX;
         samplerDesc.MaxLOD = D3D12_FLOAT32_MAX;
         switch (scale_mode) {
         switch (scale_mode) {