From: Ian Romanick Date: Mon, 21 Jun 2010 23:05:29 +0000 (-0700) Subject: ir_variable: Add query to get number of slots used by a variable X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8b80e9f9e3bc9ca41c95125826139471f73602c4;p=mesa.git ir_variable: Add query to get number of slots used by a variable --- diff --git a/ir.cpp b/ir.cpp index 08b2d888816..49191fb9295 100644 --- a/ir.cpp +++ b/ir.cpp @@ -756,6 +756,14 @@ ir_variable::interpolation_string() const } +unsigned +ir_variable::component_slots() const +{ + /* FINISHME: Sparsely accessed arrays require fewer slots. */ + return this->type->component_slots(); +} + + ir_function_signature::ir_function_signature(const glsl_type *return_type) : return_type(return_type), is_defined(false) { diff --git a/ir.h b/ir.h index a2fc2b769c0..9cbe11505a6 100644 --- a/ir.h +++ b/ir.h @@ -187,6 +187,14 @@ public: */ const char *interpolation_string() const; + /** + * Calculate the number of slots required to hold this variable + * + * This is used to determine how many uniform or varying locations a variable + * occupies. The count is in units of floating point components. + */ + unsigned component_slots() const; + const char *name; /**