Add render graph proof of concept and refactor graphics

Implemented a transient render graph system as a proof of concept, including resource aliasing, pass culling, and typed pass data. Added new project `Ghost.RenderGraph.Concept` targeting `.NET 10.0`.

Refactored graphics-related components:
- Simplified resource state transitions in `RenderingContext`.
- Improved resize handling in `GraphicsTestWindow`.
- Updated `D3D12GraphicsEngine` to streamline frame rendering.
- Enhanced `D3D12ResourceDatabase` and `D3D12SwapChain` for better resource management.

Added detailed documentation:
- `ALIASING.md` explains resource aliasing techniques.
- `API_DESIGN.md` outlines the render graph API design.

Updated solution to include the new render graph project.
This commit is contained in:
2025-12-01 22:31:17 +09:00
parent 85280c746d
commit 676f8bb74c
31 changed files with 2167 additions and 142 deletions

View File

@@ -41,6 +41,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ghost.Entities.Test", "Ghos
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ghost.Test.Core", "Ghost.Test.Core\Ghost.Test.Core.csproj", "{2F2E39E6-C13F-49A5-A41E-FABBEEEAB890}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ghost.RenderGraph.Concept", "Ghost.RenderGraph.Concept\Ghost.RenderGraph.Concept.csproj", "{4B631380-1F77-4782-8823-8553D37DB2A0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
@@ -243,6 +245,18 @@ Global
{2F2E39E6-C13F-49A5-A41E-FABBEEEAB890}.Release|x64.Build.0 = Release|Any CPU
{2F2E39E6-C13F-49A5-A41E-FABBEEEAB890}.Release|x86.ActiveCfg = Release|Any CPU
{2F2E39E6-C13F-49A5-A41E-FABBEEEAB890}.Release|x86.Build.0 = Release|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Debug|ARM64.Build.0 = Debug|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Debug|x64.ActiveCfg = Debug|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Debug|x64.Build.0 = Debug|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Debug|x86.ActiveCfg = Debug|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Debug|x86.Build.0 = Debug|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Release|ARM64.ActiveCfg = Release|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Release|ARM64.Build.0 = Release|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Release|x64.ActiveCfg = Release|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Release|x64.Build.0 = Release|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Release|x86.ActiveCfg = Release|Any CPU
{4B631380-1F77-4782-8823-8553D37DB2A0}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -262,6 +276,7 @@ Global
{C4F7EE9D-5E08-403D-885B-21B86BFD3498} = {82E20323-1AFE-4DFD-8228-945641754724}
{11CFD14E-3B05-492F-A483-9A72A564086F} = {43E76E46-0E5F-4429-83C8-157689885174}
{2F2E39E6-C13F-49A5-A41E-FABBEEEAB890} = {43E76E46-0E5F-4429-83C8-157689885174}
{4B631380-1F77-4782-8823-8553D37DB2A0} = {43E76E46-0E5F-4429-83C8-157689885174}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0C545827-2ED7-4597-BE3C-30E978C85B9E}