mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
anv/blorp: sample input attachments with resolves on BDW
On Broadwell we still need to do a resolve between the subpass that writes and the subpass that reads when there is a self-dependency because HW could not see fast-clears and works on the render cache as if there was regular non-fast-clear surface. Fixes 16 tests on BDW: dEQP-VK.renderpass.formats.*.input.clear.store.self_dep* Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
fd0f539e60
commit
1c934bc71b
1 changed files with 11 additions and 0 deletions
|
|
@ -1457,6 +1457,7 @@ ccs_resolve_attachment(struct anv_cmd_buffer *cmd_buffer,
|
|||
* still hot in the cache.
|
||||
*/
|
||||
bool found_draw = false;
|
||||
bool self_dep = false;
|
||||
enum anv_subpass_usage usage = 0;
|
||||
for (uint32_t s = subpass_idx + 1; s < pass->subpass_count; s++) {
|
||||
usage |= pass->attachments[att].subpass_usage[s];
|
||||
|
|
@ -1466,6 +1467,8 @@ ccs_resolve_attachment(struct anv_cmd_buffer *cmd_buffer,
|
|||
* wait to resolve until then.
|
||||
*/
|
||||
found_draw = true;
|
||||
if (pass->attachments[att].subpass_usage[s] & ANV_SUBPASS_USAGE_INPUT)
|
||||
self_dep = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1524,6 +1527,14 @@ ccs_resolve_attachment(struct anv_cmd_buffer *cmd_buffer,
|
|||
* binding this surface to Sampler."
|
||||
*/
|
||||
resolve_op = BLORP_FAST_CLEAR_OP_RESOLVE_PARTIAL;
|
||||
} else if (cmd_buffer->device->info.gen == 8 && self_dep &&
|
||||
att_state->input_aux_usage == ISL_AUX_USAGE_CCS_D) {
|
||||
/* On Broadwell we still need to do resolves when there is a
|
||||
* self-dependency because HW could not see fast-clears and works
|
||||
* on the render cache as if there was regular non-fast-clear surface.
|
||||
* To avoid any inconsistency, we force the resolve.
|
||||
*/
|
||||
resolve_op = BLORP_FAST_CLEAR_OP_RESOLVE_FULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue