iris: remove hole from struct iris_bo
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Tue, 31 Mar 2020 00:06:32 +0000 (17:06 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 15 Apr 2020 21:35:14 +0000 (21:35 +0000)
This decreases the size of the struct on a 64bit machine from 144 to
136. While that's not a lot, this is one of the structs that we're
allocating all the time.

For a full Aztec run on BDW we allocate this struct 3273 times, and we
can have up to 3259 of them live at the same time. So we end up saving
just a little over 6 pages for this benchmark.

Spotted this while trying to add another bool for an unrelated
feature.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4561>

src/gallium/drivers/iris/iris_bufmgr.h

index 6f4bcbf5e567a8d0daf52f4649ba29cb3e295afd..d7edda23aca4dfbe3f596998ff3351ff5007491c 100644 (file)
@@ -101,6 +101,9 @@ struct iris_bo {
    /** Buffer manager context associated with this buffer object */
    struct iris_bufmgr *bufmgr;
 
+   /** Pre-computed hash using _mesa_hash_pointer for cache tracking sets */
+   uint32_t hash;
+
    /** The GEM handle for this buffer object. */
    uint32_t gem_handle;
 
@@ -132,15 +135,6 @@ struct iris_bo {
     */
    unsigned index;
 
-   /**
-    * Boolean of whether the GPU is definitely not accessing the buffer.
-    *
-    * This is only valid when reusable, since non-reusable
-    * buffers are those that have been shared with other
-    * processes, so we don't know their state.
-    */
-   bool idle;
-
    int refcount;
    const char *name;
 
@@ -172,6 +166,15 @@ struct iris_bo {
    /** BO cache list */
    struct list_head head;
 
+   /**
+    * Boolean of whether the GPU is definitely not accessing the buffer.
+    *
+    * This is only valid when reusable, since non-reusable
+    * buffers are those that have been shared with other
+    * processes, so we don't know their state.
+    */
+   bool idle;
+
    /**
     * Boolean of whether this buffer can be re-used
     */
@@ -191,9 +194,6 @@ struct iris_bo {
     * Boolean of whether this buffer points into user memory
     */
    bool userptr;
-
-   /** Pre-computed hash using _mesa_hash_pointer for cache tracking sets */
-   uint32_t hash;
 };
 
 #define BO_ALLOC_ZEROED     (1<<0)