radeonsi: pass at most 3 images and/or shader buffers via user SGPRs for compute
[mesa.git] / src / gallium / drivers / radeonsi / si_shader.h
index 4b3bdf4a30ee5ccf1534680982da5858ab561684..756bcd5a90eaa00408f1e22967481eb9b50e9e3a 100644 (file)
@@ -394,6 +394,7 @@ struct si_shader_info {
    unsigned num_written_clipdistance;
 
    unsigned images_declared;         /**< bitmask of declared images */
    unsigned num_written_clipdistance;
 
    unsigned images_declared;         /**< bitmask of declared images */
+   unsigned image_buffers;           /**< bitmask of images that are buffers */
    unsigned msaa_images_declared;    /**< bitmask of declared MSAA images */
    unsigned shader_buffers_declared; /**< bitmask of declared shader buffers */
 
    unsigned msaa_images_declared;    /**< bitmask of declared MSAA images */
    unsigned shader_buffers_declared; /**< bitmask of declared shader buffers */
 
@@ -439,6 +440,11 @@ struct si_shader_selector {
    bool vs_needs_prolog;
    bool prim_discard_cs_allowed;
    bool ngg_culling_allowed;
    bool vs_needs_prolog;
    bool prim_discard_cs_allowed;
    bool ngg_culling_allowed;
+   ubyte cs_shaderbufs_sgpr_index;
+   ubyte cs_num_shaderbufs_in_user_sgprs;
+   ubyte cs_images_sgpr_index;
+   ubyte cs_images_num_sgprs;
+   ubyte cs_num_images_in_user_sgprs;
    unsigned num_vs_inputs;
    unsigned num_vbos_in_user_sgprs;
    unsigned pa_cl_vs_out_cntl;
    unsigned num_vs_inputs;
    unsigned num_vbos_in_user_sgprs;
    unsigned pa_cl_vs_out_cntl;