Skip to content

etnaviv: Add support for multiple render targets

Christian Gmeiner requested to merge austriancoder/mesa:mrt into main

What does this MR do and why?

This MR adds support for multiple render targets (MRT).

The GPU needs all the active (non-null) render targets in a
contiguous representation. For instance, if fb->nr_cbufs is 4 but
fb->cbufs[0] and fb->cbufs[1] are null we need to program the GPU that
fb->cbufs[2] is configured via PE_COLOR_FORMAT and friends and
fb->cbufs[3] via PE_RT_CONFIG[0] and friends.

This facts adds some more tracking and deferred state updates.

The hole series was tested on a wide range of devices with ETNA_MESA_DEBUG set to no_ts, no_supertile and <empty>.

Merge request reports