[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