diff --git a/src/gallium/drivers/asahi/agx_state.h b/src/gallium/drivers/asahi/agx_state.h index fb5efed0eb0..3bdff57d087 100644 --- a/src/gallium/drivers/asahi/agx_state.h +++ b/src/gallium/drivers/asahi/agx_state.h @@ -92,9 +92,30 @@ struct agx_streamout { enum agx_sysval_table { AGX_SYSVAL_TABLE_ROOT, AGX_SYSVAL_TABLE_GRID, + AGX_SYSVAL_TABLE_VS, + AGX_SYSVAL_TABLE_TCS, + AGX_SYSVAL_TABLE_TES, + AGX_SYSVAL_TABLE_GS, + AGX_SYSVAL_TABLE_FS, + AGX_SYSVAL_TABLE_CS, AGX_NUM_SYSVAL_TABLES }; +#define AGX_SYSVAL_STAGE(stage) (AGX_SYSVAL_TABLE_VS + (stage)) + +static_assert(AGX_SYSVAL_STAGE(PIPE_SHADER_VERTEX) == AGX_SYSVAL_TABLE_VS, + "fixed enum orderings"); +static_assert(AGX_SYSVAL_STAGE(PIPE_SHADER_TESS_CTRL) == AGX_SYSVAL_TABLE_TCS, + "fixed enum orderings"); +static_assert(AGX_SYSVAL_STAGE(PIPE_SHADER_TESS_EVAL) == AGX_SYSVAL_TABLE_TES, + "fixed enum orderings"); +static_assert(AGX_SYSVAL_STAGE(PIPE_SHADER_GEOMETRY) == AGX_SYSVAL_TABLE_GS, + "fixed enum orderings"); +static_assert(AGX_SYSVAL_STAGE(PIPE_SHADER_FRAGMENT) == AGX_SYSVAL_TABLE_FS, + "fixed enum orderings"); +static_assert(AGX_SYSVAL_STAGE(PIPE_SHADER_COMPUTE) == AGX_SYSVAL_TABLE_CS, + "fixed enum orderings"); + /* Root system value table */ struct PACKED agx_draw_uniforms { /* Pointer to binding table for texture descriptor, or 0 if none. This must