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;
}
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);
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 = {");