summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_device.c
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2017-12-14 15:51:18 +0100
committerSamuel Pitoiset <[email protected]>2017-12-14 22:20:55 +0100
commit9fdc1437baab9dbb0b1c3473af27b2241954b2de (patch)
treec3386d29de81f707d5f2de88e147ab709f710345 /src/amd/vulkan/radv_device.c
parent2e58ef46a8f31888b6507de81d7c48ac6e57b2e9 (diff)
radv: store the dispatch initiator into the device
Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_device.c')
-rw-r--r--src/amd/vulkan/radv_device.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 5a0dd647273..7c0971d190d 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -1101,6 +1101,16 @@ VkResult radv_CreateDevice(
device->scratch_waves = MAX2(32 * physical_device->rad_info.num_good_compute_units,
max_threads_per_block / 64);
+ device->dispatch_initiator = S_00B800_COMPUTE_SHADER_EN(1) |
+ S_00B800_FORCE_START_AT_000(1);
+
+ if (device->physical_device->rad_info.chip_class >= CIK) {
+ /* If the KMD allows it (there is a KMD hw register for it),
+ * allow launching waves out-of-order.
+ */
+ device->dispatch_initiator |= S_00B800_ORDER_MODE(1);
+ }
+
radv_device_init_gs_info(device);
device->tess_offchip_block_dw_size =