mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
intel/blorp: Ambiguate after CCS resolves on gfx7-8
ISL's state-machine of CCS_D describes full resolves as leaving the aux
buffer in the pass-through state. Hardware doesn't behave this way on
gfx8 however. On that platform, full resolves transition the aux buffer
to the resolved state. This was verified by dumping the CCS before and
after a full resolve on BDW (gfx7 is simply assumed to behave the same).
Ambiguate after resolving to match driver expectations.
Prevents iris from failing piglit's fcc-write-after-clear on BDW with a
future patch which relies on fast-clear encodings being removed after a
resolve. The avoided failure is:
Testing implicit read of partial block UNORM -> SNORM
Probe color at (0,1,0)
Expected: 1.000000 1.000000 1.000000 1.000000
Observed: 0.000000 0.000000 0.000000 0.000000
Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23676>
This commit is contained in:
parent
8cbf730145
commit
1d12b29b3f
1 changed files with 13 additions and 0 deletions
|
|
@ -1306,6 +1306,19 @@ blorp_ccs_resolve(struct blorp_batch *batch,
|
|||
return;
|
||||
|
||||
batch->blorp->exec(batch, ¶ms);
|
||||
|
||||
if (batch->blorp->isl_dev->info->ver <= 8) {
|
||||
assert(surf->aux_usage == ISL_AUX_USAGE_CCS_D);
|
||||
assert(resolve_op == ISL_AUX_OP_FULL_RESOLVE);
|
||||
/* ISL's state-machine of CCS_D describes full resolves as leaving the
|
||||
* aux buffer in the pass-through state. Hardware doesn't behave this
|
||||
* way on Broadwell however. On that platform, full resolves transition
|
||||
* the aux buffer to the resolved state. We assume that gfx7 behaves the
|
||||
* same. Use an ambiguate to match driver expectations.
|
||||
*/
|
||||
for (int l = 0; l < num_layers; l++)
|
||||
blorp_ccs_ambiguate(batch, surf, level, start_layer + l);
|
||||
}
|
||||
}
|
||||
|
||||
static nir_ssa_def *
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue