From: Marek Olšák <marek.ol...@amd.com>

---
 src/gallium/drivers/radeonsi/si_descriptors.c |  3 +-
 src/gallium/drivers/radeonsi/si_state.c       | 29 +++++++------------
 src/gallium/drivers/radeonsi/si_state.h       |  4 ---
 .../drivers/radeonsi/si_state_shaders.c       |  5 ++--
 4 files changed, 14 insertions(+), 27 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c 
b/src/gallium/drivers/radeonsi/si_descriptors.c
index 4efae9704bc..8bb2a5d95d8 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -2755,22 +2755,21 @@ void si_init_all_descriptors(struct si_context *sctx)
        sctx->b.set_shader_buffers = si_set_shader_buffers;
        sctx->b.set_sampler_views = si_set_sampler_views;
        sctx->b.create_texture_handle = si_create_texture_handle;
        sctx->b.delete_texture_handle = si_delete_texture_handle;
        sctx->b.make_texture_handle_resident = si_make_texture_handle_resident;
        sctx->b.create_image_handle = si_create_image_handle;
        sctx->b.delete_image_handle = si_delete_image_handle;
        sctx->b.make_image_handle_resident = si_make_image_handle_resident;
 
        /* Shader user data. */
-       si_init_atom(sctx, &sctx->atoms.s.shader_pointers,
-                    si_emit_graphics_shader_pointers);
+       sctx->atoms.s.shader_pointers.emit = si_emit_graphics_shader_pointers;
 
        /* Set default and immutable mappings. */
        si_set_user_data_base(sctx, PIPE_SHADER_VERTEX, 
R_00B130_SPI_SHADER_USER_DATA_VS_0);
 
        if (sctx->chip_class >= GFX9) {
                si_set_user_data_base(sctx, PIPE_SHADER_TESS_CTRL,
                                      R_00B430_SPI_SHADER_USER_DATA_LS_0);
                si_set_user_data_base(sctx, PIPE_SHADER_GEOMETRY,
                                      R_00B330_SPI_SHADER_USER_DATA_ES_0);
        } else {
diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index 568b11d1eea..78ca1f436c9 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -26,27 +26,20 @@
 #include "gfx9d.h"
 #include "si_query.h"
 
 #include "util/u_dual_blend.h"
 #include "util/u_format.h"
 #include "util/u_format_s3tc.h"
 #include "util/u_memory.h"
 #include "util/u_resource.h"
 #include "util/u_upload_mgr.h"
 
-/* Initialize an atom owned by radeonsi.  */
-void si_init_atom(struct si_context *sctx, struct si_atom *atom,
-                 void (*emit_func)(struct si_context *ctx, struct si_atom 
*state))
-{
-       atom->emit = emit_func;
-}
-
 static unsigned si_map_swizzle(unsigned swizzle)
 {
        switch (swizzle) {
        case PIPE_SWIZZLE_Y:
                return V_008F0C_SQ_SEL_Y;
        case PIPE_SWIZZLE_Z:
                return V_008F0C_SQ_SEL_Z;
        case PIPE_SWIZZLE_W:
                return V_008F0C_SQ_SEL_W;
        case PIPE_SWIZZLE_0:
@@ -4511,31 +4504,31 @@ static void *si_create_blend_custom(struct si_context 
*sctx, unsigned mode)
        memset(&blend, 0, sizeof(blend));
        blend.independent_blend_enable = true;
        blend.rt[0].colormask = 0xf;
        return si_create_blend_state_mode(&sctx->b, &blend, mode);
 }
 
 static void si_init_config(struct si_context *sctx);
 
 void si_init_state_functions(struct si_context *sctx)
 {
-       si_init_atom(sctx, &sctx->atoms.s.framebuffer, 
si_emit_framebuffer_state);
-       si_init_atom(sctx, &sctx->atoms.s.msaa_sample_locs, 
si_emit_msaa_sample_locs);
-       si_init_atom(sctx, &sctx->atoms.s.db_render_state, 
si_emit_db_render_state);
-       si_init_atom(sctx, &sctx->atoms.s.dpbb_state, si_emit_dpbb_state);
-       si_init_atom(sctx, &sctx->atoms.s.msaa_config, si_emit_msaa_config);
-       si_init_atom(sctx, &sctx->atoms.s.sample_mask, si_emit_sample_mask);
-       si_init_atom(sctx, &sctx->atoms.s.cb_render_state, 
si_emit_cb_render_state);
-       si_init_atom(sctx, &sctx->atoms.s.blend_color, si_emit_blend_color);
-       si_init_atom(sctx, &sctx->atoms.s.clip_regs, si_emit_clip_regs);
-       si_init_atom(sctx, &sctx->atoms.s.clip_state, si_emit_clip_state);
-       si_init_atom(sctx, &sctx->atoms.s.stencil_ref, si_emit_stencil_ref);
+       sctx->atoms.s.framebuffer.emit = si_emit_framebuffer_state;
+       sctx->atoms.s.msaa_sample_locs.emit = si_emit_msaa_sample_locs;
+       sctx->atoms.s.db_render_state.emit = si_emit_db_render_state;
+       sctx->atoms.s.dpbb_state.emit = si_emit_dpbb_state;
+       sctx->atoms.s.msaa_config.emit = si_emit_msaa_config;
+       sctx->atoms.s.sample_mask.emit = si_emit_sample_mask;
+       sctx->atoms.s.cb_render_state.emit = si_emit_cb_render_state;
+       sctx->atoms.s.blend_color.emit = si_emit_blend_color;
+       sctx->atoms.s.clip_regs.emit = si_emit_clip_regs;
+       sctx->atoms.s.clip_state.emit = si_emit_clip_state;
+       sctx->atoms.s.stencil_ref.emit = si_emit_stencil_ref;
 
        sctx->b.create_blend_state = si_create_blend_state;
        sctx->b.bind_blend_state = si_bind_blend_state;
        sctx->b.delete_blend_state = si_delete_blend_state;
        sctx->b.set_blend_color = si_set_blend_color;
 
        sctx->b.create_rasterizer_state = si_create_rs_state;
        sctx->b.bind_rasterizer_state = si_bind_rs_state;
        sctx->b.delete_rasterizer_state = si_delete_rs_state;
 
diff --git a/src/gallium/drivers/radeonsi/si_state.h 
b/src/gallium/drivers/radeonsi/si_state.h
index 4ee69b95bd3..5e3c543f579 100644
--- a/src/gallium/drivers/radeonsi/si_state.h
+++ b/src/gallium/drivers/radeonsi/si_state.h
@@ -372,24 +372,20 @@ void si_set_active_descriptors_for_shader(struct 
si_context *sctx,
                                          struct si_shader_selector *sel);
 bool si_bindless_descriptor_can_reclaim_slab(void *priv,
                                             struct pb_slab_entry *entry);
 struct pb_slab *si_bindless_descriptor_slab_alloc(void *priv, unsigned heap,
                                                  unsigned entry_size,
                                                  unsigned group_index);
 void si_bindless_descriptor_slab_free(void *priv, struct pb_slab *pslab);
 void si_rebind_buffer(struct si_context *sctx, struct pipe_resource *buf,
                      uint64_t old_va);
 /* si_state.c */
-struct si_shader_selector;
-
-void si_init_atom(struct si_context *sctx, struct si_atom *atom,
-                 void (*emit_func)(struct si_context *ctx, struct si_atom 
*state));
 void si_init_state_functions(struct si_context *sctx);
 void si_init_screen_state_functions(struct si_screen *sscreen);
 void
 si_make_buffer_descriptor(struct si_screen *screen, struct r600_resource *buf,
                          enum pipe_format format,
                          unsigned offset, unsigned size,
                          uint32_t *state);
 void
 si_make_texture_descriptor(struct si_screen *screen,
                           struct r600_texture *tex,
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c 
b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 747a2abc7e1..c073b8ddf60 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -3402,23 +3402,22 @@ void *si_get_blit_vs(struct si_context *sctx, enum 
blitter_attrib_type type,
                         ureg_scalar(instance_id, TGSI_SWIZZLE_X));
        }
        ureg_END(ureg);
 
        *vs = ureg_create_shader_and_destroy(ureg, &sctx->b);
        return *vs;
 }
 
 void si_init_shader_functions(struct si_context *sctx)
 {
-       si_init_atom(sctx, &sctx->atoms.s.spi_map, si_emit_spi_map);
-       si_init_atom(sctx, &sctx->atoms.s.scratch_state,
-                    si_emit_scratch_state);
+       sctx->atoms.s.spi_map.emit = si_emit_spi_map;
+       sctx->atoms.s.scratch_state.emit = si_emit_scratch_state;
 
        sctx->b.create_vs_state = si_create_shader_selector;
        sctx->b.create_tcs_state = si_create_shader_selector;
        sctx->b.create_tes_state = si_create_shader_selector;
        sctx->b.create_gs_state = si_create_shader_selector;
        sctx->b.create_fs_state = si_create_shader_selector;
 
        sctx->b.bind_vs_state = si_bind_vs_shader;
        sctx->b.bind_tcs_state = si_bind_tcs_shader;
        sctx->b.bind_tes_state = si_bind_tes_shader;
-- 
2.17.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to