Skip to content
  • Rafael Antognolli's avatar
    genxml: Make BLEND_STATE command support variable length array. · 9670124e
    Rafael Antognolli authored and Kenneth Graunke's avatar Kenneth Graunke committed
    
    
    We need to emit BLEND_STATE, which size is 1 + 2 * nr_draw_buffers
    dwords (on gen8+), but the BLEND_STATE struct length is always 17. By
    marking it size 1, which is actually the size of the struct minus the
    BLEND_STATE_ENTRY's, we can emit a BLEND_STATE of variable number of
    entries.
    
    For gen6 and gen7 we set length to 0, since it only contains
    BLEND_STATE_ENTRY's, and no other data.
    
    With this change, we also change the code for blorp and anv to emit only
    the needed BLEND_STATE_ENTRY's, instead of always emitting 16 dwords on
    gen6-7 and 17 dwords on gen8+.
    
    v2:
       - Use designated initializers on blorp and remove 0 from
       initialization (Jason)
       - Default entries to disabled on Vulkan (Jason)
       - Rebase code.
    
    Signed-off-by: default avatarRafael Antognolli <rafael.antognolli@intel.com>
    Reviewed-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
    9670124e