panfrost: Backport driver to Mali T600/T700
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sun, 10 Feb 2019 20:06:21 +0000 (20:06 +0000)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Fri, 15 Feb 2019 07:22:42 +0000 (07:22 +0000)
commit97aa05470a7a95983e365ef57d7af9425f4642a8
treef672f6d991594a185328d29e00747a2d4721f870
parentf96e871c26dbc2c9d8c68ee87a46853737492320
panfrost: Backport driver to Mali T600/T700

There are a few differenes between Mali T860 (Panfrost's primary
reference target) and the older Midgard generations (T600/T700):

 - Miscellaneous different magic numbers. It's not clear what these
numbers mean on either the old or new configurations yet.

 - Errata fixes. T800 is the final Midgard generation and presumably the
least buggy. Older Midgard has some extra hardware errata we have to
workaround.

- SFBD vs MFBD split. Essentially, older Midgard use a Single
FrameBuffer Descriptor (SFBD), which corresponds to single
render-target rendering. Newer Midgard (T760+) use a Multiple
FrameBuffer Descriptor (MFBD), allowing multiple RTs. On ES 2.0, these
descriptors serve the same function, but we implement both, depending on
the version of the hardware.

- CPU bitness. 32-bit systems generally use 32-bit GPU descriptors, and
vice versa for 64-bit. Our target T760 systems are 32-bit whereas our
target T860 systems are 64-bit. More work is needed in this area.

This patch fixes support in these areas for supporting older Midgard
hardware. It is tested on Mali T760 and Mali T860.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
src/gallium/drivers/panfrost/include/panfrost-job.h
src/gallium/drivers/panfrost/meson.build
src/gallium/drivers/panfrost/pan_assemble.c
src/gallium/drivers/panfrost/pan_blending.c
src/gallium/drivers/panfrost/pan_context.c
src/gallium/drivers/panfrost/pan_context.h