nir: Handle all array stride cases in nir_deref_instr_array_stride
[mesa.git] / src / amd / common / ac_shader_util.h
index 1bdf909e099eb03b925e4527220591a0c584501f..49e1eb2428f15710f437c1cce0d4a978bff97b74 100644 (file)
 #include <stdint.h>
 
 #include "amd_family.h"
+#include "ac_binary.h"
+#include "compiler/nir/nir.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum ac_image_dim {
+       ac_image_1d,
+       ac_image_2d,
+       ac_image_3d,
+       ac_image_cube, // includes cube arrays
+       ac_image_1darray,
+       ac_image_2darray,
+       ac_image_2dmsaa,
+       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,
@@ -39,4 +70,32 @@ ac_get_cb_shader_mask(unsigned spi_shader_col_format);
 uint32_t
 ac_vgt_gs_mode(unsigned gs_max_vert_out, enum chip_class chip_class);
 
+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);
+
+enum ac_image_dim
+ac_get_image_dim(enum chip_class chip_class, enum glsl_sampler_dim sdim,
+                bool is_array);
+
+unsigned
+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
+
 #endif