Skip to content
  • Ian Romanick's avatar
    glsl: Use bit-flags image attributes and uint16_t for the image format · 932b0ef1
    Ian Romanick authored and Kenneth Graunke's avatar Kenneth Graunke committed
    
    
    All of the GL image enums fit in 16-bits.
    
    Also move the fields from the anonymous "image" structucture to the next
    higher structure.  This will enable packing the bits with the other
    bitfield.
    
    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): 76 40,572,916,873       68,831,248       63,328,783     5,502,465            0
    After  (32-bit): 70 40,577,421,777       68,487,584       62,973,695     5,513,889            0
    
    Before (64-bit): 60 36,822,640,058       96,526,824       88,735,296     7,791,528            0
    After  (64-bit): 74 37,124,603,758       95,891,808       88,466,712     7,425,096            0
    
    A real savings of 346KiB on 32-bit and 262KiB on 64-bit.
    
    Signed-off-by: default avatarIan Romanick <ian.d.romanick@intel.com>
    Reviewed-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
    932b0ef1