aboutsummaryrefslogtreecommitdiffstats
path: root/src/amd
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-02-13 03:09:09 +0000
committerDave Airlie <[email protected]>2017-02-13 20:02:34 +0000
commitb26253b34d53a7b8235bf301b68889ba6c3a19a6 (patch)
tree13b67017bda99af17a54da18497eda188701c112 /src/amd
parent604e562e5b2b7e01e5c9d031a7a2401cfe0edf62 (diff)
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 <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r--src/amd/vulkan/si_cmd_buffer.c28
1 files changed, 20 insertions, 8 deletions
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