For the series:

Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>

On 11.10.2016 17:00, Marek Olšák wrote:
From: Marek Olšák <marek.ol...@amd.com>

---
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index c0e810c..2b86827 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -30,20 +30,22 @@
  *      Marek Olšák <mar...@gmail.com>
  */

 #include "amdgpu_cs.h"
 #include "os/os_time.h"
 #include <stdio.h>
 #include <amdgpu_drm.h>

 #include "amd/common/sid.h"

+DEBUG_GET_ONCE_BOOL_OPTION(noop, "RADEON_NOOP", false)
+
 /* FENCES */

 static struct pipe_fence_handle *
 amdgpu_fence_create(struct amdgpu_ctx *ctx, unsigned ip_type,
                     unsigned ip_instance, unsigned ring)
 {
    struct amdgpu_fence *fence = CALLOC_STRUCT(amdgpu_fence);

    fence->reference.count = 1;
    fence->ctx = ctx;
@@ -136,20 +138,23 @@ static bool amdgpu_fence_wait_rel_timeout(struct 
radeon_winsys *rws,
 {
    return amdgpu_fence_wait(fence, timeout, false);
 }

 static struct pipe_fence_handle *
 amdgpu_cs_get_next_fence(struct radeon_winsys_cs *rcs)
 {
    struct amdgpu_cs *cs = amdgpu_cs(rcs);
    struct pipe_fence_handle *fence = NULL;

+   if (debug_get_option_noop())
+      return NULL;
+
    if (cs->next_fence) {
       amdgpu_fence_reference(&fence, cs->next_fence);
       return fence;
    }

    fence = amdgpu_fence_create(cs->ctx,
                                cs->csc->request.ip_type,
                                cs->csc->request.ip_instance,
                                cs->csc->request.ring);
    if (!fence)
@@ -1062,22 +1067,20 @@ cleanup:
 void amdgpu_cs_sync_flush(struct radeon_winsys_cs *rcs)
 {
    struct amdgpu_cs *cs = amdgpu_cs(rcs);
    struct amdgpu_winsys *ws = cs->ctx->ws;

    /* Wait for any pending ioctl of this CS to complete. */
    if (util_queue_is_initialized(&ws->cs_queue))
       util_queue_job_wait(&cs->flush_completed);
 }

-DEBUG_GET_ONCE_BOOL_OPTION(noop, "RADEON_NOOP", false)
-
 static int amdgpu_cs_flush(struct radeon_winsys_cs *rcs,
                            unsigned flags,
                            struct pipe_fence_handle **fence)
 {
    struct amdgpu_cs *cs = amdgpu_cs(rcs);
    struct amdgpu_winsys *ws = cs->ctx->ws;
    int error_code = 0;

    rcs->current.max_dw += amdgpu_cs_epilog_dws(cs->ring_type);


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to