mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Re-introduce state check for updateFramebuffer
Turns out we broke batching render target clears earlier.
This commit is contained in:
parent
6b5d01c934
commit
d128d776ad
@ -3970,24 +3970,26 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
void DxvkContext::updateFramebuffer() {
|
void DxvkContext::updateFramebuffer() {
|
||||||
m_flags.clr(DxvkContextFlag::GpDirtyFramebuffer);
|
if (m_flags.test(DxvkContextFlag::GpDirtyFramebuffer)) {
|
||||||
|
m_flags.clr(DxvkContextFlag::GpDirtyFramebuffer);
|
||||||
this->spillRenderPass();
|
|
||||||
|
|
||||||
auto fb = m_device->createFramebuffer(m_state.om.renderTargets);
|
|
||||||
|
|
||||||
m_state.gp.state.msSampleCount = fb->getSampleCount();
|
|
||||||
m_state.om.framebuffer = fb;
|
|
||||||
|
|
||||||
for (uint32_t i = 0; i < MaxNumRenderTargets; i++) {
|
this->spillRenderPass();
|
||||||
Rc<DxvkImageView> attachment = fb->getColorTarget(i).view;
|
|
||||||
|
|
||||||
m_state.gp.state.omComponentMapping[i] = attachment != nullptr
|
auto fb = m_device->createFramebuffer(m_state.om.renderTargets);
|
||||||
? util::invertComponentMapping(attachment->info().swizzle)
|
|
||||||
: VkComponentMapping();
|
m_state.gp.state.msSampleCount = fb->getSampleCount();
|
||||||
|
m_state.om.framebuffer = fb;
|
||||||
|
|
||||||
|
for (uint32_t i = 0; i < MaxNumRenderTargets; i++) {
|
||||||
|
Rc<DxvkImageView> attachment = fb->getColorTarget(i).view;
|
||||||
|
|
||||||
|
m_state.gp.state.omComponentMapping[i] = attachment != nullptr
|
||||||
|
? util::invertComponentMapping(attachment->info().swizzle)
|
||||||
|
: VkComponentMapping();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_flags.set(DxvkContextFlag::GpDirtyPipelineState);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_flags.set(DxvkContextFlag::GpDirtyPipelineState);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user