freedreno: register usage queries
[mesa.git] / src / gallium / drivers / freedreno / a4xx / fd4_draw.c
index 840e9171b32550bc1939a176f898a37c54fec709..1c04a821299cbc2d6c4796410081d243b4cd8c47 100644 (file)
@@ -135,12 +135,17 @@ fd4_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info,
        fixup_shader_state(ctx, &emit.key);
 
        enum fd_dirty_3d_state dirty = ctx->dirty;
+       const struct ir3_shader_variant *vp = fd4_emit_get_vp(&emit);
+       const struct ir3_shader_variant *fp = fd4_emit_get_fp(&emit);
 
        /* do regular pass first, since that is more likely to fail compiling: */
 
-       if (!(fd4_emit_get_vp(&emit) && fd4_emit_get_fp(&emit)))
+       if (!vp || !fp)
                return false;
 
+       ctx->stats.vs_regs += ir3_shader_halfregs(vp);
+       ctx->stats.fs_regs += ir3_shader_halfregs(fp);
+
        emit.key.binning_pass = false;
        emit.dirty = dirty;