Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
b53c0b9
[Rendering] WIP on SDLGPU Renderer;
LittleCodingFox Oct 15, 2025
d5912b2
[Rendering] WIP on SDLGPU transition;
LittleCodingFox Oct 18, 2025
813d961
[Rendering] WIP Slang support;
LittleCodingFox Oct 19, 2025
88380dc
[Rendering] Updated most default shaders to Slang standards;
LittleCodingFox Oct 19, 2025
a2dfa48
[Rendering] WIP on Standard shader and lighting;
LittleCodingFox Oct 21, 2025
756920d
[Editor] Fixes to backends;
LittleCodingFox Oct 21, 2025
52d5c43
[Rendering] Add shader flags for vertex/fragment;
LittleCodingFox Oct 22, 2025
7238ecf
[Rendering] Fixed missing metrics for fragment shaders;
LittleCodingFox Oct 24, 2025
3eee694
[Rendering] Fixes to shader code;
LittleCodingFox Oct 24, 2025
24d197e
[Rendering] WIP on textures;
LittleCodingFox Oct 25, 2025
f929741
[Rendering] WIP on texture binding and default uniforms;
LittleCodingFox Oct 25, 2025
e2783f1
[Rendering] WIP;
LittleCodingFox Oct 25, 2025
ecd6972
[Rendering] WIP on shader handling;
LittleCodingFox Oct 26, 2025
8758394
[Rendering] Fixes to ImGUI;
LittleCodingFox Oct 26, 2025
2f3f600
[Rendering] Cleanup and fixes for ImGUI;
LittleCodingFox Oct 26, 2025
0fcbe37
[Rendering] Cleanup and even more ImGui fixes;
LittleCodingFox Oct 26, 2025
a879630
[Editor] Fix Scissoring in ImGUI;
LittleCodingFox Oct 26, 2025
ea82d3e
[Editor] Fix ImGui external texture handling;
LittleCodingFox Oct 26, 2025
15a2563
[Rendering] Minor tweaks;
LittleCodingFox Oct 26, 2025
6a59f07
[Rendering] Fix graphics pipeline not being cached;
LittleCodingFox Oct 26, 2025
72c97aa
[Rendering] Optimize pipeline and uniform usage;
LittleCodingFox Oct 26, 2025
178bd28
[Rendering] Reuse command buffer;
LittleCodingFox Oct 27, 2025
49efe85
[Rendering] WIP;
LittleCodingFox Oct 28, 2025
61705bb
[Rendering] Fixes to rendering clashing with passes;
LittleCodingFox Oct 28, 2025
27519cb
[Rendering] Fixes to depth handling;
LittleCodingFox Oct 28, 2025
990dfdf
[Rendering] WIP;
LittleCodingFox Oct 30, 2025
a7ee5c3
[Rendering] WIP;
LittleCodingFox Oct 31, 2025
8c9744b
[Rendering] WIP;
LittleCodingFox Nov 1, 2025
7ed8671
[Rendering] WIP;
LittleCodingFox Nov 1, 2025
0f49a6a
[Rendering] Fixes to flickering;
LittleCodingFox Nov 1, 2025
79a0dc5
[Rendering] Fix Update Texture cycling;
LittleCodingFox Nov 1, 2025
efef82c
[Rendering] Add transient buffers;
LittleCodingFox Nov 1, 2025
43ea7c6
[Rendering] Restore some APIs;
LittleCodingFox Nov 1, 2025
93fd1f3
[Rendering] Minor fix to material default textures;
LittleCodingFox Nov 2, 2025
242fec6
[Rendering] WIP on SDLGPU;
LittleCodingFox Nov 9, 2025
ca22293
[Rendering] Fix StapleRenderData upload;
LittleCodingFox Nov 9, 2025
5e871b2
[Rendering] WIP;
LittleCodingFox Nov 23, 2025
dd03a34
[Rendering] Fix bug with varying vertex attributes;
LittleCodingFox Nov 23, 2025
275c47a
[Rendering] Fixes to Shaders, Materials, and SDL GPU;
LittleCodingFox Nov 23, 2025
6c53edf
[Rendering] Fix for Render Passes not updating render data in time;
LittleCodingFox Nov 24, 2025
7cab8c6
[Rendering] WIP on texture read on SDL GPU;
LittleCodingFox Dec 4, 2025
7f91224
[Core] Add missing file to Core project;
LittleCodingFox Dec 4, 2025
4c82715
[Rendering] WIP on SDLGPU Render Targets;
LittleCodingFox Dec 6, 2025
de781cb
[Rendering] Fixed SDL GPU Render Target Sampler usage;
LittleCodingFox Dec 6, 2025
c812326
[Rendering] Fixes to Thumbnail Cache;
LittleCodingFox Dec 6, 2025
2ef75be
[Dependencies] Add Linux and MacOS builds for Slang and Cuttlefish;
LittleCodingFox Dec 6, 2025
96e28b3
[Dependencies] Update redist binaries for SDL3 and removed BGFX;
LittleCodingFox Dec 6, 2025
d221ee2
[Rendering] SDLGPU WIP;
LittleCodingFox Dec 7, 2025
ec8d3dc
[Rendering] Fixes to shader uniforms;
LittleCodingFox Dec 7, 2025
ce6a747
[Rendering] Minor tweaks to shaders and render state;
LittleCodingFox Dec 8, 2025
cf5fbb2
[Rendering] Expose Render Flags to Vertex/Index Buffers;
LittleCodingFox Dec 8, 2025
c5d3476
[Dependencies] Update to SDL3-CS from edwardgushchin;
LittleCodingFox Dec 9, 2025
5e4f30b
[Rendering] WIP improvement of shader input variant handling;
LittleCodingFox Dec 9, 2025
9a13123
[Rendering] Fixes for shader handling of textures, storage textures, …
LittleCodingFox Dec 10, 2025
7cabc7a
[Rendering] Fixes to skinning;
LittleCodingFox Dec 11, 2025
dc1d317
[Rendering] Fixed render invalidation during frame;
LittleCodingFox Dec 11, 2025
424568f
[Rendering] Fix Skinning Matrix multiplication;
LittleCodingFox Dec 11, 2025
49e2007
[Physics] Fix JoltPhysics Characters initial position;
LittleCodingFox Dec 11, 2025
5e2c60d
[Rendering] Improve performance;
LittleCodingFox Dec 11, 2025
c506712
[Rendering] WIP on improved performance;
LittleCodingFox Dec 12, 2025
a92a7f1
[Rendering] Added frame memory allocator;
LittleCodingFox Dec 12, 2025
8bb9eae
[Rendering] Fixes to render states;
LittleCodingFox Dec 12, 2025
2ef2527
[Rendering] WIP on re-adding lighting support;
LittleCodingFox Dec 13, 2025
74539fe
[Dependencies] Update SDL3-CS;
LittleCodingFox Dec 13, 2025
5e70fac
[Rendering] Fix Lighting and fixed a bug with ResumePass's clearing f…
LittleCodingFox Dec 16, 2025
67a0817
[Dependencies] Add Vulkan.NET;
LittleCodingFox Dec 16, 2025
c9ebd44
[Dependencies] Minor update to README.md;
LittleCodingFox Dec 16, 2025
4fdaf93
[Rendering] Re-add Instancing support;
LittleCodingFox Dec 16, 2025
7d09405
[Editor] Update SDL3 redist;
LittleCodingFox Dec 16, 2025
e45bc43
[Physics] Improve Jolt Physics performance when iterating mass amount…
LittleCodingFox Dec 16, 2025
72f1b75
[Entities] Improve entity creation speed by skipping iteration of exi…
LittleCodingFox Dec 17, 2025
8466900
[Rendering] Reuse transfer buffers;
LittleCodingFox Dec 17, 2025
f9809c3
[Rendering] Improve instancing buffer usage;
LittleCodingFox Dec 17, 2025
cb2172d
[Rendering] Add support for array metadata on shaders;
LittleCodingFox Dec 17, 2025
7e50aca
[Entities] Replace internal list with an array for slightly better perf;
LittleCodingFox Dec 17, 2025
8ef3680
[Math] Slight optimization to BoundingSphere CreateFromAABB;
LittleCodingFox Dec 17, 2025
46fdb33
[Physics] Fix cleanup for Jolt Physics;
LittleCodingFox Dec 17, 2025
cea39b7
[Entities] Fix dead entity indices;
LittleCodingFox Dec 17, 2025
35a83d9
[Player] Removed focus flag reset as it was causing performance drops;
LittleCodingFox Dec 18, 2025
2c71b9b
[Editor] Fix physics not being shut down properly;
LittleCodingFox Dec 18, 2025
81feb89
[Entities] Optimized ComponentVersionTracker;
LittleCodingFox Dec 21, 2025
b4de96b
[Math] Improve Math.Min/Max and BoundingSphere.CreateFromAABB perform…
LittleCodingFox Dec 21, 2025
dc26e28
[Entities] Fix ComponentVersionTracker use of arrays;
LittleCodingFox Dec 21, 2025
fe1f6c6
[Entities] More improvements to ComponentVersionTracker;
LittleCodingFox Dec 21, 2025
2be9c4d
[Rendering] Fixed corrupted renders;
LittleCodingFox Dec 21, 2025
c1d4743
[Rendering] Remove unnecessary code from TryGetVertex/FragmentCompute…
LittleCodingFox Dec 21, 2025
6dddb83
[Rendering] Minor optimizations to SDL GPU Shader Program;
LittleCodingFox Dec 21, 2025
c6ec3d6
[Rendering] Reduce MeshRenderSystem preprocessing processing;
LittleCodingFox Dec 21, 2025
c242ed7
[Project Management] Add support for NativeAOT x86_64 instruction lev…
LittleCodingFox Dec 22, 2025
b862f4c
[Platform] Fix AppSettings cloning missing some fields;
LittleCodingFox Dec 24, 2025
d9baffb
[Rendering] Optimize some SDL API usage;
LittleCodingFox Dec 24, 2025
dc0f031
[Rendering] Optimize frame allocator native address handling;
LittleCodingFox Dec 24, 2025
7bd28de
[Rendering] Minor refactor for optimization;
LittleCodingFox Dec 25, 2025
b1dbd84
[Rendering] Remove unnecessary vertex/index buffer check;
LittleCodingFox Dec 25, 2025
fb3c582
[Core] WIP on Freeform Allocator;
LittleCodingFox Dec 27, 2025
e736de8
[Utilties] Fix FreeformAllocator not updating the pin address;
LittleCodingFox Dec 31, 2025
2390338
WIP;
LittleCodingFox Jan 6, 2026
8239188
[Misc] Add Git LFS;
LittleCodingFox Jan 10, 2026
1aacfe3
[Dependencies] Update Cuttlefish, SDL Shadercross and Slang to latest…
LittleCodingFox Jan 10, 2026
62ba40f
[Dependencies] Fixes to cuttlefish, sdl shadercross and slang;
LittleCodingFox Jan 10, 2026
2c57193
[Misc] Refactor to remove unnecessary == false comparisons;
LittleCodingFox Jan 10, 2026
e47ed7d
[Rendering] Fixes to Entity Transform Buffer;
LittleCodingFox Jan 10, 2026
b158153
[Core] WIP refactor;
LittleCodingFox Jan 11, 2026
298c091
[Rendering] WIP refactor;
LittleCodingFox Jan 11, 2026
62cda77
[Dependencies] Add missing shadercrosss binaries;
LittleCodingFox Jan 12, 2026
f0a6500
[Rendering] Fixes to buffer transfers;
LittleCodingFox Jan 12, 2026
1ddb800
[Rendering] Fix Uniform caching;
LittleCodingFox Jan 12, 2026
7043581
[Rendering] Performance improvements;
LittleCodingFox Jan 12, 2026
7d67431
[Rendering] Refactor to shader and render command handling;
LittleCodingFox Jan 12, 2026
1ffe8ea
[Rendering] Use Frame Allocator for uniforms and texture sampler bind…
LittleCodingFox Jan 13, 2026
c0fb199
[Rendering] WIP on Multidraw Indirect;
LittleCodingFox Jan 15, 2026
4851287
[Entities] Optimize handling of entity transforms;
LittleCodingFox Jan 15, 2026
6330d7e
[Rendering] Fix renderable tracking;
LittleCodingFox Jan 15, 2026
9b2ef08
[Rendering] Adjust handling of entity transforms for Multidraw Static;
LittleCodingFox Jan 17, 2026
39e280c
[Rendering] Fix Transfer Buffer mapping bug;
LittleCodingFox Jan 17, 2026
6a45b79
[Misc] Misc changes;
LittleCodingFox Jan 21, 2026
951bd60
[Rendering] Fixes to render target handling;
LittleCodingFox Jan 21, 2026
27c8e37
[Math] Add ToString override for Color/Color32;
LittleCodingFox Jan 24, 2026
694b0e8
[Dependencies] Workaround premake limit by keeping dotnet project fil…
LittleCodingFox Jan 25, 2026
6934719
[Dependencies] Fix SDL3-CS project flags;
LittleCodingFox Jan 25, 2026
1bfe954
[Dependencies] Fix macOS build;
LittleCodingFox Jan 25, 2026
564fcc7
[Dependencies] Change SDL3-CS to ppy version for android support (WIP);
LittleCodingFox Jan 27, 2026
92adffb
[Runtime] Fix Android support;
LittleCodingFox Jan 27, 2026
ef3c649
[Dependencies] Remove build_bgfx.cmd;
LittleCodingFox Jan 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.dll filter=lfs diff=lfs merge=lfs -text
*.dylib filter=lfs diff=lfs merge=lfs -text
*.so filter=lfs diff=lfs merge=lfs -text
66 changes: 47 additions & 19 deletions BuiltinResources/Hidden/Shaders/Debug/NormalDebug.shader
Original file line number Diff line number Diff line change
@@ -1,44 +1,72 @@
Begin Parameters

varying vec3 a_position : POSITION
varying vec3 a_normal : NORMAL
varying vec3 v_normal : NORMAL

End Parameters

Begin Input
POSITION
NORMAL
variant: SKINNING BLENDINDICES
variant: SKINNING BLENDWEIGHTS
End Input

Begin Instancing
End Instancing

Begin Common

struct VertexOutput
{
float4 position : SV_Position;
float3 normal;
};

End Common

Begin Vertex

$input a_position, a_normal
$output v_normal
struct Input
{
float3 position : POSITION;
float3 normal : NORMAL;

#ifdef SKINNING
float4 indices : BLENDINDICES;
float4 weights : BLENDWEIGHTS;
#endif

uint baseInstance : SV_StartInstanceLocation;
uint instanceID : SV_InstanceID;
};

void main()
[shader("vertex")]
VertexOutput VertexMain(Input input)
{
mat4 model = StapleModelMatrix;
VertexOutput output;

#ifdef SKINNING
model = StapleGetSkinningMatrix(model, a_indices, a_weight);
#endif
float4x4 model = StapleWorldMatrix(input.baseInstance, input.instanceID);

mat4 projViewWorld = mul(mul(u_proj, u_view), model);
vec4 v_pos = mul(projViewWorld, vec4(a_position, 1.0));
#ifdef SKINNING
model = StapleGetSkinningMatrix(model, input.indices, input.weights);
#endif

v_normal = a_normal;
float4x4 projectionViewWorld = ProjectionViewWorld(model);

gl_Position = v_pos;
float3 position = input.position;

output.normal = input.normal;
output.position = mul(projectionViewWorld, float4(position, 1.0));

return output;
}

End Vertex

Begin Fragment

$input v_normal

void main()
[shader("fragment")]
float4 FragmentMain(VertexOutput input) : SV_Target
{
gl_FragColor = vec4(v_normal * 0.5 + 0.5, 1);
return float4(normalize(input.normal) * 0.5 + 0.5, 1);
}

End Fragment
79 changes: 53 additions & 26 deletions BuiltinResources/Hidden/Shaders/Debug/TangentDebug.shader
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,80 @@ Variants BITANGENT_COLOR

Begin Parameters

varying vec3 v_tangent : TANGENT
varying vec3 v_bitangent : BITANGENT

variant: BITANGENT_COLOR uniform float tangentOrBitangent
variant: BITANGENT_COLOR float tangentOrBitangent

End Parameters

Begin Input
POSITION
TANGENT
variant: SKINNING BLENDINDICES
variant: SKINNING BLENDWEIGHTS
End Input

Begin Instancing
End Instancing

Begin Common

struct VertexOutput
{
float4 position : SV_Position;
float3 tangent;
};

End Common

Begin Vertex

$input a_position, a_tangent, a_bitangent
$output v_tangent, v_bitangent
struct Input
{
float3 position : POSITION;

#ifdef BITANGENT
float3 tangent : BITANGENT;
#else
float3 tangent : TANGENT;
#endif

void main()
#ifdef SKINNING
float4 indices : BLENDINDICES;
float4 weights : BLENDWEIGHTS;
#endif

uint baseInstance : SV_StartInstanceLocation;
uint instanceID : SV_InstanceID;
};

