[Freedreno] [PATCH] freedreno/a3xx: execute dummy draw call only on a320
sheffmail at mail.ru
sheffmail at mail.ru
Fri Jul 18 07:55:06 PDT 2014
From: Stanislav Vorobiov <sheffmail at mail.ru>
this dummy draw call causes GPU stall on a330+ with kgsl.
when kgsl comes out of SLUMBER state it executes OpenCL
power-on fixup code, which is in adreno_a3xx_pwron_fixup_init,
executing dummy draw call right after this fixup code causes
GPU stall
---
src/gallium/drivers/freedreno/a3xx/fd3_emit.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_emit.c b/src/gallium/drivers/freedreno/a3xx/fd3_emit.c
index f77c722..82e6ca0 100644
--- a/src/gallium/drivers/freedreno/a3xx/fd3_emit.c
+++ b/src/gallium/drivers/freedreno/a3xx/fd3_emit.c
@@ -673,12 +673,13 @@ fd3_emit_restore(struct fd_context *ctx)
fd_event_write(ctx, ring, CACHE_FLUSH);
- /* probably only really needed on a320: */
- OUT_PKT3(ring, CP_DRAW_INDX, 3);
- OUT_RING(ring, 0x00000000);
- OUT_RING(ring, DRAW(1, DI_SRC_SEL_AUTO_INDEX,
- INDEX_SIZE_IGN, IGNORE_VISIBILITY));
- OUT_RING(ring, 0); /* NumIndices */
+ if (ctx->screen->gpu_id == 320) {
+ OUT_PKT3(ring, CP_DRAW_INDX, 3);
+ OUT_RING(ring, 0x00000000);
+ OUT_RING(ring, DRAW(1, DI_SRC_SEL_AUTO_INDEX,
+ INDEX_SIZE_IGN, IGNORE_VISIBILITY));
+ OUT_RING(ring, 0); /* NumIndices */
+ }
OUT_PKT3(ring, CP_NOP, 4);
OUT_RING(ring, 0x00000000);
--
1.7.9.5
More information about the Freedreno
mailing list