mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Unbind graphics pipeline when spilling render pass
Otherwise we may in some very rare cases continue using an incorrect pipeline in subsequent render passes if the same shaders are used for drawing.
This commit is contained in:
parent
85f0fe729c
commit
5aad615aef
@ -1242,7 +1242,6 @@ namespace dxvk {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
this->spillRenderPass();
|
this->spillRenderPass();
|
||||||
this->unbindGraphicsPipeline();
|
|
||||||
|
|
||||||
m_barriers.recordCommands(m_cmd);
|
m_barriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
@ -1951,7 +1950,6 @@ namespace dxvk {
|
|||||||
VkImageSubresourceLayers srcSubresource,
|
VkImageSubresourceLayers srcSubresource,
|
||||||
VkOffset3D srcOffset,
|
VkOffset3D srcOffset,
|
||||||
VkExtent3D extent) {
|
VkExtent3D extent) {
|
||||||
this->unbindGraphicsPipeline();
|
|
||||||
m_barriers.recordCommands(m_cmd);
|
m_barriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
auto srcSubresourceRange = vk::makeSubresourceRange(srcSubresource);
|
auto srcSubresourceRange = vk::makeSubresourceRange(srcSubresource);
|
||||||
@ -2225,7 +2223,6 @@ namespace dxvk {
|
|||||||
const Rc<DxvkImage>& srcImage,
|
const Rc<DxvkImage>& srcImage,
|
||||||
const VkImageSubresourceLayers& srcSubresources,
|
const VkImageSubresourceLayers& srcSubresources,
|
||||||
VkFormat format) {
|
VkFormat format) {
|
||||||
this->unbindGraphicsPipeline();
|
|
||||||
m_barriers.recordCommands(m_cmd);
|
m_barriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
// Create image views covering the requested subresourcs
|
// Create image views covering the requested subresourcs
|
||||||
@ -2361,6 +2358,7 @@ namespace dxvk {
|
|||||||
m_queries.endQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
m_queries.endQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
this->renderPassUnbindFramebuffer();
|
this->renderPassUnbindFramebuffer();
|
||||||
|
this->unbindGraphicsPipeline();
|
||||||
|
|
||||||
m_flags.clr(DxvkContextFlag::GpDirtyXfbCounters);
|
m_flags.clr(DxvkContextFlag::GpDirtyXfbCounters);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user