mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-15 22:58:05 +02:00
pvr: stop to derive rt datasets based on geometry_terminate
As we're going to kick frag for suspending rendering passes to mitigate frag job inconsistency between suspending rendering passes and resuming render passes, deriving render target datasets based on geometry_terminate property will be incorrect. Stop to use geometry_terminate to decide whether to remember render target datasets, instead use is_suspend directly. In addition, is_resume is now also used instead of checking whether suspended render taget datasets is available. This will help when either the suspending render pass or the resuming render pass have multiple graphics sub_cmds. Backport-to: 26.0 Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn> Reviewed-by: Nick Hamilton <nick.hamilton@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41002>
This commit is contained in:
parent
d7f79b34c7
commit
7e56e4a030
1 changed files with 5 additions and 5 deletions
|
|
@ -766,14 +766,14 @@ static VkResult pvr_process_cmd_buffer(struct pvr_device *device,
|
|||
break;
|
||||
}
|
||||
|
||||
if (*suspended_rts) {
|
||||
if (sub_cmd->is_resume) {
|
||||
sub_cmd->gfx.job.view_state.rt_datasets = *suspended_rts;
|
||||
}
|
||||
|
||||
if (sub_cmd->gfx.job.geometry_terminate)
|
||||
*suspended_rts = NULL;
|
||||
|
||||
} else if (!sub_cmd->gfx.job.geometry_terminate) {
|
||||
if (sub_cmd->is_suspend) {
|
||||
*suspended_rts = sub_cmd->gfx.job.view_state.rt_datasets;
|
||||
} else {
|
||||
*suspended_rts = NULL;
|
||||
}
|
||||
|
||||
assert(sub_cmd->gfx.job.view_state.rt_datasets);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue