Skip to content
  • Kenneth Graunke's avatar
    st/nir: Make new helpers for constructing built-in NIR shaders. · cdc53fa8
    Kenneth Graunke authored
    
    
    The state tracker generates several built-in shaders in order to
    perform scissored clears, upload/download PBOs, and so on.  These
    are currently constructed using TGSI, using ureg and u_simple_shader.
    
    I want to have NIR versions of these shaders, for my Gallium driver
    that has a NIR backend but no TGSI support.  To that end, we'll want
    a few helpers to help construct simple shaders.
    
    This patch adds two new helpers:
    
    - st_nir_finish_builtin_shader() takes a manually constructed NIR
      shader, applies lowering passes (like st_link_nir would do for GLSL),
      and constructs the pipe_shader_state.
    
    - st_nir_make_passthrough_shader() makes a simple passthrough shader,
      which copies inputs to outputs.  This is similar to u_simple_shaders.
    
    v2: Set info->fs.untyped_color_outputs for vc4/v3d (thanks Eric!).
    
    Reviewed-by: default avatarMarek Olšák <marek.olsak@amd.com>
    Tested-by: default avatarRob Clark <robdclark@gmail.com>
    Tested-by: default avatarEric Anholt <eric@anholt.net>
    cdc53fa8