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 91a6a406c6f178b86e57ce27cad4bbdb5106ef22..fba02faeb5a79f8b03ffb8b6a79e373e63d5d0c4 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) |
 
        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;
 
        if (info->indirect) {
                uint64_t base_va = r600_resource(info->indirect)->gpu_address;