anv: Allocate surface states per-subpass

Instead of allocating surface states for attachments in BeginRenderPass,
we now allocate them in begin_subpass.  Also, since we're zeroing
things, we can be a bit cleaner about or implementation and just fill
out all those passes for which we have allocated surface states.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4393>
This commit is contained in:
Jason Ekstrand
2020-03-24 19:24:54 -05:00
committed by Marge Bot
parent a3d185d091
commit 814dc66935
2 changed files with 140 additions and 121 deletions

View File

@@ -2748,11 +2748,11 @@ struct anv_cmd_state {
* flat array. For depth-stencil attachments, the surface state is simply
* left blank.
*/
struct anv_state render_pass_states;
struct anv_state attachment_states;
/**
* A null surface state of the right size to match the framebuffer. This
* is one of the states in render_pass_states.
* is one of the states in attachment_states.
*/
struct anv_state null_surface_state;
};