[shader("vertex")]
VertexOutput VertexMain(Input input)
{
mat4 model = StapleModelMatrix;
VertexOutput output;

#ifdef SKINNING
model = StapleGetSkinningMatrix(model, a_indices, a_weight);
#endif
float4x4 model = StapleWorldMatrix(input.baseInstance, input.instanceID);

#ifdef SKINNING
model = StapleGetSkinningMatrix(model, input.indices, input.weights);
#endif

mat4 projViewWorld = mul(mul(u_proj, u_view), model);
vec4 v_pos = mul(projViewWorld, vec4(a_position, 1.0));
float4x4 projectionViewWorld = ProjectionViewWorld(model);

v_tangent = a_tangent;
v_bitangent = a_bitangent;
float3 position = input.position;

gl_Position = v_pos;
output.tangent = input.tangent;
output.position = mul(projectionViewWorld, float4(position, 1.0));

return output;
}

End Vertex

Begin Fragment

$input v_tangent, v_bitangent

void main()
[shader("fragment")]
float4 FragmentMain(VertexOutput input) : SV_Target
{
#if BITANGENT
vec3 color = v_bitangent;
#else
vec3 color = v_tangent;
#endif

gl_FragColor = vec4(color * 0.5 + 0.5, 1);
return float4(normalize(input.tangent) * 0.5 + 0.5, 1);
}

