mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
asahi: fix dirty tracking fail with point sprites
fixes arb_point_sprite-checkerboard Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614>
This commit is contained in:
parent
683dac24b2
commit
c73d7d042c
1 changed files with 10 additions and 7 deletions
|
|
@ -2228,9 +2228,10 @@ agx_update_fs(struct agx_batch *batch)
|
|||
* rast: RS
|
||||
* blend: BLEND
|
||||
* sample_mask: SAMPLE_MASK
|
||||
* reduced_prim: PRIM
|
||||
*/
|
||||
if (!(ctx->dirty & (AGX_DIRTY_FS_PROG | AGX_DIRTY_RS | AGX_DIRTY_BLEND |
|
||||
AGX_DIRTY_SAMPLE_MASK)))
|
||||
AGX_DIRTY_SAMPLE_MASK | AGX_DIRTY_PRIM)))
|
||||
return false;
|
||||
|
||||
unsigned nr_samples = util_framebuffer_get_num_samples(&batch->key);
|
||||
|
|
@ -3808,6 +3809,14 @@ agx_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,
|
|||
struct agx_compiled_shader *vs = ctx->vs;
|
||||
batch->uniforms.layer_id_written = vs->info.writes_layer_viewport ? ~0 : 0;
|
||||
|
||||
/* Dirty track the reduced prim: lines vs points vs triangles. Happens before
|
||||
* agx_update_fs, which specializes based on primitive.
|
||||
*/
|
||||
enum mesa_prim reduced_prim = u_reduced_prim(info->mode);
|
||||
if (reduced_prim != batch->reduced_prim)
|
||||
ctx->dirty |= AGX_DIRTY_PRIM;
|
||||
batch->reduced_prim = reduced_prim;
|
||||
|
||||
if (agx_update_fs(batch)) {
|
||||
ctx->dirty |= AGX_DIRTY_FS | AGX_DIRTY_FS_PROG;
|
||||
ctx->stage[PIPE_SHADER_FRAGMENT].dirty = ~0;
|
||||
|
|
@ -3877,12 +3886,6 @@ agx_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,
|
|||
return;
|
||||
}
|
||||
|
||||
/* Dirty track the reduced prim: lines vs points vs triangles */
|
||||
enum mesa_prim reduced_prim = u_reduced_prim(mode);
|
||||
if (reduced_prim != batch->reduced_prim)
|
||||
ctx->dirty |= AGX_DIRTY_PRIM;
|
||||
batch->reduced_prim = reduced_prim;
|
||||
|
||||
/* Update batch masks based on current state */
|
||||
if (ctx->dirty & AGX_DIRTY_BLEND) {
|
||||
/* TODO: Any point to tracking load? */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue