glsl: Use a single bit for the dual-source blend index
The only values allowed are 0 and 1, and the value is checked before
assigning.
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,580,119,657 69,186,544 63,506,327 5,680,217 0
After (32-bit): 76 40,572,916,873 68,831,248 63,328,783 5,502,465 0
Before (64-bit): 89 36,822,971,897 96,526,616 88,735,296 7,791,320 0
After (64-bit): 60 36,822,640,058 96,526,824 88,735,296 7,791,528 0
A real savings of 173KiB on 32-bit and no change on 64-bit.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
committed by
Kenneth Graunke
parent
c0cd5bedf6
commit
8eeca7a56c
+9
-5
@@ -688,6 +688,15 @@ public:
|
|||||||
*/
|
*/
|
||||||
unsigned must_be_shader_input:1;
|
unsigned must_be_shader_input:1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Output index for dual source blending.
|
||||||
|
*
|
||||||
|
* \note
|
||||||
|
* The GLSL spec only allows the values 0 or 1 for the index in \b dual
|
||||||
|
* source blending.
|
||||||
|
*/
|
||||||
|
unsigned index:1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Layout qualifier for gl_FragDepth.
|
* \brief Layout qualifier for gl_FragDepth.
|
||||||
*
|
*
|
||||||
@@ -721,11 +730,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
unsigned stream;
|
unsigned stream;
|
||||||
|
|
||||||
/**
|
|
||||||
* output index for dual source blending.
|
|
||||||
*/
|
|
||||||
int index;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initial binding point for a sampler, atomic, or UBO.
|
* Initial binding point for a sampler, atomic, or UBO.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user