metal queue submission

This commit is contained in:
Greg Wells
2025-05-31 06:14:33 -04:00
parent eb244447cc
commit 0d02d2e8fc
15 changed files with 120 additions and 35 deletions

View File

@@ -8,19 +8,19 @@
gnReturnCode gnCreateOutputDeviceFn(gnOutputDevice* outputDevice, gnInstance* instance, struct gnOutputDeviceInfo_t deviceInfo) {
outputDevice->outputDevice = malloc(sizeof(gnPlatformOutputDevice));
outputDevice->outputDevice->device = deviceInfo.physicalDevice.physicalDevice->device.retain;
// outputDevice->outputDevice->queueCount = deviceInfo.queueInfoCount;
// outputDevice->outputDevice->queues = malloc(sizeof(id<MTLCommandQueue>) * deviceInfo.queueInfoCount);
// for (int i = 0; i < deviceInfo.queueInfoCount; i++) {
// outputDevice->outputDevice->queues[i] = outputDevice->outputDevice->device.newCommandQueue;
// }
outputDevice->outputDevice->queueCount = deviceInfo.queueInfoCount;
outputDevice->outputDevice->queues = malloc(sizeof(id<MTLCommandQueue>) * deviceInfo.queueInfoCount);
for (int i = 0; i < deviceInfo.queueInfoCount; i++) {
outputDevice->outputDevice->queues[i] = outputDevice->outputDevice->device.newCommandQueue;
}
return GN_SUCCESS;
}
void gnDestroyOutputDeviceFn(gnOutputDevice* device) {
// for (int i = 0; i < device->outputDevice->queueCount; i++) {
// [device->outputDevice->queues[i] release];
// }
for (int i = 0; i < device->outputDevice->queueCount; i++) {
[device->outputDevice->queues[i] release];
}
[device->outputDevice->device release];
free(device->outputDevice);
}