From 0030fafda2b24ad1059b3687e30cd79bfa5095f5 Mon Sep 17 00:00:00 2001
From: Ethan Lee <[EMAIL REDACTED]>
Date: Thu, 26 Feb 2026 10:06:50 -0500
Subject: [PATCH] render: Added Xbox DXIL for gpu backend
---
VisualC-GDK/SDL/SDL.vcxproj | 4 ++
.../gpu/shaders/compile_shaders_xbox.bat | 25 ++++++++++
src/render/gpu/shaders/dxil.h | 46 +++++++++++++++++++
3 files changed, 75 insertions(+)
create mode 100644 src/render/gpu/shaders/compile_shaders_xbox.bat
diff --git a/VisualC-GDK/SDL/SDL.vcxproj b/VisualC-GDK/SDL/SDL.vcxproj
index a1356ab17f8f5..95b71774d1009 100644
--- a/VisualC-GDK/SDL/SDL.vcxproj
+++ b/VisualC-GDK/SDL/SDL.vcxproj
@@ -169,6 +169,7 @@
<PreBuildEvent>
<Command>
call "$(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat" "$(ProjectDir)..\"
+ call "$(ProjectDir)..\..\src\render\gpu\shaders\compile_shaders_xbox.bat" "$(ProjectDir)..\"
call "$(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat" "$(ProjectDir)..\"
</Command>
</PreBuildEvent>
@@ -207,6 +208,7 @@
<PreBuildEvent>
<Command>
call $(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
+ call $(ProjectDir)..\..\src\render\gpu\shaders\compile_shaders_xbox.bat $(ProjectDir)..\ one
call $(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
</Command>
</PreBuildEvent>
@@ -278,6 +280,7 @@
<PreBuildEvent>
<Command>
call $(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat $(ProjectDir)..\
+ call $(ProjectDir)..\..\src\render\gpu\shaders\compile_shaders_xbox.bat $(ProjectDir)..\
call $(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat $(ProjectDir)..\
</Command>
</PreBuildEvent>
@@ -317,6 +320,7 @@
<PreBuildEvent>
<Command>
call $(ProjectDir)..\..\src\render\direct3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
+ call $(ProjectDir)..\..\src\render\gpu\shaders\compile_shaders_xbox.bat $(ProjectDir)..\ one
call $(ProjectDir)..\..\src\gpu\d3d12\compile_shaders_xbox.bat $(ProjectDir)..\ one
</Command>
</PreBuildEvent>
diff --git a/src/render/gpu/shaders/compile_shaders_xbox.bat b/src/render/gpu/shaders/compile_shaders_xbox.bat
new file mode 100644
index 0000000000000..f1ed9c6124e0f
--- /dev/null
+++ b/src/render/gpu/shaders/compile_shaders_xbox.bat
@@ -0,0 +1,25 @@
+if %2.==one. goto setxboxone
+rem Xbox Series compile
+set DXC="%GameDKLatest%\GXDK\bin\Scarlett\DXC.exe"
+set SUFFIX=_Series.h
+goto startbuild
+
+:setxboxone
+set DXC="%GameDKLatest%\GXDK\bin\XboxOne\DXC.exe"
+set SUFFIX=_One.h
+
+:startbuild
+
+echo Building with %DXC%
+echo Suffix %SUFFIX%
+
+cd "%~dp0"
+
+%DXC% -E main -T ps_6_0 -Fh color.frag.dxil%SUFFIX% color.frag.hlsl
+%DXC% -E main -T ps_6_0 -Fh texture_advanced.frag.dxil%SUFFIX% texture_advanced.frag.hlsl
+%DXC% -E main -T ps_6_0 -Fh texture_rgba.frag.dxil%SUFFIX% texture_rgba.frag.hlsl
+%DXC% -E main -T ps_6_0 -Fh texture_rgb.frag.dxil%SUFFIX% texture_rgb.frag.hlsl
+
+%DXC% -E main -T vs_6_0 -Fh linepoint.vert.dxil%SUFFIX% linepoint.vert.hlsl
+%DXC% -E main -T vs_6_0 -Fh tri_color.vert.dxil%SUFFIX% tri_color.vert.hlsl
+%DXC% -E main -T vs_6_0 -Fh tri_texture.vert.dxil%SUFFIX% tri_texture.vert.hlsl
diff --git a/src/render/gpu/shaders/dxil.h b/src/render/gpu/shaders/dxil.h
index 3397297db2b73..c685c3bf61e24 100644
--- a/src/render/gpu/shaders/dxil.h
+++ b/src/render/gpu/shaders/dxil.h
@@ -1,3 +1,48 @@
+#if defined(SDL_PLATFORM_XBOXONE)
+#define g_main color_frag_dxil
+#include "color.frag.dxil_One.h"
+#undef g_main
+#define g_main linepoint_vert_dxil
+#include "linepoint.vert.dxil_One.h"
+#undef g_main
+#define g_main texture_advanced_frag_dxil
+#include "texture_advanced.frag.dxil_One.h"
+#undef g_main
+#define g_main texture_rgb_frag_dxil
+#include "texture_rgb.frag.dxil_One.h"
+#undef g_main
+#define g_main texture_rgba_frag_dxil
+#include "texture_rgba.frag.dxil_One.h"
+#undef g_main
+#define g_main tri_color_vert_dxil
+#include "tri_color.vert.dxil_One.h"
+#undef g_main
+#define g_main tri_texture_vert_dxil
+#include "tri_texture.vert.dxil_One.h"
+#undef g_main
+#elif defined(SDL_PLATFORM_XBOXSERIES)
+#define g_main color_frag_dxil
+#include "color.frag.dxil_Series.h"
+#undef g_main
+#define g_main linepoint_vert_dxil
+#include "linepoint.vert.dxil_Series.h"
+#undef g_main
+#define g_main texture_advanced_frag_dxil
+#include "texture_advanced.frag.dxil_Series.h"
+#undef g_main
+#define g_main texture_rgb_frag_dxil
+#include "texture_rgb.frag.dxil_Series.h"
+#undef g_main
+#define g_main texture_rgba_frag_dxil
+#include "texture_rgba.frag.dxil_Series.h"
+#undef g_main
+#define g_main tri_color_vert_dxil
+#include "tri_color.vert.dxil_Series.h"
+#undef g_main
+#define g_main tri_texture_vert_dxil
+#include "tri_texture.vert.dxil_Series.h"
+#undef g_main
+#else
#include "color.frag.dxil.h"
#include "linepoint.vert.dxil.h"
#include "texture_advanced.frag.dxil.h"
@@ -5,3 +50,4 @@
#include "texture_rgba.frag.dxil.h"
#include "tri_color.vert.dxil.h"
#include "tri_texture.vert.dxil.h"
+#endif