util: remove LIST_IS_EMPTY macro
[mesa.git] / src / gallium / drivers / freedreno / freedreno_query_hw.c
index 2ebf8ade585badb92cd92d932b5dc6307e832074..f1d22328df8e9f4aed42539779960dabf708c5a8 100644 (file)
@@ -1,5 +1,3 @@
-/* -*- mode: C; c-file-style: "k&r"; tab-width 4; indent-tabs-mode: t; -*- */
-
 /*
  * Copyright (C) 2014 Rob Clark <robclark@freedesktop.org>
  *
@@ -134,10 +132,10 @@ fd_hw_destroy_query(struct fd_context *ctx, struct fd_query *q)
        free(hq);
 }
 
-static boolean
+static bool
 fd_hw_begin_query(struct fd_context *ctx, struct fd_query *q)
 {
-       struct fd_batch *batch = ctx->batch;
+       struct fd_batch *batch = fd_context_batch(ctx);
        struct fd_hw_query *hq = fd_hw_query(q);
 
        DBG("%p: active=%d", q, q->active);
@@ -149,7 +147,7 @@ fd_hw_begin_query(struct fd_context *ctx, struct fd_query *q)
                resume_query(batch, hq, batch->draw);
 
        /* add to active list: */
-       assert(list_empty(&hq->list));
+       assert(list_is_empty(&hq->list));
        list_addtail(&hq->list, &ctx->hw_active_queries);
 
        return true;
@@ -158,7 +156,7 @@ fd_hw_begin_query(struct fd_context *ctx, struct fd_query *q)
 static void
 fd_hw_end_query(struct fd_context *ctx, struct fd_query *q)
 {
-       struct fd_batch *batch = ctx->batch;
+       struct fd_batch *batch = fd_context_batch(ctx);
        struct fd_hw_query *hq = fd_hw_query(q);
 
        DBG("%p: active=%d", q, q->active);
@@ -176,9 +174,9 @@ static void * sampptr(struct fd_hw_sample *samp, uint32_t n, void *ptr)
        return ((char *)ptr) + (samp->tile_stride * n) + samp->offset;
 }
 
-static boolean
+static bool
 fd_hw_get_query_result(struct fd_context *ctx, struct fd_query *q,
-               boolean wait, union pipe_query_result *result)
+               bool wait, union pipe_query_result *result)
 {
        struct fd_hw_query *hq = fd_hw_query(q);
        const struct fd_hw_sample_provider *p = hq->provider;
@@ -186,10 +184,10 @@ fd_hw_get_query_result(struct fd_context *ctx, struct fd_query *q,
 
        DBG("%p: wait=%d, active=%d", q, wait, q->active);
 
-       if (LIST_IS_EMPTY(&hq->periods))
+       if (list_is_empty(&hq->periods))
                return true;
 
-       assert(LIST_IS_EMPTY(&hq->list));
+       assert(list_is_empty(&hq->list));
        assert(!hq->period);
 
        /* if !wait, then check the last sample (the one most likely to
@@ -218,7 +216,7 @@ fd_hw_get_query_result(struct fd_context *ctx, struct fd_query *q,
                if (!rsc->bo)
                        return false;
 
-               ret = fd_bo_cpu_prep(rsc->bo, ctx->screen->pipe,
+               ret = fd_bo_cpu_prep(rsc->bo, ctx->pipe,
                                DRM_FREEDRENO_PREP_READ | DRM_FREEDRENO_PREP_NOSYNC);
                if (ret)
                        return false;
@@ -245,7 +243,7 @@ fd_hw_get_query_result(struct fd_context *ctx, struct fd_query *q,
                if (!rsc->bo)
                        continue;
 
-               fd_bo_cpu_prep(rsc->bo, ctx->screen->pipe, DRM_FREEDRENO_PREP_READ);
+               fd_bo_cpu_prep(rsc->bo, ctx->pipe, DRM_FREEDRENO_PREP_READ);
 
                void *ptr = fd_bo_map(rsc->bo);
 
@@ -268,7 +266,7 @@ static const struct fd_query_funcs hw_query_funcs = {
 };
 
 struct fd_query *
-fd_hw_create_query(struct fd_context *ctx, unsigned query_type)
+fd_hw_create_query(struct fd_context *ctx, unsigned query_type, unsigned index)
 {
        struct fd_hw_query *hq;
        struct fd_query *q;
@@ -291,6 +289,7 @@ fd_hw_create_query(struct fd_context *ctx, unsigned query_type)
        q = &hq->base;
        q->funcs = &hw_query_funcs;
        q->type = query_type;
+       q->index = index;
 
        return q;
 }
@@ -301,7 +300,7 @@ fd_hw_sample_init(struct fd_batch *batch, uint32_t size)
        struct fd_hw_sample *samp = slab_alloc_st(&batch->ctx->sample_pool);
        pipe_reference_init(&samp->reference, 1);
        samp->size = size;
-       debug_assert(util_is_power_of_two(size));
+       debug_assert(util_is_power_of_two_or_zero(size));
        batch->next_sample_offset = align(batch->next_sample_offset, size);
        samp->offset = batch->next_sample_offset;
        /* NOTE: slab_alloc_st() does not zero out the buffer: */
@@ -380,8 +379,7 @@ fd_hw_query_prepare_tile(struct fd_batch *batch, uint32_t n,
 }
 
 void
-fd_hw_query_set_stage(struct fd_batch *batch, struct fd_ringbuffer *ring,
-               enum fd_render_stage stage)
+fd_hw_query_set_stage(struct fd_batch *batch, enum fd_render_stage stage)
 {
        if (stage != batch->stage) {
                struct fd_hw_query *hq;
@@ -390,9 +388,9 @@ fd_hw_query_set_stage(struct fd_batch *batch, struct fd_ringbuffer *ring,
                        bool now_active = is_active(hq, stage);
 
                        if (now_active && !was_active)
-                               resume_query(batch, hq, ring);
+                               resume_query(batch, hq, batch->draw);
                        else if (was_active && !now_active)
-                               pause_query(batch, hq, ring);
+                               pause_query(batch, hq, batch->draw);
                }
        }
        clear_sample_cache(batch);