Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DX12 support #57

Merged
merged 54 commits into from
Oct 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
41b3704
first setups for DX12: sln, projects, some implementations in ER_RHI_…
steaklive Aug 7, 2022
d0125e7
added ER_RHI_DX12_GPUPipelineStateObject.cpp/h; PSO methods to ER_RHI
steaklive Aug 11, 2022
36f15c5
finished wrapping ER_QuadRenderer usages in classes around PSO's logic
steaklive Aug 12, 2022
92c512c
added pso logic to many other systems: most ER_Materials, ER_Renderab…
steaklive Aug 19, 2022
959e7ed
PSO fixes in ER_Illumination, ER_VolumetricClouds
steaklive Aug 20, 2022
d4db521
completed ER_RHI_DX12::Initialize()
steaklive Aug 21, 2022
c9ad3a2
added a first version of ER_RHI_DX12_GPUDescriptorHeapManager.cpp/h (…
steaklive Aug 22, 2022
9d096f7
added implementations of many ER_RHI_DX12 methods: SetIndexBuffer(), …
steaklive Aug 23, 2022
37fd1be
implemented ER_RHI_DX12::SetShader(), ER_RHI_DX12_GPUShader.cpp/h
steaklive Aug 26, 2022
f3debbd
added ER_RHI_DX12_GPURootSignature.cpp/h, started working on root sig…
steaklive Sep 1, 2022
9a2832f
added extra functions/abstractions in ER_RHI_DX12_GPURootSignature; a…
steaklive Sep 2, 2022
0f3344c
added pixel-only shader visibility flag to composite pass root signat…
steaklive Sep 2, 2022
5178103
added fixes in ER_RHI_DX12_GPUBuffer.cpp
steaklive Sep 3, 2022
a9d2d2a
implemented ER_RHI_DX12_GPUTexture::CreateGPUTextureResource() for DX…
steaklive Sep 5, 2022
c3b7448
added CreateGPUTextureResource() from file (no mips/array from dds ye…
steaklive Sep 6, 2022
3147f7c
removed everything except .lib files in DirectXTK/bin and DirectXTK12…
steaklive Sep 6, 2022
062b93c
added ImGui for dx12, started fixing compilation errors in ER_RHI_DX1…
steaklive Sep 8, 2022
e98ebab
achieved "now able to compile" progress with porting to DX12
steaklive Sep 9, 2022
f729e3b
fixed many DX12 errors and bugs in ER_RHI_DX12 and other DX12-related…
steaklive Sep 11, 2022
d50cd6b
added descriptor table indices for cbv,srv to materials, ER_Volumetri…
steaklive Sep 12, 2022
a25f5c7
added root-signature support to ER_ShadowMapper
steaklive Sep 14, 2022
4561fe9
added voxel-cone tracing related root-signatures support to ER_Illumi…
steaklive Sep 14, 2022
a614041
added root-signatures support to ER_Skybox and ER_Illumination (defer…
steaklive Sep 15, 2022
83a33cf
finished adding root-signature support to ER_Illumination, ER_PostPro…
steaklive Sep 16, 2022
885ab9f
fixed many minor root-signature bugs all over the engine (mismatches,…
steaklive Sep 16, 2022
6508880
achieved "finally able to see a black screen with UI"!!! fixed variou…
steaklive Sep 17, 2022
898b0e9
refactored ER_QuadRenderer; refactored buffer updates in ER_RHI_DX12_…
steaklive Sep 26, 2022
acaf566
Merge remote-tracking branch 'remotes/origin/master' into dx12
steaklive Sep 26, 2022
cafd07b
achieved "finally able to see the scene on the screen"; fixed many DX…
steaklive Sep 28, 2022
e8fb819
added D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE to main dsv; added ali…
steaklive Sep 29, 2022
31ab1b4
added missing depth state to ER_Illumination::PrepareForForwardLighti…
steaklive Sep 29, 2022
d5a4550
optimized SetPSO() in ER_RHI_DX12; moved SetPSO() calls from per-mesh…
steaklive Sep 30, 2022
57c9998
added sorting of scene objects by "instancing support" flag for bette…
steaklive Oct 2, 2022
850146d
added D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE to ER_RHI_RESOURCE_S…
steaklive Oct 2, 2022
11f37b8
added window resize support + fullscreen mode
steaklive Oct 4, 2022
c7fd54d
fixed flickering ImGui
steaklive Oct 4, 2022
9547ace
added double-buffering to upload buffer of ER_RHI_DX12_GPUBuffer (fix…
steaklive Oct 5, 2022
005ebe3
[ER_Scene]: replaced std::sort() with std::partition() for scene obje…
steaklive Oct 7, 2022
d1789fd
refactored updates in ER_FoliageManager; started refactoring ER_Terra…
steaklive Oct 11, 2022
ffe7dac
fixed terrain rendering (not placement yet)
steaklive Oct 18, 2022
e1f85c7
tried to fix broken lightviewprojection per cascade with dx12
steaklive Oct 18, 2022
c21c594
fixed terrain shadow rendering
steaklive Oct 21, 2022
c3c63cb
fixed foliage on-terrain placement on init
steaklive Oct 21, 2022
7a0b0fc
fixed ER_RenderingObject on-terrain placement (for instanced and non-…
steaklive Oct 21, 2022
db2efc1
added debug names support for ER_RHI_GPUBuffer
steaklive Oct 21, 2022
01475b8
renamed root signatures debug names
steaklive Oct 23, 2022
cba061d
added debug names to constant buffers, PSOs
steaklive Oct 24, 2022
93bd985
fixed crashes on level reset (added descriptor manager reset, RHI reset)
steaklive Oct 25, 2022
2e5bdce
replaced shadow map format with D16; fixed a format bug in ER_RHI_DX1…
steaklive Oct 26, 2022
91b7ef5
fixed dx11 compilation errors, etc. before merging dx12 to master
steaklive Oct 28, 2022
1a520db
Merge branch 'dx12' of https://github.com/steaklive/EveryRay-Renderin…
steaklive Oct 28, 2022
bf1e83c
added d16 support to dx11
steaklive Oct 28, 2022
8c26111
moved ER_RuntimeCore.cpp/h from runtime to core
steaklive Oct 28, 2022
c01bc58
temporarily disabled multi-threaded light probes loading on dx12
steaklive Oct 28, 2022
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
  •  
  •  
  •  
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,13 @@ source/EveryRay_Core/Debug/
source/EveryRay_Core/Release/
source/EveryRay_Runtime_Win64_DX11/Debug/
source/EveryRay_Runtime_Win64_DX11/Release
source/EveryRay_Runtime_Win64_DX12/Debug/
source/EveryRay_Runtime_Win64_DX12/Release

bin/x64/dx11/Debug/EveryRay_Core.lib
bin/x64/dx11/Release/EveryRay_Core.lib
bin/x64/dx11/Debug/EveryRay_Core_Win64_DX11.lib
bin/x64/dx11/Release/EveryRay_Core_Win64_DX11.lib
bin/x64/dx12/Debug/EveryRay_Core_Win64_DX12.lib
bin/x64/dx12/Release/EveryRay_Core_Win64_DX12.lib

# ignore files debug files
*.obj
Expand Down
File renamed without changes.
47 changes: 47 additions & 0 deletions EveryRay_RenderingEngine_Win64_DX12.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31025.194
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EveryRay_Runtime_Win64_DX12", "source\EveryRay_Runtime_Win64_DX12\EveryRay_Runtime_Win64_DX12.vcxproj", "{856D8D61-FF77-4FAD-97F3-78EAFC45452D}"
ProjectSection(ProjectDependencies) = postProject
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C} = {5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EveryRay_Core_Win64_DX12", "source\EveryRay_Core\EveryRay_Core_Win64_DX12.vcxproj", "{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Debug|x64.ActiveCfg = Debug|x64
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Debug|x64.Build.0 = Debug|x64
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Debug|x86.ActiveCfg = Debug|Win32
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Debug|x86.Build.0 = Debug|Win32
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Release|x64.ActiveCfg = Release|x64
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Release|x64.Build.0 = Release|x64
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Release|x86.ActiveCfg = Release|Win32
{856D8D61-FF77-4FAD-97F3-78EAFC45452D}.Release|x86.Build.0 = Release|Win32
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Debug|x64.ActiveCfg = Debug|x64
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Debug|x64.Build.0 = Debug|x64
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Debug|x86.ActiveCfg = Debug|Win32
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Debug|x86.Build.0 = Debug|Win32
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Release|x64.ActiveCfg = Release|x64
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Release|x64.Build.0 = Release|x64
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Release|x86.ActiveCfg = Release|Win32
{5BF38A7E-BA85-4EBE-A62C-CC62DC058A9C}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6585CD01-C174-48D5-9939-9AE605299AC7}
EndGlobalSection
GlobalSection(Performance) = preSolution
HasPerformanceSessions = true
EndGlobalSection
EndGlobal
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added bin/x64/dx12/Debug/D3DCompiler_42.dll
Binary file not shown.
Binary file added bin/x64/dx12/Debug/D3DX9_42.dll
Binary file not shown.
Binary file not shown.
275 changes: 275 additions & 0 deletions bin/x64/dx12/Debug/imgui.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,275 @@
[Window][Debug##Default]
Pos=100,136
Size=400,400
Collapsed=0

[Window][Another Window]
Pos=60,60
Size=32,32
Collapsed=0

[Window][ImGui Demo]
Pos=428,2
Size=303,641
Collapsed=1

[Window][Example: Log]
Pos=415,109
Size=500,400
Collapsed=0

[Window][Example: Custom rendering]
Pos=396,49
Size=596,600
Collapsed=0

[Window][Style Editor]
Pos=302,345
Size=344,668
Collapsed=0

[Window][Example: Property editor]
Pos=620,20
Size=430,450
Collapsed=0

[Window][Example: Layout]
Pos=432,119
Size=500,440
Collapsed=0

[Window][Example: Long text display]
Pos=378,51
Size=520,600
Collapsed=0

[Window][Same title as another window##1]
Pos=387,44
Size=449,61
Collapsed=0

[Window][Same title as another window##2]
Pos=388,115
Size=449,61
Collapsed=0

[Window][###AnimatedTitle]
Pos=426,237
Size=264,62
Collapsed=0

[Window][Example: Console]
Pos=368,78
Size=614,502
Collapsed=0

[Window][Cascaded Shadow Mapping - Demo]
Pos=10,231
Size=288,187
Collapsed=0

[Window][Example: Simple Overlay]
Pos=60,60
Size=239,95
Collapsed=0

[Window][EveryRay - Rendering Engine: Configuration]
Pos=6,4
Size=413,213
Collapsed=0

[Window][Physically Based Rendering - Demo]
Pos=13,230
Size=267,176
Collapsed=0

[Window][Example: Auto-resizing window]
Pos=287,124
Size=652,437
Collapsed=0

[Window][About Dear ImGui]
Pos=794,674
Size=568,86
Collapsed=0

[Window][GPU Instancing - Demo]
Pos=12,231
Size=332,395
Collapsed=0

[Window][Frustum Culling - Demo]
Pos=11,229
Size=332,178
Collapsed=0

[Window][Separable Subsurface Scattering - Demo]
Pos=9,231
Size=434,429
Collapsed=0

[Window][Volumetric Lighting - Demo]
Pos=12,232
Size=366,153
Collapsed=0

[Window][Post Processing Stack Config]
Pos=1569,273
Size=315,393
Collapsed=0

[Window][Collision Detection - Demo]
Pos=12,230
Size=333,440
Collapsed=0

[Window][Profiling stats]
Pos=1048,578
Size=306,181
Collapsed=0

[Window][Water Simulation - Demo]
Pos=11,232
Size=435,175
Collapsed=0

[Window][Main Scene - Sponza]
Pos=11,316
Size=386,129
Collapsed=0

[Window][EveryRay Profiler]
Pos=1287,8
Size=176,162
Collapsed=0

[Window][Sponza Demo Scene]
Pos=12,231
Size=326,116
Collapsed=0

[Window][Camera Settings]
Pos=432,14
Size=396,166
Collapsed=0

[Window][EveryRay Editor]
Pos=1476,7
Size=426,220
Collapsed=0

[Window][Object Editor]
Pos=1624,636
Size=276,366
Collapsed=0

[Window][Scene Objects]
Pos=7,636
Size=258,127
Collapsed=0

[Window][Terrain Demo Scene]
Pos=5,220
Size=415,413
Collapsed=0

[Window][Test Demo Scene]
Pos=6,220
Size=414,312
Collapsed=1

[Window][EveryRay Camera Editor]
Pos=1537,17
Size=373,245
Collapsed=0

[Window][Scene Editor]
Pos=6,634
Size=409,379
Collapsed=0

[Window][Directional Light Editor]
Pos=1052,15
Size=473,195
Collapsed=0

[Window][Volumetric Clouds System]
Pos=605,5
Size=551,290
Collapsed=0

[Window][Acer Tree instances:]
Pos=426,643
Size=165,299
Collapsed=0

[Window][Acer TreeLOD 0 instances:]
Pos=428,642
Size=244,300
Collapsed=0

[Window][Acer TreeLOD 1 instances:]
Pos=677,642
Size=258,290
Collapsed=0

[Window][Acer TreeLOD 2 instances:]
Pos=942,642
Size=212,300
Collapsed=0

[Window][Elm TreeLOD 0 instances:]
Pos=60,60
Size=349,364
Collapsed=0

[Window][Elm TreeLOD 1 instances:]
Pos=913,499
Size=245,334
Collapsed=1

[Window][Elm TreeLOD 2 instances:]
Pos=589,500
Size=310,364
Collapsed=1

[Window][Global Illumination System]
Pos=8,537
Size=384,310
Collapsed=0

[Window][Systems Config]
Pos=423,4
Size=178,189
Collapsed=0

[Window][Illumination System]
Pos=6,222
Size=412,256
Collapsed=0

[Window][Volumetric Fog System]
Pos=606,5
Size=387,148
Collapsed=0

[Window][Bunny (Blue) instances:]
Pos=415,635
Size=282,373
Collapsed=0

[Window][Terrain System]
Pos=605,3
Size=316,252
Collapsed=0

[Window][Foliage System]
Pos=607,4
Size=295,187
Collapsed=0

[Window][Rock 1 instances:]
Pos=419,638
Size=328,361
Collapsed=0

Binary file added bin/x64/dx12/Debug/jsoncpp.dll
Binary file not shown.
Binary file added bin/x64/dx12/Release/D3DCompiler_42.dll
Binary file not shown.
Binary file added bin/x64/dx12/Release/D3DX9_42.dll
Binary file not shown.
Binary file added bin/x64/dx12/Release/assimp-vc141-mt.dll
Binary file not shown.
Loading