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

@@ -3,6 +3,7 @@
gnReturnCode gnCreatePresentationQueue(gnPresentationQueue* presentationQueue, struct gnOutputDevice_t* device, struct gnPresentationQueueInfo_t presentationInfo){
presentationQueue->outputDevice = device;
presentationQueue->info = presentationInfo;
return device->deviceFunctions->_gnCreatePresentationQueue(presentationQueue, device, presentationInfo);
}

View File

@@ -23,6 +23,7 @@ typedef struct gnPresentationQueue_t {
gnBool valid;
uint32_t imageCount;
struct gnTexture_t* images;
struct gnPresentationQueueInfo_t info;
} gnPresentationQueue;
gnReturnCode gnCreatePresentationQueue(gnPresentationQueue* presentationQueue, struct gnOutputDevice_t* device, struct gnPresentationQueueInfo_t presentationInfo);

View File

@@ -65,7 +65,7 @@ uint32_t gnGetMaxImageCount(struct gnWindowSurface_t surface, struct gnPhysicalD
uint32_t gnGetPreferredImageCount(struct gnWindowSurface_t surface, struct gnPhysicalDevice_t device) {
struct gnSurfaceDetails_t surfaceDetails = surface.instance->functions->_gnGetSurfaceDetails(&surface, device);
uint32_t imageCount = surfaceDetails.minImageCount;
uint32_t imageCount = surfaceDetails.minImageCount + 1;
if (surfaceDetails.maxImageCount > 0 && imageCount > surfaceDetails.maxImageCount) {
imageCount = surfaceDetails.maxImageCount;
}