summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorTimothy Arceri <timothy.arceri@collabora.com>2016-07-19 15:13:51 +1000
committerTimothy Arceri <timothy.arceri@collabora.com>2016-07-21 09:10:53 +1000
commit09e46f99ad465ab253de3fc321f39062cfbe1984 (patch)
tree7e6e5570c3bda4aa68927caa79fa4cf2b5296c3f /src/mesa
parent9d503aea069e08cffd57a4d590a6a0ca3b8ae4a2 (diff)
downloadexternal_mesa3d-09e46f99ad465ab253de3fc321f39062cfbe1984.tar.gz
external_mesa3d-09e46f99ad465ab253de3fc321f39062cfbe1984.tar.bz2
external_mesa3d-09e46f99ad465ab253de3fc321f39062cfbe1984.zip
i965: bring back type_size_vec4_times_4()
We will use this for output varyings. To make component packing simpler we will just treat all varyings as vec4s. Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp13
-rw-r--r--src/mesa/drivers/dri/i965/brw_shader.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 4344a3a63c..53e71839a8 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -509,6 +509,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 dd9eb2d886..e61c080311 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);