agx: Implement depth and stencil export

Lower FRAG_RESULT_DEPTH and FRAG_RESULT_STENCIL writes to a combnied zs_emit
instruction with a multisampling index. To be used in the following commit.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365>
This commit is contained in:
Alyssa Rosenzweig
2022-12-16 23:38:07 -05:00
committed by Marge Bot
parent 15155268de
commit 9578b47af3
8 changed files with 170 additions and 0 deletions

View File

@@ -301,6 +301,7 @@ typedef struct {
uint32_t channels;
uint32_t bfi_mask;
uint16_t pixel_offset;
uint16_t zs;
enum agx_sr sr;
enum agx_icond icond;
enum agx_fcond fcond;
@@ -806,6 +807,7 @@ void agx_compute_liveness(agx_context *ctx);
void agx_liveness_ins_update(BITSET_WORD *live, agx_instr *I);
bool agx_lower_resinfo(nir_shader *s);
bool agx_nir_lower_zs_emit(nir_shader *s);
bool agx_nir_lower_array_texture(nir_shader *s);
bool agx_nir_opt_preamble(nir_shader *s, unsigned *preamble_size);
bool agx_nir_lower_load_mask(nir_shader *shader);