mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 16:18:06 +02:00
pvr: Don't merge subpasses on framebuffer-global dependancy
When we have a framebuffer-local dependency we cannot merge
subpasses.
dEQP tests fixed:
dEQP-VK.renderpass.suballocation.attachment_allocation
.input_output.{15,23,35,61,80,93}
dEQP-VK.renderpass.suballocation.attachment_allocation
.roll.{13,31,42,47,55,59,61,98}
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25612>
This commit is contained in:
parent
1c35e495d9
commit
f1c9efc52e
1 changed files with 8 additions and 1 deletions
|
|
@ -38,6 +38,7 @@
|
|||
#include "vk_alloc.h"
|
||||
#include "vk_format.h"
|
||||
#include "vk_log.h"
|
||||
#include "vk_render_pass.h"
|
||||
|
||||
/*****************************************************************************
|
||||
PDS pre-baked program generation parameters and variables.
|
||||
|
|
@ -611,10 +612,16 @@ VkResult pvr_CreateRenderPass2(VkDevice _device,
|
|||
dep->dstSubpass != VK_SUBPASS_EXTERNAL &&
|
||||
dep->srcSubpass != dep->dstSubpass) {
|
||||
struct pvr_render_subpass *subpass = &pass->subpasses[dep->dstSubpass];
|
||||
bool is_dep_fb_local =
|
||||
vk_subpass_dependency_is_fb_local(dep,
|
||||
dep->srcStageMask,
|
||||
dep->dstStageMask);
|
||||
|
||||
subpass->dep_list[subpass->dep_count] = dep->srcSubpass;
|
||||
if (pvr_subpass_has_msaa_input_attachment(subpass, pCreateInfo))
|
||||
if (pvr_subpass_has_msaa_input_attachment(subpass, pCreateInfo) ||
|
||||
!is_dep_fb_local) {
|
||||
subpass->flush_on_dep[subpass->dep_count] = true;
|
||||
}
|
||||
|
||||
subpass->dep_count++;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue