radeonsi: set COMPUTE_DISPATCH_INITIATOR.ORDER_MODE = 1
authorMarek Olšák <marek.olsak@amd.com>
Tue, 27 Jun 2017 15:33:54 +0000 (17:33 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 29 Jun 2017 14:19:35 +0000 (16:19 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_compute.c

index 91a6a40..fba02fa 100644 (file)
@@ -720,7 +720,10 @@ static void si_emit_dispatch_packets(struct si_context *sctx,
 
        unsigned dispatch_initiator =
                S_00B800_COMPUTE_SHADER_EN(1) |
-               S_00B800_FORCE_START_AT_000(1);
+               S_00B800_FORCE_START_AT_000(1) |
+               /* If the KMD allows it (there is a KMD hw register for it),
+                * allow launching waves out-of-order. (same as Vulkan) */
+               S_00B800_ORDER_MODE(sctx->b.chip_class >= CIK);
 
        if (info->indirect) {
                uint64_t base_va = r600_resource(info->indirect)->gpu_address;