asahi: allow vertex/geom/tess side effects

seems to work ok now.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27616>
This commit is contained in:
Alyssa Rosenzweig 2024-01-05 17:53:30 -04:00 committed by Marge Bot
parent de786a1c5c
commit de31b28053
2 changed files with 2 additions and 15 deletions

View file

@ -1823,12 +1823,6 @@ agx_get_shader_param(struct pipe_screen *pscreen, enum pipe_shader_type shader,
return false;
}
/* Don't allow side effects with vertex processing. The APIs don't require it
* and it may be problematic on our hardware.
*/
bool allow_side_effects =
(shader == PIPE_SHADER_FRAGMENT) || (shader == PIPE_SHADER_COMPUTE);
/* this is probably not totally correct.. but it's a start: */
switch (param) {
case PIPE_SHADER_CAP_MAX_INSTRUCTIONS:
@ -1905,10 +1899,10 @@ agx_get_shader_param(struct pipe_screen *pscreen, enum pipe_shader_type shader,
return (1 << PIPE_SHADER_IR_NIR);
case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
return allow_side_effects ? PIPE_MAX_SHADER_BUFFERS : 0;
return PIPE_MAX_SHADER_BUFFERS;
case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
return allow_side_effects ? PIPE_MAX_SHADER_IMAGES : 0;
return PIPE_MAX_SHADER_IMAGES;
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS:
case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS:

View file

@ -4970,13 +4970,6 @@ agx_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,
agx_dirty_all(ctx);
#endif
/* We don't support side effects in vertex stages (only used internally for
* transform feedback lowering), so this is trivial.
*/
if (ctx->rast->base.rasterizer_discard &&
!ctx->stage[PIPE_SHADER_GEOMETRY].shader)
return;
agx_batch_init_state(batch);
/* Dirty track the reduced prim: lines vs points vs triangles. Happens before