[Mesa-dev] [PATCH 2/2] winsys/amdgpu: disable CE preamble until the kernel is fixed

Marek Olšák maraeo at gmail.com
Thu May 26 21:51:47 UTC 2016


From: Marek Olšák <marek.olsak at amd.com>

SDMA submission somehow interacts with the skipping CE preamble logic.
This is a workaround for current kernels which have the bug.

Sadly, I can't see what's wrong with the kernel driver. The CE preamble
handling there looks good to me.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95545
---
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index e949874..0c88fca 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -932,7 +932,6 @@ void amdgpu_cs_init_functions(struct amdgpu_winsys *ws)
    ws->base.ctx_query_reset_status = amdgpu_ctx_query_reset_status;
    ws->base.cs_create = amdgpu_cs_create;
    ws->base.cs_add_const_ib = amdgpu_cs_add_const_ib;
-   ws->base.cs_add_const_preamble_ib = amdgpu_cs_add_const_preamble_ib;
    ws->base.cs_destroy = amdgpu_cs_destroy;
    ws->base.cs_add_buffer = amdgpu_cs_add_buffer;
    ws->base.cs_lookup_buffer = amdgpu_cs_lookup_buffer;
@@ -945,4 +944,10 @@ void amdgpu_cs_init_functions(struct amdgpu_winsys *ws)
    ws->base.cs_sync_flush = amdgpu_cs_sync_flush;
    ws->base.fence_wait = amdgpu_fence_wait_rel_timeout;
    ws->base.fence_reference = amdgpu_fence_reference;
+
+   /* TODO: enable this after the kernel is fixed.
+    * apitrace: https://bugs.freedesktop.org/show_bug.cgi?id=95545
+    */
+   if (debug_get_bool_option("CE_PREAMBLE", false))
+      ws->base.cs_add_const_preamble_ib = amdgpu_cs_add_const_preamble_ib;
 }
-- 
2.7.4



More information about the mesa-dev mailing list