dolphin/Source/Core/VideoBackends/D3D12
Robin Kertels a07ee729e5
VideoBackends:D3D12: Defer binding framebuffer in SetAndDiscardFramebuffer
BindFramebuffer depends on the pipeline which might not be set yet.
That's why the framebuffer dirty flag exists in the first place.
I assume BindFramebuffer was called directly here, in order to handle
the texture state transitions necessary for DiscardResource.
The state is tracked anyway, so we can just issue those transitions there
too and defer binding the actual framebuffer.

Fixes an issue in Zelda Twilight Princess with EFB depth peeks.
Dolphin would bind a frame buffer which doesn't have an integer format
descriptor for the color target before binding the new pipeline.
So it would accidentally use the 0 descriptor.

Debug layer error:
D3D12 ERROR: ID3D12CommandList::OMSetRenderTargets:
Specified CPU descriptor handle ptr=0x0000000000000000 does not refer to
a location in a descriptor heap. pRenderTargetDescriptors[0] is the issue.
[ EXECUTION ERROR #646: INVALID_DESCRIPTOR_HANDLE]
2022-10-29 23:41:32 +02:00
..
CMakeLists.txt cmake: Don't use PCH with Qt6. 2022-05-22 01:19:44 +02:00
Common.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
D3D12BoundingBox.cpp VideoBackends:D3D12: Use COMMON as initial state for default heap buffer 2022-10-29 23:39:32 +02:00
D3D12BoundingBox.h Fix all uninitialized variable warnings (C26495) 2021-10-13 12:32:16 -07:00
D3D12PerfQuery.cpp VideoBackends/D3D12: Include HRESULT in error messages 2022-01-09 12:44:53 -08:00
D3D12PerfQuery.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
D3D12Renderer.cpp VideoBackends:D3D12: Defer binding framebuffer in SetAndDiscardFramebuffer 2022-10-29 23:41:32 +02:00
D3D12Renderer.h VideoBackends:D3D12: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
D3D12StreamBuffer.cpp VideoBackends/D3D12: Include HRESULT in error messages 2022-01-09 12:44:53 -08:00
D3D12StreamBuffer.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
D3D12SwapChain.cpp VideoBackends/D3D12: Include HRESULT in error messages 2022-01-09 12:44:53 -08:00
D3D12SwapChain.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
D3D12VertexManager.cpp VideoBackends:D3D12: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
D3D12VertexManager.h VideoBackends:D3D12: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
DX12Context.cpp VideoBackends:D3D12: Add support for vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
DX12Context.h VideoBackends:D3D12: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
DX12Pipeline.cpp VideoCommon: Add separate pipeline usage for UberShaders 2022-09-19 16:28:24 -05:00
DX12Pipeline.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
DX12Shader.cpp VideoBackends/D3D12: Include HRESULT in error messages 2022-01-09 12:44:53 -08:00
DX12Shader.h VideoBackends / VideoCommon: allow the ability to set debug names for shaders / textures. These names are visible in applications like RenderDoc 2021-08-30 13:47:48 -05:00
DX12Texture.cpp VideoBackends/D3D12: Include HRESULT in error messages 2022-01-09 12:44:53 -08:00
DX12Texture.h VideoBackends: fix d3d12 subresource calculation 2022-10-28 19:07:08 -05:00
DX12VertexFormat.cpp D3D / VideoCommon: generate HLSL from SPIRV 2022-06-24 18:09:53 -05:00
DX12VertexFormat.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
DescriptorAllocator.cpp VideoBackends/D3D12: Include HRESULT in error messages 2022-01-09 12:44:53 -08:00
DescriptorAllocator.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
DescriptorHeapManager.cpp VideoBackends:D3D12: Don't query GPU descriptor handle for non-shader visible heap 2022-10-29 23:39:27 +02:00
DescriptorHeapManager.h VideoBackends:D3D12: Don't query GPU descriptor handle for non-shader visible heap 2022-10-29 23:39:27 +02:00
VideoBackend.cpp VideoBackends:D3D12: Add support for vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
VideoBackend.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00