<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/mesa.git/src/glsl/ir.h, branch baserock/james/test</title>
<subtitle>gitlab.freedesktop.org: mesa/mesa.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/'/>
<entry>
<title>glsl: Add infrastructure for "hidden" uniforms.</title>
<updated>2014-11-07T00:20:01+00:00</updated>
<author>
<name>Kenneth Graunke</name>
<email>kenneth@whitecape.org</email>
</author>
<published>2014-10-27T23:34:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=0c0bfb2ead03789164cee364fbf405994d876ca3'/>
<id>0c0bfb2ead03789164cee364fbf405994d876ca3</id>
<content type='text'>
In the compiler, we'd like to generate implicit uniforms for internal
use.  These should not be visible via the GL uniform introspection API.

To support that, we add a new ir_variable::how_declared value of
ir_var_hidden, and plumb that through to gl_uniform_storage.

v2 (idr): Fix some memory management issues in
move_hidden_uniforms_to_end.  The comment block on the function has more
details.

Signed-off-by: Kenneth Graunke &lt;kenneth@whitecape.org&gt;
Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the compiler, we'd like to generate implicit uniforms for internal
use.  These should not be visible via the GL uniform introspection API.

To support that, we add a new ir_variable::how_declared value of
ir_var_hidden, and plumb that through to gl_uniform_storage.

v2 (idr): Fix some memory management issues in
move_hidden_uniforms_to_end.  The comment block on the function has more
details.

Signed-off-by: Kenneth Graunke &lt;kenneth@whitecape.org&gt;
Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Remove now useless dot optimization on basis vect</title>
<updated>2014-11-03T19:27:50+00:00</updated>
<author>
<name>Matt Turner</name>
<email>mattst88@gmail.com</email>
</author>
<published>2014-10-30T22:39:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=5fbcb1b41d370b0ba23d2151b690a225b75fb3a0'/>
<id>5fbcb1b41d370b0ba23d2151b690a225b75fb3a0</id>
<content type='text'>
The optimization in commit d056863b covers these cases, which were the
first optimizations I added to the GLSL compiler.

Reviewed-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The optimization in commit d056863b covers these cases, which were the
first optimizations I added to the GLSL compiler.

Reviewed-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Don't allocate a name for ir_var_temporary variables</title>
<updated>2014-09-30T20:34:43+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-07-09T02:03:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=c87d09d7f09fe2e734e97e72baabd7c54f7614a9'/>
<id>c87d09d7f09fe2e734e97e72baabd7c54f7614a9</id>
<content type='text'>
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): 74 40,578,719,715       67,762,208       62,263,404     5,498,804            0
After  (32-bit): 52 40,565,579,466       66,359,800       61,187,818     5,171,982            0

Before (64-bit): 74 37,129,541,061       95,195,160       87,369,671     7,825,489            0
After  (64-bit): 76 37,134,691,404       93,271,352       85,900,223     7,371,129            0

A real savings of 1.0MiB on 32-bit and 1.4MiB on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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): 74 40,578,719,715       67,762,208       62,263,404     5,498,804            0
After  (32-bit): 52 40,565,579,466       66,359,800       61,187,818     5,171,982            0

Before (64-bit): 74 37,129,541,061       95,195,160       87,369,671     7,825,489            0
After  (64-bit): 76 37,134,691,404       93,271,352       85,900,223     7,371,129            0

A real savings of 1.0MiB on 32-bit and 1.4MiB on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Add the possibility for ir_variable to have a non-ralloced name</title>
<updated>2014-09-30T20:34:42+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-07-08T23:57:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=7625babfae6c5e86ab349c1a081816fbbcc48d17'/>
<id>7625babfae6c5e86ab349c1a081816fbbcc48d17</id>
<content type='text'>
Specifically, ir_var_temporary variables constructed with a NULL name
will all have the name "compiler_temp" in static storage.

No change Valgrind massif results for a trimmed apitrace of dota2.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifically, ir_var_temporary variables constructed with a NULL name
will all have the name "compiler_temp" in static storage.

No change Valgrind massif results for a trimmed apitrace of dota2.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Store ir_variable_data::_num_state_slots and ::binding in 16-bits each</title>
<updated>2014-09-30T20:34:42+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-05-28T01:45:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=0e654ab1b9a20671f755cbe71fe51ff6ec849459'/>
<id>0e654ab1b9a20671f755cbe71fe51ff6ec849459</id>
<content type='text'>
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): 44 40,577,049,140       68,118,608       62,441,063     5,677,545            0
After  (32-bit): 71 40,583,408,411       67,761,528       62,263,519     5,498,009            0

Before (64-bit): 63 37,122,829,194       95,153,008       87,333,600     7,819,408            0
After  (64-bit): 67 37,123,303,706       95,150,544       87,333,600     7,816,944            0

A real savings of 173KiB on 32-bit and no change on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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): 44 40,577,049,140       68,118,608       62,441,063     5,677,545            0
After  (32-bit): 71 40,583,408,411       67,761,528       62,263,519     5,498,009            0

Before (64-bit): 63 37,122,829,194       95,153,008       87,333,600     7,819,408            0
After  (64-bit): 67 37,123,303,706       95,150,544       87,333,600     7,816,944            0

