asahi: Introduce concept of spilled render targets
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Wed, 14 Jun 2023 21:37:04 +0000 (17:37 -0400)
committerMarge Bot <emma+marge@anholt.net>
Thu, 20 Jul 2023 15:33:28 +0000 (15:33 +0000)
commit6bc42054d118f3980c25b0ca2a94e618502e1475
tree866ecd61d6e5363f6b1e4a8e99a0d55cf9085504
parent17e10499b94bd26dbf6d09699445d1232ff664d2
asahi: Introduce concept of spilled render targets

To accommodate framebuffers which exceed tilebuffer limits, we'll need to spill
render targets to main memory. In effect, we need to emulate an immediate-mode
renderer for some render targets. This decision is made on a per-render target
basis. In our tilebuffer layout calculation, rather than asserting that all
render targets fit, introduce a notion of spilling.

This doesn't actually implement spilling -- it just pushes the assert failure
down to the users. But it's progress.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24258>
src/asahi/lib/agx_meta.c
src/asahi/lib/agx_nir_lower_tilebuffer.c
src/asahi/lib/agx_tilebuffer.c
src/asahi/lib/agx_tilebuffer.h
src/asahi/lib/tests/test-tilebuffer.cpp