Midgard supports (at least) 3 broad classes of resource layouts: * Linear: slow, but universally supported, uncompressed * Tiled: good for cache efficiency, uncompressed * Arm Framebuffer Compression (AFBC): tiled and compressed
We can't render into tiled buffers (for technical reasons), and we can't manipulate AFBC from software (for practical reasons). But we can do a little better at formalizing the distinctions between these formats and implementing some edge cases. For instance, this series fixes support for linear FBOs (previously, only AFBC was supported). More work is needed to let layouts switch seemlessly to handle edge cases, but this series is already a nontrivial improvement (and it *is* getting long). Alyssa Rosenzweig (12): panfrost: Cleanup needless if in create_bo panfrost: Combine has_afbc/tiled in layout enum panfrost: Delay color buffer setup panfrost: Cleanup zsbuf emit in fragment job panfrost: Determine framebuffer format bits late panfrost: Refactor layout selection (BO creation) panfrost: Allocate dedicated slab for linear BOs panfrost: Support linear depth textures panfrost: Support linear depth buffers panfrost: Document "depth buffer writeback" bit panfrost: Identify fragment_extra flags panfrost: Make hacks a little more obvious .../drivers/panfrost/include/panfrost-job.h | 16 +- src/gallium/drivers/panfrost/pan_context.c | 267 +++++++++++------- src/gallium/drivers/panfrost/pan_resource.c | 154 ++++++---- src/gallium/drivers/panfrost/pan_resource.h | 20 +- .../drivers/panfrost/pandecode/decode.c | 18 +- 5 files changed, 311 insertions(+), 164 deletions(-) -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev