Skip to content
  • Iago Toral's avatar
    i965/sbe: fix number of inputs for active components · bc730167
    Iago Toral authored
    In 16631ca3 we fixed gen9 active components to account for padded
    inputs in the URB, which we can have with SSO programs. To do that,
    instead of going through the bitfield of inputs (which doesn't include
    padding information), we compute the number of inputs from the size
    of the URB entry.
    
    Unfortunately, there are some special inputs that are not stored in
    the URB and that we also need to account for. These special inputs
    are identified and handled during calculate_attr_overrides().
    
    Instead of keeping track of the exact number of inputs, we just
    program active components for all possible inputs like we do in
    anvil.
    
    This fixes a regression in a WebGL program that uses Point Sprite
    functionality (specifically, VARYING_SLOT_PNTC).
    
    v2:
     - Add 'Fixes' tag (Mark Janes)
     - make no_vue_inputs int instead of uint32_t, and add const qualifier
       to num_inputs variable (Ian)
    
    v3:
     - Do not try to count inputs correctly, just program all input
       slots like we do in anvil (Ken)
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105224
    Fixes: 16631ca3
    
     (i965/sbe: fix active components for SSO programs with over 16 inputs)
    Reviewed-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
    bc730167