asahi: Introduce batch->feedback to disable compression in PBE

Used for RTs that have feedback with in-place decompression.

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32081>
This commit is contained in:
Asahi Lina 2024-10-31 04:04:01 +09:00 committed by Marge Bot
parent 9288a3a583
commit f04387a415
3 changed files with 5 additions and 2 deletions

View file

@ -128,6 +128,7 @@ agx_batch_init(struct agx_context *ctx,
batch->draw = 0;
batch->load = 0;
batch->resolve = 0;
batch->feedback = 0;
memset(batch->uploaded_clear_color, 0, sizeof(batch->uploaded_clear_color));
batch->clear_depth = 0;
batch->clear_stencil = 0;

View file

@ -3256,7 +3256,9 @@ agx_build_bg_eot(struct agx_batch *batch, bool store, bool partial_render)
/* The tilebuffer is already in sRGB space if needed. Do not convert */
view.format = util_format_linear(view.format);
agx_batch_upload_pbe(batch, pbe.cpu, &view, true, true, false, false);
bool no_compress = batch->feedback & (PIPE_CLEAR_COLOR0 << rt);
agx_batch_upload_pbe(batch, pbe.cpu, &view, true, true, false,
no_compress);
agx_usc_pack(&b, TEXTURE, cfg) {
cfg.start = rt;

View file

@ -394,7 +394,7 @@ struct agx_batch {
struct agx_tilebuffer_layout tilebuffer_layout;
/* PIPE_CLEAR_* bitmask */
uint32_t clear, draw, load, resolve;
uint32_t clear, draw, load, resolve, feedback;
bool initialized;
uint64_t uploaded_clear_color[PIPE_MAX_COLOR_BUFS];