Skip to content
Snippets Groups Projects
  • steve-lunarg's avatar
    Flatten uniform arrays · e0b9debd
    steve-lunarg authored
    This checkin adds a --flatten-uniform-arrays option which can break
    uniform arrays of samplers, textures, or UBOs up into individual
    scalars named (e.g) myarray[0], myarray[1], etc.  These appear as
    individual linkage objects.
    
    Code notes:
    
    - shouldFlatten internally calls shouldFlattenIO, and shouldFlattenUniform,
      but is the only flattening query directly called.
    
    - flattenVariable will handle structs or arrays (but not yet arrayed structs;
      this is tested an an error is generated).
    
    - There's some error checking around unhandled situations.  E.g, flattening
      uniform arrays with initializer lists is not implemented.
    
    - This piggybacks on as much of the existing mechanism for struct flattening
      as it can.  E.g, it uses the same flattenMap, and the same
      flattenAccess() method.
    
    - handleAssign() has been generalized to cope with either structs or arrays.
    
    - Extended test infrastructure to test flattening ability.
    e0b9debd