SDL: GPU: Clean up D3D12 blit shader compilation

From d8eb68a6c54733af67a4490bf52f4ee868b009d4 Mon Sep 17 00:00:00 2001
From: Caleb Cornett <[EMAIL REDACTED]>
Date: Wed, 4 Dec 2024 14:56:36 -0500
Subject: [PATCH] GPU: Clean up D3D12 blit shader compilation

---
 src/gpu/{d3dcommon => d3d12}/D3D_Blit.hlsl | 32 +++++-----------------
 src/gpu/d3d12/compile_shaders.bat          | 12 ++++----
 2 files changed, 13 insertions(+), 31 deletions(-)
 rename src/gpu/{d3dcommon => d3d12}/D3D_Blit.hlsl (85%)

diff --git a/src/gpu/d3dcommon/D3D_Blit.hlsl b/src/gpu/d3d12/D3D_Blit.hlsl
similarity index 85%
rename from src/gpu/d3dcommon/D3D_Blit.hlsl
rename to src/gpu/d3d12/D3D_Blit.hlsl
index c629c944fbf41..69748d4b5c587 100644
--- a/src/gpu/d3dcommon/D3D_Blit.hlsl
+++ b/src/gpu/d3d12/D3D_Blit.hlsl
@@ -1,21 +1,15 @@
-#if D3D12
 #define BlitRS \
     "DescriptorTable ( Sampler(s0, space=2), visibility = SHADER_VISIBILITY_PIXEL ),"\
     "DescriptorTable ( SRV(t0, space=2), visibility = SHADER_VISIBILITY_PIXEL ),"\
     "CBV(b0, space=3, visibility = SHADER_VISIBILITY_PIXEL),"\
 
-#define REG(reg, space) register(reg, space)
-#else
-#define REG(reg, space) register(reg)
-#endif
-
 struct VertexToPixel
 {
     float2 tex : TEXCOORD0;
     float4 pos : SV_POSITION;
 };
 
-cbuffer SourceRegionBuffer : REG(b0, space3)
+cbuffer SourceRegionBuffer : register(b0, space3)
 {
     float2 UVLeftTop;
     float2 UVDimensions;
@@ -23,16 +17,14 @@ cbuffer SourceRegionBuffer : REG(b0, space3)
     float LayerOrDepth;
 };
 
-Texture2D SourceTexture2D : REG(t0, space2);
-Texture2DArray SourceTexture2DArray : REG(t0, space2);
-Texture3D SourceTexture3D : REG(t0, space2);
-TextureCube SourceTextureCube : REG(t0, space2);
-TextureCubeArray SourceTextureCubeArray : REG(t0, space2);
-sampler SourceSampler : REG(s0, space2);
+Texture2D SourceTexture2D : register(t0, space2);
+Texture2DArray SourceTexture2DArray : register(t0, space2);
+Texture3D SourceTexture3D : register(t0, space2);
+TextureCube SourceTextureCube : register(t0, space2);
+TextureCubeArray SourceTextureCubeArray : register(t0, space2);
+sampler SourceSampler : register(s0, space2);
 
-#if D3D12
 [RootSignature(BlitRS)]
-#endif
 VertexToPixel FullscreenVert(uint vI : SV_VERTEXID)
 {
     float2 inTex = float2((vI << 1) & 2, vI & 2);
@@ -42,36 +34,28 @@ VertexToPixel FullscreenVert(uint vI : SV_VERTEXID)
     return Out;
 }
 
-#if D3D12
 [RootSignature(BlitRS)]
-#endif
 float4 BlitFrom2D(VertexToPixel input) : SV_Target0
 {
     float2 newCoord = UVLeftTop + UVDimensions * input.tex;
     return SourceTexture2D.SampleLevel(SourceSampler, newCoord, MipLevel);
 }
 
-#if D3D12
 [RootSignature(BlitRS)]
