mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 13:10:10 +01:00
panfrost: Add checksum fields to SFBD descriptor
During tests on T720, these fields were discovered. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
bc80900b6c
commit
23fe7cd2d6
3 changed files with 22 additions and 1 deletions
|
|
@ -147,5 +147,17 @@ panfrost_sfbd_fragment(struct panfrost_batch *batch, bool has_draws)
|
|||
if (batch->requirements & PAN_REQ_MSAA)
|
||||
fb.format |= MALI_FRAMEBUFFER_MSAA_A | MALI_FRAMEBUFFER_MSAA_B;
|
||||
|
||||
struct pipe_surface *surf = batch->key.cbufs[0];
|
||||
struct panfrost_resource *rsrc = pan_resource(surf->texture);
|
||||
struct panfrost_bo *bo = rsrc->bo;
|
||||
|
||||
if (rsrc->checksummed) {
|
||||
unsigned level = surf->u.tex.level;
|
||||
struct panfrost_slice *slice = &rsrc->slices[level];
|
||||
|
||||
fb.checksum_stride = slice->checksum_stride;
|
||||
fb.checksum = bo->gpu + slice->checksum_offset;
|
||||
}
|
||||
|
||||
return panfrost_upload_transient(batch, &fb, sizeof(fb)) | MALI_SFBD;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1447,7 +1447,10 @@ struct mali_single_framebuffer {
|
|||
u16 width;
|
||||
u16 height;
|
||||
|
||||
u32 zero3[8];
|
||||
u32 zero3[4];
|
||||
mali_ptr checksum;
|
||||
u32 checksum_stride;
|
||||
u32 zero5;
|
||||
|
||||
/* By default, the framebuffer is upside down from OpenGL's
|
||||
* perspective. Set framebuffer to the end and negate the stride to
|
||||
|
|
|
|||
|
|
@ -660,6 +660,11 @@ pandecode_sfbd(uint64_t gpu_va, int job_no, bool is_fragment)
|
|||
pandecode_prop("width = MALI_POSITIVE(%" PRId16 ")", info.width);
|
||||
pandecode_prop("height = MALI_POSITIVE(%" PRId16 ")", info.height);
|
||||
|
||||
MEMORY_PROP(s, checksum);
|
||||
|
||||
if (s->checksum_stride)
|
||||
pandecode_prop("checksum_stride = %d", s->checksum_stride);
|
||||
|
||||
MEMORY_PROP(s, framebuffer);
|
||||
pandecode_prop("stride = %d", s->stride);
|
||||
|
||||
|
|
@ -709,6 +714,7 @@ pandecode_sfbd(uint64_t gpu_va, int job_no, bool is_fragment)
|
|||
pandecode_prop("zero1 = 0x%" PRIx64, s->zero1);
|
||||
pandecode_prop("zero2 = 0x%" PRIx32, s->zero2);
|
||||
pandecode_prop("zero4 = 0x%" PRIx32, s->zero4);
|
||||
pandecode_prop("zero5 = 0x%" PRIx32, s->zero4);
|
||||
|
||||
printf(".zero3 = {");
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue