mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-21 17:38:08 +02:00
pvr: do not setup deferred RTA clear for active render targets
Deferred RTA clear will happen after the current graphics subcommand is executed, which may override rendered image in the graphics subcommand. In addition, the active render targets do not need "emulated" clear -- they can be really cleared by drawing rectangles. Skip set up deferred RTA clear for active render target layers, and continue to do immediate clear for these layers. Fixes a few dynamic rendering random CTS tests, but the issue should also exist in legacy renderpasses RTA clears. Fixes:95820584d0("pvr: Add deferred RTA clears for cores without gs_rta_support.") Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn> Reviewed-by: Luigi Santivetti <luigi.santivetti@imgtec.com> (cherry picked from commit43b22a477c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41540>
This commit is contained in:
parent
70c5654789
commit
b7a94f8b3d
3 changed files with 9 additions and 10 deletions
|
|
@ -6194,7 +6194,7 @@
|
|||
"description": "pvr: do not setup deferred RTA clear for active render targets",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "95820584d06e067766283ccb76c33a75c383a203",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed29,Fail
|
|||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed3_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed3,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed30_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed30,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed31_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed31,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed32_multiview,Fail
|
||||
|
|
@ -105,7 +104,6 @@ dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed39,Fail
|
|||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed4_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed4,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed40_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed40,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed41_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed41,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed42_multiview,Fail
|
||||
|
|
@ -131,7 +129,6 @@ dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed50,Fail
|
|||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed51_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed51,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed52_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed52,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed53_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed53,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed54_multiview,Fail
|
||||
|
|
@ -194,13 +191,10 @@ dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed8,Fail
|
|||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed80_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed80,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed81_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed81,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed82_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed82,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed83_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed83,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed84_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed84,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed85_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed85,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed86_multiview,Fail
|
||||
|
|
@ -220,7 +214,6 @@ dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed91,Fail
|
|||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed92_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed92,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed93_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed93,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed94_multiview,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed94,Fail
|
||||
dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed95_multiview,Fail
|
||||
|
|
|
|||
|
|
@ -1902,8 +1902,14 @@ static VkResult pvr_add_deferred_rta_clear(struct pvr_cmd_buffer *cmd_buffer,
|
|||
image = vk_to_pvr_image(image_view->vk.image);
|
||||
|
||||
for (uint32_t i = 0; i < rect->layerCount; i++) {
|
||||
struct pvr_transfer_cmd *transfer_cmd =
|
||||
pvr_transfer_cmd_alloc(cmd_buffer);
|
||||
struct pvr_transfer_cmd *transfer_cmd;
|
||||
uint32_t rt_id = rect->baseArrayLayer + i;
|
||||
|
||||
/* Do not defer the clear of active render target */
|
||||
if (hw_render->view_mask & (1 << rt_id))
|
||||
continue;
|
||||
|
||||
transfer_cmd = pvr_transfer_cmd_alloc(cmd_buffer);
|
||||
|
||||
list_addtail(&transfer_cmd->link, &cmd_buffer->deferred_clears);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue