[Mesa-dev] [PATCH 01/15] i965: bring back type_size_vec4_times_4()

Alejandro Piñeiro apinheiro at igalia.com
Wed Jul 20 15:54:20 UTC 2016


Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>


On 19/07/16 08:33, Timothy Arceri wrote:
> We will use this for output varyings. To make component
> packing simpler we will just treat all varyings as vec4s.
> ---
>  src/mesa/drivers/dri/i965/brw_fs.cpp   | 13 +++++++++++++
>  src/mesa/drivers/dri/i965/brw_shader.h |  1 +
>  2 files changed, 14 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index 120d6dd..547a0c2 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -506,6 +506,19 @@ type_size_scalar(const struct glsl_type *type)
>     return 0;
>  }
>  
> +/**
> + * Returns the number of scalar components needed to store type, assuming
> + * that vectors are padded out to vec4.
> + *
> + * This has the packing rules of type_size_vec4(), but counts components
> + * similar to type_size_scalar().
> + */
> +extern "C" int
> +type_size_vec4_times_4(const struct glsl_type *type)
> +{
> + return 4 * type_size_vec4(type);
> +}
> +
>  /* Attribute arrays are loaded as one vec4 per element (or matrix column),
>   * except for double-precision types, which are loaded as one dvec4.
>   */
> diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
> index dd9eb2d..e61c080 100644
> --- a/src/mesa/drivers/dri/i965/brw_shader.h
> +++ b/src/mesa/drivers/dri/i965/brw_shader.h
> @@ -294,6 +294,7 @@ struct gl_linked_shader *brw_new_shader(gl_shader_stage stage);
>  int type_size_scalar(const struct glsl_type *type);
>  int type_size_vec4(const struct glsl_type *type);
>  int type_size_dvec4(const struct glsl_type *type);
> +int type_size_vec4_times_4(const struct glsl_type *type);
>  int type_size_vs_input(const struct glsl_type *type);
>  
>  unsigned tesslevel_outer_components(GLenum tes_primitive_mode);



More information about the mesa-dev mailing list