Skip to content
  • Jordan Justen's avatar
    i965/cs: Setup surface binding for gl_NumWorkGroups · 63d7b33f
    Jordan Justen authored
    
    
    This will only be setup when the prog_data uses_num_work_groups
    boolean is set.
    
    At this point nothing will set uses_num_work_groups, but soon code
    will set it when emitting code for the intrinsic that loads
    gl_NumWorkGroups.
    
    We can't emit this surface information earlier at the start of the
    DispatchCompute* call because we may not have generated the program
    yet. Until we generate the program, we don't know if the
    gl_NumWorkGroups variable is accessed.
    
    We also can't emit the surface as part of the brw_cs_state atom,
    because we might not need the surface if gl_NumWorkGroups is not used
    by the program.
    
    Lastly, we cannot emit the surface later (after state upload) in the
    DispatchCompute* call, because it needs to be run before the
    brw_cs_state atom is emitted, since it changes the surface state.
    
    Signed-off-by: default avatarJordan Justen <jordan.l.justen@intel.com>
    Reviewed-by: default avatarKristian Høgsberg <krh@bitplanet.net>
    63d7b33f