End Fragment
68 changes: 54 additions & 14 deletions BuiltinResources/Hidden/Shaders/Default/SolidColor.shader
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,79 @@ Type VertexFragment

Begin Parameters

varying vec3 a_position : POSITION
uniform color mainColor
color mainColor

End Parameters

Begin Input
POSITION
variant: SKINNING BLENDINDICES
variant: SKINNING BLENDWEIGHTS
End Input

Begin Instancing
End Instancing

Begin Common

struct VertexOutput
{
float4 position : SV_Position;
float4 color;
};

End Common

Begin Vertex
$input a_position

void main()
[[vk::binding(StapleUniformBufferStart, StapleUniformBufferSet)]]
cbuffer Uniforms
{
mat4 model = StapleModelMatrix;
float4 mainColor;
};

#ifdef SKINNING
model = StapleGetSkinningMatrix(model, a_indices, a_weight);
#endif
struct Input
{
float3 position : POSITION;

mat4 projViewWorld = mul(mul(u_proj, u_view), model);
#ifdef SKINNING
float4 indices : BLENDINDICES;
float4 weights : BLENDWEIGHTS;
#endif

vec4 v_pos = mul(projViewWorld, vec4(a_position, 1.0));
uint baseInstance : SV_StartInstanceLocation;
uint instanceID : SV_InstanceID;
};

gl_Position = v_pos;
}
[shader("vertex")]
VertexOutput VertexMain(Input input)
{
VertexOutput output;

float3 position = input.position;
float4 color = mainColor;

float4x4 model = StapleWorldMatrix(input.baseInstance, input.instanceID);

#ifdef SKINNING
model = StapleGetSkinningMatrix(model, input.indices, input.weights);
#endif

float4x4 projectionViewWorld = ProjectionViewWorld(model);

output.color = color;
output.position = mul(projectionViewWorld, float4(position, 1.0));

return output;
}
End Vertex

Begin Fragment

void main()
[shader("fragment")]
float4 FragmentMain(VertexOutput input) : SV_Target
{
gl_FragColor = mainColor;
return input.color;
}

End Fragment
Loading
Loading