From df30dfd5c4223159cbe33f680720bf6048c8b0b2 Mon Sep 17 00:00:00 2001 From: Gabriele Gristina Date: Sun, 22 Jun 2025 21:06:31 +0200 Subject: [PATCH] fix is_autotune checks on Apple Metal --- src/backend.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend.c b/src/backend.c index d9880c195..02cdd73b8 100644 --- a/src/backend.c +++ b/src/backend.c @@ -2660,12 +2660,15 @@ int run_kernel (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, con const size_t global_work_size[3] = { num_elements, 1, 1 }; const size_t local_work_size[3] = { kernel_threads, 1, 1 }; + double ms = 0; + if (is_autotune == true) { hc_mtlEncodeComputeCommand (hashcat_ctx, metal_command_encoder, metal_command_buffer, global_work_size[0], local_work_size[0], &ms); - } - double ms = 0; + // hc_mtlEncodeComputeCommand_pre() must be called before every hc_mtlEncodeComputeCommand() + if (hc_mtlEncodeComputeCommand_pre (hashcat_ctx, metal_pipeline, device_param->metal_command_queue, &metal_command_buffer, &metal_command_encoder) == -1) return -1; + } const int rc_cc = hc_mtlEncodeComputeCommand (hashcat_ctx, metal_command_encoder, metal_command_buffer, global_work_size[0], local_work_size[0], &ms);