diff --git a/src/util/d3d12_device.cpp b/src/util/d3d12_device.cpp index 8d46d834b..a5b49a7df 100644 --- a/src/util/d3d12_device.cpp +++ b/src/util/d3d12_device.cpp @@ -1895,9 +1895,9 @@ void D3D12Device::BeginRenderPass() for (u32 i = 0; i < m_num_current_render_targets; i++) { D3D12Texture* const rt = m_current_render_targets[i]; - rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS); rt->SetUseFenceValue(GetCurrentFenceValue()); rt->CommitClear(cmdlist); + rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS); rt->SetState(GPUTexture::State::Dirty); } } @@ -2419,8 +2419,8 @@ void D3D12Device::PreDispatchCheck() for (u32 i = 0; i < m_num_current_render_targets; i++) { D3D12Texture* const rt = m_current_render_targets[i]; - rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS); rt->SetUseFenceValue(GetCurrentFenceValue()); + rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS); rt->CommitClear(cmdlist); rt->SetState(GPUTexture::State::Dirty); } @@ -2574,7 +2574,7 @@ bool D3D12Device::UpdateParametersForLayout(u32 dirty) for (u32 i = 0; i < MAX_IMAGE_RENDER_TARGETS; i++) { src_handles[i] = - m_current_render_targets[i] ? m_current_render_targets[i]->GetSRVDescriptor() : m_null_srv_descriptor; + m_current_render_targets[i] ? m_current_render_targets[i]->GetUAVDescriptor() : m_null_uav_descriptor; src_sizes[i] = 1; } m_device->CopyDescriptors(1, &gpu_handle.cpu_handle, &dst_size, MAX_IMAGE_RENDER_TARGETS, src_handles, src_sizes, diff --git a/src/util/d3d12_device.h b/src/util/d3d12_device.h index c4599b4e5..a68c84a83 100644 --- a/src/util/d3d12_device.h +++ b/src/util/d3d12_device.h @@ -222,7 +222,7 @@ private: LAYOUT_DEPENDENT_DIRTY_STATE = DIRTY_FLAG_PIPELINE_LAYOUT | DIRTY_FLAG_CONSTANT_BUFFER | DIRTY_FLAG_TEXTURES | DIRTY_FLAG_SAMPLERS | DIRTY_FLAG_RT_UAVS, - ALL_DIRTY_STATE = DIRTY_FLAG_INITIAL | (LAYOUT_DEPENDENT_DIRTY_STATE & ~DIRTY_FLAG_RT_UAVS), + ALL_DIRTY_STATE = DIRTY_FLAG_INITIAL | LAYOUT_DEPENDENT_DIRTY_STATE, }; struct CommandList