A real savings of 173KiB on 32-bit and no change on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Squish ir_variable::max_ifc_array_access and ::state_slots together</title>
<updated>2014-09-30T20:34:42+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-05-28T01:34:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=a32ac726ee8825c8352337a0489dddaffd955d4a'/>
<id>a32ac726ee8825c8352337a0489dddaffd955d4a</id>
<content type='text'>
At least one of these pointers must be NULL, and we can determine which
will be NULL by looking at other fields.  Use this information to store
both pointers in the same location.

If anyone can think of a better name for the union than "u", I'm all
ears.

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): 63 40,574,239,515       68,117,280       62,618,607     5,498,673            0
After  (32-bit): 44 40,577,049,140       68,118,608       62,441,063     5,677,545            0

Before (64-bit): 53 37,126,451,468       95,150,256       87,711,304     7,438,952            0
After  (64-bit): 63 37,122,829,194       95,153,008       87,333,600     7,819,408            0

A real savings of 173KiB on 32-bit and 368KiB on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At least one of these pointers must be NULL, and we can determine which
will be NULL by looking at other fields.  Use this information to store
both pointers in the same location.

If anyone can think of a better name for the union than "u", I'm all
ears.

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): 63 40,574,239,515       68,117,280       62,618,607     5,498,673            0
After  (32-bit): 44 40,577,049,140       68,118,608       62,441,063     5,677,545            0

Before (64-bit): 53 37,126,451,468       95,150,256       87,711,304     7,438,952            0
After  (64-bit): 63 37,122,829,194       95,153,008       87,333,600     7,819,408            0

A real savings of 173KiB on 32-bit and 368KiB on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Make ir_variable::num_state_slots and ir_variable::state_slots private</title>
<updated>2014-09-30T20:34:42+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-05-15T02:47:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=5aa8d8194c4975876276a9c57cdd672978a491ad'/>
<id>5aa8d8194c4975876276a9c57cdd672978a491ad</id>
<content type='text'>
Also move num_state_slots inside ir_variable_data for better packing.

The payoff for this will come in a few more patches.

No change Valgrind massif results for a trimmed apitrace of dota2.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also move num_state_slots inside ir_variable_data for better packing.

The payoff for this will come in a few more patches.

No change Valgrind massif results for a trimmed apitrace of dota2.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Make ir_variable::max_ifc_array_access private</title>
<updated>2014-09-30T20:34:42+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-05-24T01:57:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=21df0169028d600b17ab73795da2838e92ba9038'/>
<id>21df0169028d600b17ab73795da2838e92ba9038</id>
<content type='text'>
The payoff for this will come in a few more patches.

No change Valgrind massif results for a trimmed apitrace of dota2.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The payoff for this will come in a few more patches.

No change Valgrind massif results for a trimmed apitrace of dota2.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Store ir_variable::depth_layout using 3 bits</title>
<updated>2014-09-30T20:34:42+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-05-15T01:36:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=8afe6efa218f87158c35857fad41926b404a2cbd'/>
<id>8afe6efa218f87158c35857fad41926b404a2cbd</id>
<content type='text'>
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.

v2: Use the enum name with the bit-field and remove the extra casts.
Suggested by Ken.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Kenneth Graunke &lt;kenneth@whitecape.org&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt; [v1]
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt; [v1]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.

v2: Use the enum name with the bit-field and remove the extra casts.
Suggested by Ken.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Kenneth Graunke &lt;kenneth@whitecape.org&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt; [v1]
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt; [v1]
</pre>
</div>
</content>
</entry>
<entry>
<title>glsl: Replace ir_variable::warn_extension pointer with an 8-bit index</title>
<updated>2014-09-30T20:34:41+00:00</updated>
<author>
<name>Ian Romanick</name>
<email>ian.d.romanick@intel.com</email>
</author>
<published>2014-05-14T20:25:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mesa.git/commit/?id=ab51179f1fe8f365cc5357f498e4ce690c28bd3a'/>
<id>ab51179f1fe8f365cc5357f498e4ce690c28bd3a</id>
<content type='text'>
Also move the new warn_extension_index into ir_variable::data.  This
enables slightly better 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): 82 40,580,040,531       68,488,992       62,973,695     5,515,297            0
After  (32-bit): 73 40,580,476,304       68,488,400       62,796,151     5,692,249            0

Before (64-bit): 65 37,124,013,542       95,892,768       88,466,712     7,426,056            0
After  (64-bit): 71 37,124,890,613       95,889,584       88,089,008     7,800,576            0

A real savings of 173KiB on 32-bit and 368KiB on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also move the new warn_extension_index into ir_variable::data.  This
enables slightly better 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): 82 40,580,040,531       68,488,992       62,973,695     5,515,297            0
After  (32-bit): 73 40,580,476,304       68,488,400       62,796,151     5,692,249            0

Before (64-bit): 65 37,124,013,542       95,892,768       88,466,712     7,426,056            0
After  (64-bit): 71 37,124,890,613       95,889,584       88,089,008     7,800,576            0

A real savings of 173KiB on 32-bit and 368KiB on 64-bit.

Signed-off-by: Ian Romanick &lt;ian.d.romanick@intel.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Tapani Pälli &lt;tapani.palli@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
