The overhead does seem to matter when you have a high enough # of draw
calls that effect few bins/pixels, because these writes would happen
unconditionally (ie. not part of a state-group).
Possibly we could keep these if we moved them into a state-group so the
register writes would be no-ops on bins with no geometry. OTOH I
usually end up adding in a WFI when using them scratch reg values to
track down a crash. (So add a WFI to mitigate the annoyance of needing
to use a debug build to get scratch regs to locate the position of a
crash/hang in the cmdstream.)
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3435>
{
extern unsigned marker_cnt;
unsigned reg = REG_A6XX_CP_SCRATCH_REG(scratch_idx);
- OUT_PKT4(ring, reg, 1);
- OUT_RING(ring, ++marker_cnt);
+#ifdef DEBUG
+# define __EMIT_MARKER 1
+#else
+# define __EMIT_MARKER 0
+#endif
+ if (__EMIT_MARKER) {
+ OUT_WFI5(ring);
+ OUT_PKT4(ring, reg, 1);
+ OUT_RING(ring, ++marker_cnt);
+ }
}
#endif /* FD6_CONTEXT_H_ */