[Mesa-dev] [PATCH 09/26] glsl: Store ir_variable::depth_layout using 3 bits
Ian Romanick
idr at freedesktop.org
Mon Jul 14 15:48:41 PDT 2014
From: Ian Romanick <ian.d.romanick at intel.com>
warn_extension_index was moved to improve packing.
Valgrind massif results for a trimmed apitrace of dota2:
n time(i) total(B) useful-heap(B) extra-heap(B) stacks(B)
Before (32-bit): 73 40,580,476,304 68,488,400 62,796,151 5,692,249 0
After (32-bit): 73 40,575,751,558 68,116,528 62,618,607 5,497,921 0
Before (64-bit): 71 37,124,890,613 95,889,584 88,089,008 7,800,576 0
After (64-bit): 62 37,123,578,526 95,150,784 87,711,304 7,439,480 0
A real savings of 173KiB on 32-bit and 368KiB on 64-bit.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
src/glsl/ast_to_hir.cpp | 4 ++--
src/glsl/ir.h | 19 +++++++++----------
2 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 542a869..82ac29e 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2923,8 +2923,8 @@ get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
"gl_FragDepth: depth layout is declared here "
"as '%s, but it was previously declared as "
"'%s'",
- depth_layout_string(var->data.depth_layout),
- depth_layout_string(earlier->data.depth_layout));
+ depth_layout_string(ir_depth_layout(var->data.depth_layout)),
+ depth_layout_string(ir_depth_layout(earlier->data.depth_layout)));
}
earlier->data.depth_layout = var->data.depth_layout;
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index d4010fa..d33d153 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -704,6 +704,13 @@ public:
*/
unsigned index:1;
+ /**
+ * \brief Layout qualifier for gl_FragDepth.
+ *
+ * This is not equal to \c ir_depth_layout_none if and only if this
+ * variable is \c gl_FragDepth and a layout qualifier is specified.
+ */
+ unsigned depth_layout:3;
/**
* ARB_shader_image_load_store qualifiers.
@@ -714,9 +721,6 @@ public:
unsigned image_volatile:1;
unsigned image_restrict:1;
- /** Image internal format if specified explicitly, otherwise GL_NONE. */
- uint16_t image_format;
-
/**
* Emit a warning if this variable is accessed.
*/
@@ -724,13 +728,8 @@ public:
uint8_t warn_extension_index;
public:
- /**
- * \brief Layout qualifier for gl_FragDepth.
- *
- * This is not equal to \c ir_depth_layout_none if and only if this
- * variable is \c gl_FragDepth and a layout qualifier is specified.
- */
- ir_depth_layout depth_layout;
+ /** Image internal format if specified explicitly, otherwise GL_NONE. */
+ uint16_t image_format;
/**
* Storage location of the base of this variable
--
1.8.1.4
More information about the mesa-dev
mailing list