[Mesa-dev] [PATCH 2/2] gallium/u_threaded: remove 16 bytes from tc_batch

Marek Olšák maraeo at gmail.com
Thu Jun 1 18:09:51 UTC 2017


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

All other sentinels occupy what is otherwise unused space.
---
 src/gallium/auxiliary/util/u_threaded_context.c | 2 --
 src/gallium/auxiliary/util/u_threaded_context.h | 1 -
 2 files changed, 3 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c
index 34206bf..71211e6 100644
--- a/src/gallium/auxiliary/util/u_threaded_context.c
+++ b/src/gallium/auxiliary/util/u_threaded_context.c
@@ -60,21 +60,20 @@ enum tc_call_id {
 };
 
 typedef void (*tc_execute)(struct pipe_context *pipe, union tc_payload *payload);
 
 static const tc_execute execute_func[TC_NUM_CALLS];
 
 static void
 tc_batch_check(struct tc_batch *batch)
 {
    tc_assert(batch->sentinel == TC_SENTINEL);
-   tc_assert(batch->sentinel2 == TC_SENTINEL);
    tc_assert(batch->num_total_call_slots <= TC_CALLS_PER_BATCH);
 }
 
 static void
 tc_debug_check(struct threaded_context *tc)
 {
    for (unsigned i = 0; i < TC_MAX_BATCHES; i++) {
       tc_batch_check(&tc->batch_slots[i]);
       tc_assert(tc->batch_slots[i].pipe == tc->pipe);
    }
@@ -2200,21 +2199,20 @@ threaded_context_create(struct pipe_context *pipe,
 
    /* The queue size is the number of batches "waiting". Batches are removed
     * from the queue before being executed, so keep one tc_batch slot for that
     * execution. Also, keep one unused slot for an unflushed batch.
     */
    if (!util_queue_init(&tc->queue, "gallium_drv", TC_MAX_BATCHES - 2, 1))
       goto fail;
 
    for (unsigned i = 0; i < TC_MAX_BATCHES; i++) {
       tc->batch_slots[i].sentinel = TC_SENTINEL;
-      tc->batch_slots[i].sentinel2 = TC_SENTINEL;
       tc->batch_slots[i].pipe = pipe;
       util_queue_fence_init(&tc->batch_slots[i].fence);
    }
 
    LIST_INITHEAD(&tc->unflushed_queries);
 
    slab_create_child(&tc->pool_transfers, parent_transfer_pool);
 
 #define CTX_INIT(_member) \
    tc->base._member = tc->pipe->_member ? tc_##_member : NULL
diff --git a/src/gallium/auxiliary/util/u_threaded_context.h b/src/gallium/auxiliary/util/u_threaded_context.h
index 5d2a10c..2e7e301 100644
--- a/src/gallium/auxiliary/util/u_threaded_context.h
+++ b/src/gallium/auxiliary/util/u_threaded_context.h
@@ -286,21 +286,20 @@ struct ALIGN16 tc_call {
    ushort call_id;
    union tc_payload payload;
 };
 
 struct tc_batch {
    struct pipe_context *pipe;
    unsigned sentinel;
    unsigned num_total_call_slots;
    struct util_queue_fence fence;
    struct tc_call call[TC_CALLS_PER_BATCH];
-   unsigned sentinel2;
 };
 
 struct threaded_context {
    struct pipe_context base;
    struct pipe_context *pipe;
    struct slab_child_pool pool_transfers;
    tc_replace_buffer_storage_func replace_buffer_storage;
    unsigned map_buffer_alignment;
 
    struct list_head unflushed_queries;
-- 
2.7.4



More information about the mesa-dev mailing list