mirror of
https://github.com/stenzek/duckstation.git
synced 2025-06-07 12:05:52 +00:00
D3D12Device: Fix a couple of errors in ROV handling
This commit is contained in:
parent
b798d8f1aa
commit
acd684bca2
@ -1895,9 +1895,9 @@ void D3D12Device::BeginRenderPass()
|
|||||||
for (u32 i = 0; i < m_num_current_render_targets; i++)
|
for (u32 i = 0; i < m_num_current_render_targets; i++)
|
||||||
{
|
{
|
||||||
D3D12Texture* const rt = m_current_render_targets[i];
|
D3D12Texture* const rt = m_current_render_targets[i];
|
||||||
rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
|
|
||||||
rt->SetUseFenceValue(GetCurrentFenceValue());
|
rt->SetUseFenceValue(GetCurrentFenceValue());
|
||||||
rt->CommitClear(cmdlist);
|
rt->CommitClear(cmdlist);
|
||||||
|
rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
|
||||||
rt->SetState(GPUTexture::State::Dirty);
|
rt->SetState(GPUTexture::State::Dirty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2419,8 +2419,8 @@ void D3D12Device::PreDispatchCheck()
|
|||||||
for (u32 i = 0; i < m_num_current_render_targets; i++)
|
for (u32 i = 0; i < m_num_current_render_targets; i++)
|
||||||
{
|
{
|
||||||
D3D12Texture* const rt = m_current_render_targets[i];
|
D3D12Texture* const rt = m_current_render_targets[i];
|
||||||
rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
|
|
||||||
rt->SetUseFenceValue(GetCurrentFenceValue());
|
rt->SetUseFenceValue(GetCurrentFenceValue());
|
||||||
|
rt->TransitionToState(cmdlist, D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
|
||||||
rt->CommitClear(cmdlist);
|
rt->CommitClear(cmdlist);
|
||||||
rt->SetState(GPUTexture::State::Dirty);
|
rt->SetState(GPUTexture::State::Dirty);
|
||||||
}
|
}
|
||||||
@ -2574,7 +2574,7 @@ bool D3D12Device::UpdateParametersForLayout(u32 dirty)
|
|||||||
for (u32 i = 0; i < MAX_IMAGE_RENDER_TARGETS; i++)
|
for (u32 i = 0; i < MAX_IMAGE_RENDER_TARGETS; i++)
|
||||||
{
|
{
|
||||||
src_handles[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;
|
src_sizes[i] = 1;
|
||||||
}
|
}
|
||||||
m_device->CopyDescriptors(1, &gpu_handle.cpu_handle, &dst_size, MAX_IMAGE_RENDER_TARGETS, src_handles, src_sizes,
|
m_device->CopyDescriptors(1, &gpu_handle.cpu_handle, &dst_size, MAX_IMAGE_RENDER_TARGETS, src_handles, src_sizes,
|
||||||
|
@ -222,7 +222,7 @@ private:
|
|||||||
|
|
||||||
LAYOUT_DEPENDENT_DIRTY_STATE = DIRTY_FLAG_PIPELINE_LAYOUT | DIRTY_FLAG_CONSTANT_BUFFER | DIRTY_FLAG_TEXTURES |
|
LAYOUT_DEPENDENT_DIRTY_STATE = DIRTY_FLAG_PIPELINE_LAYOUT | DIRTY_FLAG_CONSTANT_BUFFER | DIRTY_FLAG_TEXTURES |
|
||||||
DIRTY_FLAG_SAMPLERS | DIRTY_FLAG_RT_UAVS,
|
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
|
struct CommandList
|
||||||
|
Loading…
x
Reference in New Issue
Block a user