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

Brian Paul brianp at vmware.com
Mon May 2 07:31:26 PDT 2011


On 05/01/2011 06:07 PM, Marek Olšák wrote:
> 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;

Reviewed-by: Brian Paul <brianp at vmare.com>


More information about the mesa-dev mailing list