From: Dave Airlie Date: Mon, 13 Feb 2017 03:09:09 +0000 (+0000) Subject: radv: start splitting init config up X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b26253b34d53a7b8235bf301b68889ba6c3a19a6;p=mesa.git radv: start splitting init config up This is just prep work for the following patch to use a common gfx init indirect buffer. Reviewed-by: Bas Nieuwenhuizen Signed-off-by: Dave Airlie --- diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c index 79a2455f921..4de24ced06f 100644 --- a/src/amd/vulkan/si_cmd_buffer.c +++ b/src/amd/vulkan/si_cmd_buffer.c @@ -170,11 +170,10 @@ si_write_harvested_raster_configs(struct radv_physical_device *physical_device, S_030800_INSTANCE_BROADCAST_WRITES(1)); } -void -si_init_compute(struct radv_cmd_buffer *cmd_buffer) +static void +si_emit_compute(struct radv_physical_device *physical_device, + struct radeon_winsys_cs *cs) { - struct radv_physical_device *physical_device = cmd_buffer->device->physical_device; - struct radeon_winsys_cs *cs = cmd_buffer->cs; radeon_set_sh_reg_seq(cs, R_00B810_COMPUTE_START_X, 3); radeon_emit(cs, 0); radeon_emit(cs, 0); @@ -210,15 +209,22 @@ si_init_compute(struct radv_cmd_buffer *cmd_buffer) } } - -void si_init_config(struct radv_cmd_buffer *cmd_buffer) +void +si_init_compute(struct radv_cmd_buffer *cmd_buffer) { struct radv_physical_device *physical_device = cmd_buffer->device->physical_device; + si_emit_compute(physical_device, cmd_buffer->cs); +} + +static void +si_emit_config(struct radv_physical_device *physical_device, + struct radeon_winsys_cs *cs) +{ unsigned num_rb = MIN2(physical_device->rad_info.num_render_backends, 16); unsigned rb_mask = physical_device->rad_info.enabled_rb_mask; unsigned raster_config, raster_config_1; int i; - struct radeon_winsys_cs *cs = cmd_buffer->cs; + radeon_emit(cs, PKT3(PKT3_CONTEXT_CONTROL, 1, 0)); radeon_emit(cs, CONTEXT_CONTROL_LOAD_ENABLE(1)); radeon_emit(cs, CONTEXT_CONTROL_SHADOW_ENABLE(1)); @@ -420,7 +426,13 @@ void si_init_config(struct radv_cmd_buffer *cmd_buffer) if (physical_device->rad_info.family == CHIP_STONEY) radeon_set_context_reg(cs, R_028C40_PA_SC_SHADER_CONTROL, 0); - si_init_compute(cmd_buffer); + si_emit_compute(physical_device, cs); +} + +void si_init_config(struct radv_cmd_buffer *cmd_buffer) +{ + struct radv_physical_device *physical_device = cmd_buffer->device->physical_device; + si_emit_config(physical_device, cmd_buffer->cs); } static void