radeonsi: Set PIPE_SHADER_CAP_MAX_SHADER_IMAGES
[mesa.git] / src / gallium / drivers / radeonsi / si_state.h
index 40792cbc1d5b170fecb004b6f8ad960cfcd6e1e9..c4d6b9d9eee2d7ca663dc1cb944e2bc8bb25f8d7 100644 (file)
@@ -158,6 +158,8 @@ struct si_shader_data {
 #define SI_DRIVER_STATE_CONST_BUF      SI_NUM_USER_CONST_BUFFERS
 #define SI_NUM_CONST_BUFFERS           (SI_DRIVER_STATE_CONST_BUF + 1)
 
+#define SI_NUM_IMAGES                  16
+
 /* Read-write buffer slots.
  *
  * Ring buffers:        0..1
@@ -249,6 +251,7 @@ void si_all_descriptors_begin_new_cs(struct si_context *sctx);
 void si_upload_const_buffer(struct si_context *sctx, struct r600_resource **rbuffer,
                            const uint8_t *ptr, unsigned size, uint32_t *const_offset);
 void si_shader_change_notify(struct si_context *sctx);
+void si_update_compressed_colortex_masks(struct si_context *sctx);
 void si_emit_shader_userdata(struct si_context *sctx, struct r600_atom *atom);
 
 /* si_state.c */
@@ -263,6 +266,7 @@ boolean si_is_format_supported(struct pipe_screen *screen,
                                unsigned sample_count,
                                unsigned usage);
 void si_init_state_functions(struct si_context *sctx);
+void si_init_screen_state_functions(struct si_screen *sscreen);
 unsigned cik_bank_wh(unsigned bankwh);
 unsigned cik_db_pipe_config(struct si_screen *sscreen, unsigned tile_mode);
 unsigned cik_macro_tile_aspect(unsigned macro_tile_aspect);
@@ -270,6 +274,23 @@ unsigned cik_tile_split(unsigned tile_split);
 unsigned si_array_mode(unsigned mode);
 uint32_t si_num_banks(struct si_screen *sscreen, struct r600_texture *tex);
 unsigned si_tile_mode_index(struct r600_texture *rtex, unsigned level, bool stencil);
+void
+si_make_buffer_descriptor(struct si_screen *screen, struct r600_resource *buf,
+                         enum pipe_format format,
+                         unsigned first_element, unsigned last_element,
+                         uint32_t *state);
+void
+si_make_texture_descriptor(struct si_screen *screen,
+                          struct r600_texture *tex,
+                          bool sampler,
+                          enum pipe_texture_target target,
+                          enum pipe_format pipe_format,
+                          const unsigned char state_swizzle[4],
+                          unsigned base_level, unsigned first_level, unsigned last_level,
+                          unsigned first_layer, unsigned last_layer,
+                          unsigned width, unsigned height, unsigned depth,
+                          uint32_t *state,
+                          uint32_t *fmask_state);
 struct pipe_sampler_view *
 si_create_sampler_view_custom(struct pipe_context *ctx,
                              struct pipe_resource *texture,