-#endif
 float4 BlitFrom2DArray(VertexToPixel input) : SV_Target0
 {
     float3 newCoord = float3(UVLeftTop + UVDimensions * input.tex, (uint)LayerOrDepth);
     return SourceTexture2DArray.SampleLevel(SourceSampler, newCoord, MipLevel);
 }
 
-#if D3D12
 [RootSignature(BlitRS)]
-#endif
 float4 BlitFrom3D(VertexToPixel input) : SV_Target0
 {
     float3 newCoord = float3(UVLeftTop + UVDimensions * input.tex, LayerOrDepth);
     return SourceTexture3D.SampleLevel(SourceSampler, newCoord, MipLevel);
 }
 
-#if D3D12
 [RootSignature(BlitRS)]
-#endif
 float4 BlitFromCube(VertexToPixel input) : SV_Target0
 {
     // Thanks, Wikipedia! https://en.wikipedia.org/wiki/Cube_mapping
@@ -91,9 +75,7 @@ float4 BlitFromCube(VertexToPixel input) : SV_Target0
     return SourceTextureCube.SampleLevel(SourceSampler, newCoord, MipLevel);
 }
 
-#if D3D12
 [RootSignature(BlitRS)]
-#endif
 float4 BlitFromCubeArray(VertexToPixel input) : SV_Target0
 {
     // Thanks, Wikipedia! https://en.wikipedia.org/wiki/Cube_mapping
diff --git a/src/gpu/d3d12/compile_shaders.bat b/src/gpu/d3d12/compile_shaders.bat
index 6733fabdd55ce..7aa78ef7ab45a 100644
--- a/src/gpu/d3d12/compile_shaders.bat
+++ b/src/gpu/d3d12/compile_shaders.bat
@@ -8,11 +8,11 @@ echo Suffix %SUFFIX%
 
 cd "%~dp0"
 
-%DXC% -E FullscreenVert -T vs_6_0 -Fh D3D12_FullscreenVert.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1
-%DXC% -E BlitFrom2D -T ps_6_0 -Fh D3D12_BlitFrom2D.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1
-%DXC% -E BlitFrom2DArray -T ps_6_0 -Fh D3D12_BlitFrom2DArray.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1
-%DXC% -E BlitFrom3D -T ps_6_0 -Fh D3D12_BlitFrom3D.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1
-%DXC% -E BlitFromCube -T ps_6_0  -Fh D3D12_BlitFromCube.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1
-%DXC% -E BlitFromCubeArray -T ps_6_0 -Fh D3D12_BlitFromCubeArray.h ..\d3dcommon\D3D_Blit.hlsl /D D3D12=1
+%DXC% -E FullscreenVert -T vs_6_0 -Fh D3D12_FullscreenVert.h D3D_Blit.hlsl
+%DXC% -E BlitFrom2D -T ps_6_0 -Fh D3D12_BlitFrom2D.h D3D_Blit.hlsl
+%DXC% -E BlitFrom2DArray -T ps_6_0 -Fh D3D12_BlitFrom2DArray.h D3D_Blit.hlsl
+%DXC% -E BlitFrom3D -T ps_6_0 -Fh D3D12_BlitFrom3D.h D3D_Blit.hlsl
+%DXC% -E BlitFromCube -T ps_6_0  -Fh D3D12_BlitFromCube.h D3D_Blit.hlsl
+%DXC% -E BlitFromCubeArray -T ps_6_0 -Fh D3D12_BlitFromCubeArray.h D3D_Blit.hlsl
 copy /b D3D12_FullscreenVert.h+D3D12_BlitFrom2D.h+D3D12_BlitFrom2DArray.h+D3D12_BlitFrom3D.h+D3D12_BlitFromCube.h+D3D12_BlitFromCubeArray.h D3D12_Blit%SUFFIX%
 del D3D12_FullscreenVert.h D3D12_BlitFrom2D.h D3D12_BlitFrom2DArray.h D3D12_BlitFrom3D.h D3D12_BlitFromCube.h D3D12_BlitFromCubeArray.h