nir: Handle all array stride cases in nir_deref_instr_array_stride
[mesa.git] / src / amd / common / ac_shader_util.h
index 20b291256eb808a38eb09de471e8227b9a4747fb..49e1eb2428f15710f437c1cce0d4a978bff97b74 100644 (file)
@@ -46,6 +46,20 @@ enum ac_image_dim {
        ac_image_2darraymsaa,
 };
 
+struct ac_data_format_info {
+       uint8_t element_size;
+       uint8_t num_channels;
+       uint8_t chan_byte_size;
+       uint8_t chan_format;
+};
+
+struct ac_spi_color_formats {
+       unsigned normal : 8;
+       unsigned alpha : 8;
+       unsigned blend : 8;
+       unsigned blend_alpha : 8;
+};
+
 unsigned
 ac_get_spi_shader_z_format(bool writes_z, bool writes_stencil,
                           bool writes_samplemask);
@@ -60,6 +74,9 @@ unsigned
 ac_get_tbuffer_format(enum chip_class chip_class,
                      unsigned dfmt, unsigned nfmt);
 
+const struct ac_data_format_info *
+ac_get_data_format_info(unsigned dfmt);
+
 enum ac_image_dim
 ac_get_sampler_dim(enum chip_class chip_class, enum glsl_sampler_dim dim,
                   bool is_array);
@@ -73,6 +90,10 @@ ac_get_fs_input_vgpr_cnt(const struct ac_shader_config *config,
                         signed char *face_vgpr_index,
                         signed char *ancillary_vgpr_index);
 
+void ac_choose_spi_color_formats(unsigned format, unsigned swap,
+                                unsigned ntype, bool is_depth,
+                                struct ac_spi_color_formats *formats);
+
 #ifdef __cplusplus
 }
 #endif