On Monday, July 14, 2014 03:48:41 PM Ian Romanick wrote: > From: Ian Romanick <ian.d.roman...@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.roman...@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;
Can't you just do: ir_depth_layout depth_layout:3; and then drop the casts on use? It seems to work fine, at least with g++ and clang++. > > /** > * 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 >
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev