panfrost: Identify fragment_extra flags
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sat, 9 Mar 2019 00:45:23 +0000 (00:45 +0000)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Tue, 12 Mar 2019 02:37:42 +0000 (02:37 +0000)
commit587ad37e72d2a343b82a0c62c41c869d6825e14d
treecedcbf722a390c43cf592dc2f4b67d7f9c66f0a0
parente57ea53acf14ef8285e713f279b6c61d6b07a35d
panfrost: Identify fragment_extra flags

The fragment_extra structure contains additional fields extending the
MRT framebuffer descriptor, snuck in between the main framebuffer
descriptor and the render targets. Its fields include those related to
transaction elimination and depth/stencil buffers. This patch identifies
the flags field (previously just "unk" with some magic values) as well
as identifying some (but not all) flags set by the driver.

The process of identifying flags brought a bug to light where
transaction elimination (checksumming) could not be enabled unless AFBC
was in-use. This issue is now resolved.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
src/gallium/drivers/panfrost/include/panfrost-job.h
src/gallium/drivers/panfrost/pan_context.c
src/gallium/drivers/panfrost/pandecode/decode.c