From b5cd8ad7db053d42f3a96bab08a0793a5cd28ae8 Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Sun, 3 Aug 2025 17:51:54 -0400 Subject: [PATCH] redo error handling --- projects/apis/metal/src/submit/metal_submit.m | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/projects/apis/metal/src/submit/metal_submit.m b/projects/apis/metal/src/submit/metal_submit.m index dab2ac7..036ced8 100644 --- a/projects/apis/metal/src/submit/metal_submit.m +++ b/projects/apis/metal/src/submit/metal_submit.m @@ -1,6 +1,8 @@ #include "metal_submit.h" +#include "instance/gryphn_debugger.h" #include "synchronization/fence/gryphn_fence.h" #include "sync/fence/metal_fence.h" +#include "instance/gryphn_instance.h" gnReturnCode metalSyncSubmit(gnOutputDevice device, gnSubmitSyncInfo info) { if (device == GN_NULL_HANDLE) return GN_INVALID_HANDLE; @@ -21,12 +23,12 @@ gnReturnCode metalSyncSubmit(gnOutputDevice device, gnSubmitSyncInfo info) { mtlSignalSemaphore(info.signalSemaphores[c], commandBuffer); [info.commandBuffers[i]->commandBuffer->commandBuffer addCompletedHandler:^(id buffer) { - if (buffer.error) { - NSLog(@"Command buffer error: %s", buffer.error.localizedDescription.UTF8String); - } - if (atomic_fetch_sub_explicit(&buffersLeft, 1, memory_order_acq_rel) == 1) { + if (buffer.error) + gnDebuggerSetErrorMessage(info.commandBuffers[i]->instance->debugger, (gnMessageData){ + .message = gnCombineStrings(gnCreateString("Command buffer failed to run "), buffer.error.localizedDescription.UTF8String) + }); + if (atomic_fetch_sub_explicit(&buffersLeft, 1, memory_order_acq_rel) == 1) [fenceToSignal->fence->event setSignaledValue:fenceToSignal->fence->currentValue]; - } }]; [commandBuffer commit];