[Mesa-dev] [PATCH] gallium: reorder fields of pipe_rasterizer_state to pack it more tightly

Marek Olšák maraeo at gmail.com
Sun May 1 17:07:44 PDT 2011


sizeof(struct pipe_rasterizer_state):
    Before: 32 bytes
    After: 28 bytes
---
 src/gallium/include/pipe/p_state.h |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
index f6ad456..0c1f509 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -94,24 +94,21 @@ struct pipe_rasterizer_state
    unsigned poly_smooth:1;
    unsigned poly_stipple_enable:1;
    unsigned point_smooth:1;
-   unsigned sprite_coord_enable:PIPE_MAX_SHADER_OUTPUTS;
    unsigned sprite_coord_mode:1;     /**< PIPE_SPRITE_COORD_ */
    unsigned point_quad_rasterization:1; /** points rasterized as quads or points */
    unsigned point_size_per_vertex:1; /**< size computed in vertex shader */
    unsigned multisample:1;         /* XXX maybe more ms state in future */
    unsigned line_smooth:1;
    unsigned line_stipple_enable:1;
-   unsigned line_stipple_factor:8;  /**< [1..256] actually */
-   unsigned line_stipple_pattern:16;
    unsigned line_last_pixel:1;
 
-   /** 
+   /**
     * Use the first vertex of a primitive as the provoking vertex for
     * flat shading.
     */
-   unsigned flatshade_first:1;   
+   unsigned flatshade_first:1;
 
-   /** 
+   /**
     * When true, triangle rasterization uses (0.5, 0.5) pixel centers
     * for determining pixel ownership.
     *
@@ -124,6 +121,11 @@ struct pipe_rasterizer_state
     */
    unsigned gl_rasterization_rules:1;
 
+   unsigned line_stipple_factor:8;  /**< [1..256] actually */
+   unsigned line_stipple_pattern:16;
+
+   unsigned sprite_coord_enable:PIPE_MAX_SHADER_OUTPUTS;
+
    float line_width;
    float point_size;           /**< used when no per-vertex size */
    float offset_units;
-- 
1.7.4.1



More information about the mesa-dev mailing list