]> O.S.I.I.S - jp/vkhelpers.git/commitdiff
vkCreateInstance result in app->status dev
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 4 Aug 2025 09:52:09 +0000 (11:52 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 4 Aug 2025 09:52:09 +0000 (11:52 +0200)
include/vkh.h
src/deps/tinycthread.h
src/vkh_app.c
src/vkh_device.c
src/vkh_device.h
src/vkh_image.c
src/vkh_presenter.c

index 3e9a95ba1e384ecf289742e03b1fa4478d452dba..1438055d5cc1b38f9d3dbdca0708a8fe718eb72f 100644 (file)
@@ -130,11 +130,10 @@ typedef enum VkhMemoryUsage {
 #endif
 #endif
 
-
-#define VKH_LOG_ERR        0x00000001
-#define VKH_LOG_DEBUG      0x00000002
-#define VKH_LOG_INFO       0x00000004
-#define VKH_LOG_FULL       0xffffffff
+#define VKH_LOG_ERR   0x00000001
+#define VKH_LOG_DEBUG 0x00000002
+#define VKH_LOG_INFO  0x00000004
+#define VKH_LOG_FULL  0xffffffff
 
 #ifdef DEBUG
 extern uint32_t vkh_log_level;
@@ -144,7 +143,7 @@ extern uint32_t vkh_log_level;
 #ifdef DEBUG
 #define LOG(level, ...)                                                                                                \
     {                                                                                                                  \
-        if ((vkh_log_level) & (level))                                                                                \
+        if ((vkh_log_level) & (level))                                                                                 \
             fprintf(stdout, __VA_ARGS__);                                                                              \
     }
 #else
@@ -156,21 +155,20 @@ extern uint32_t vkh_log_level;
     {                                                                                                                  \
         VkResult res = (f);                                                                                            \
         if (res != VK_SUCCESS) {                                                                                       \
-            LOG(VKH_LOG_ERR, "Fatal : VkResult is %d in %s at line %d\n", res, __FILE__, __LINE__);                     \
+            LOG(VKH_LOG_ERR, "Fatal : VkResult is %d in %s at line %d\n", res, __FILE__, __LINE__);                    \
             assert(res == VK_SUCCESS);                                                                                 \
         }                                                                                                              \
     }
 
 #define VKH_CHECK_RESULT(status, f)                                                                                    \
     {                                                                                                                  \
-        status = (f);                                                                                            \
-        if (status != VK_SUCCESS) {                                                                                       \
-            LOG(VKH_LOG_ERR, "Fatal : VkResult is %d in %s at line %d\n", status, __FILE__, __LINE__);                     \
-            assert(status == VK_SUCCESS);                                                                                 \
+        status = (f);                                                                                                  \
+        if (status != VK_SUCCESS) {                                                                                    \
+            LOG(VKH_LOG_ERR, "Fatal : VkResult is %d in %s at line %d\n", status, __FILE__, __LINE__);                 \
+            assert(status == VK_SUCCESS);                                                                              \
         }                                                                                                              \
     }
 
-
 typedef struct _vkh_app_t       *VkhApp;
 typedef struct _vkh_phy_t       *VkhPhyInfo;
 typedef struct _vkh_device_t    *VkhDevice;
@@ -182,16 +180,16 @@ typedef struct _vkh_presenter_t *VkhPresenter;
 /*************
  * VkhApp    *
  *************/
-vkh_public VkhApp     vkh_app_create(uint32_t version_major, uint32_t version_minor, const char *app_name,
-                                     uint32_t enabledLayersCount, const char **enabledLayers, uint32_t ext_count,
-                                     const char *extentions[]);
-vkh_public void       vkh_app_destroy(VkhApp app);
+vkh_public VkhApp vkh_app_create(uint32_t version_major, uint32_t version_minor, const char *app_name,
+                                 uint32_t enabledLayersCount, const char **enabledLayers, uint32_t ext_count,
+                                 const char *extentions[]);
+vkh_public void   vkh_app_destroy(VkhApp app);
 /**
  * @brief Get current status of vkh application
  * @param app
  * @return VkResult
  */
-vkh_public VkResult   vkh_app_status (VkhApp app);
+vkh_public VkResult   vkh_app_status(VkhApp app);
 vkh_public VkInstance vkh_app_get_inst(VkhApp app);
 // VkPhysicalDevice    vkh_app_select_phy  (VkhApp app, VkPhysicalDeviceType preferedPhyType);
 vkh_public VkhPhyInfo *vkh_app_get_phyinfos(VkhApp app, uint32_t *count, VkSurfaceKHR surface);
@@ -203,9 +201,9 @@ vkh_public void        vkh_app_free_phyinfos(uint32_t count, VkhPhyInfo *infos);
  * @param Message severity flags.
  * @param optional message callback, if null a default one which print to stdout is configured.
  */
-vkh_public void        vkh_app_enable_debug_messenger(VkhApp app, VkDebugUtilsMessageTypeFlagsEXT typeFlags,
-                                                      VkDebugUtilsMessageSeverityFlagsEXT  severityFlags,
-                                                      PFN_vkDebugUtilsMessengerCallbackEXT callback);
+vkh_public void vkh_app_enable_debug_messenger(VkhApp app, VkDebugUtilsMessageTypeFlagsEXT typeFlags,
+                                               VkDebugUtilsMessageSeverityFlagsEXT  severityFlags,
+                                               PFN_vkDebugUtilsMessengerCallbackEXT callback);
 
 vkh_public VkPhysicalDeviceProperties vkh_app_get_phy_properties(VkhApp app, uint32_t phyIndex);
 
@@ -256,7 +254,7 @@ vkh_public void vkh_device_set_object_name(VkhDevice dev, VkObjectType objectTyp
 
 vkh_public VkSampler vkh_device_create_sampler(VkhDevice dev, VkFilter magFilter, VkFilter minFilter,
                                                VkSamplerMipmapMode mipmapMode, VkSamplerAddressMode addressMode);
-vkh_public void vkh_device_destroy_sampler(VkhDevice dev, VkSampler sampler);
+vkh_public void      vkh_device_destroy_sampler(VkhDevice dev, VkSampler sampler);
 
 /****************
  * VkhPresenter *
@@ -264,9 +262,9 @@ vkh_public void vkh_device_destroy_sampler(VkhDevice dev, VkSampler sampler);
 vkh_public VkhPresenter vkh_presenter_create(VkhDevice dev, uint32_t presentQueueFamIdx, VkSurfaceKHR surface,
                                              uint32_t width, uint32_t height, VkFormat preferedFormat,
                                              VkPresentModeKHR presentMode);
-vkh_public void vkh_presenter_destroy(VkhPresenter r);
-vkh_public bool vkh_presenter_draw(VkhPresenter r);
-vkh_public bool vkh_presenter_acquireNextImage(VkhPresenter r, VkFence fence, VkSemaphore semaphore);
+vkh_public void         vkh_presenter_destroy(VkhPresenter r);
+vkh_public bool         vkh_presenter_draw(VkhPresenter r);
+vkh_public bool         vkh_presenter_acquireNextImage(VkhPresenter r, VkFence fence, VkSemaphore semaphore);
 vkh_public void vkh_presenter_build_blit_cmd(VkhPresenter r, VkImage blitSource, uint32_t width, uint32_t height);
 vkh_public void vkh_presenter_create_swapchain(VkhPresenter r);
 vkh_public void vkh_presenter_get_size(VkhPresenter r, uint32_t *pWidth, uint32_t *pHeight);
index eaacfbe38683f7122380368dc16f2fa0ec0c2c35..d1b58f5bc6e3e37612bb132d7601772c05320279 100644 (file)
@@ -250,7 +250,7 @@ typedef struct {
     CRITICAL_SECTION mWaitersCountLock; /* Serialize access to mWaitersCount. */
 } cnd_t;
 #else
-typedef pthread_cond_t  cnd_t;
+typedef pthread_cond_t cnd_t;
 #endif
 
 /** Create a condition variable object.
@@ -315,7 +315,7 @@ int cnd_timedwait(cnd_t *cond, mtx_t *mtx, const struct timespec *ts);
 #if defined(_TTHREAD_WIN32_)
 typedef HANDLE thrd_t;
 #else
-typedef pthread_t       thrd_t;
+typedef pthread_t thrd_t;
 #endif
 
 /** Thread start function.
@@ -396,7 +396,7 @@ void thrd_yield(void);
 #if defined(_TTHREAD_WIN32_)
 typedef DWORD tss_t;
 #else
-typedef pthread_key_t   tss_t;
+typedef pthread_key_t tss_t;
 #endif
 
 /** Destructor function for a thread-specific storage.
index a42068c40ffb039c6a335460a4143d1a8f613167..878ccb3978fdfa4531b857370d5cbe0135f7d2cb 100644 (file)
@@ -25,7 +25,7 @@
 #define ENGINE_VERSION 1
 uint32_t vkh_log_level = VKH_LOG_DEBUG;
 
-//default debug messenger callback enabled with 'vkh_app_enable_debug_messenger'
+// default debug messenger callback enabled with 'vkh_app_enable_debug_messenger'
 VkBool32 debugUtilsMessengerCallback(VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
                                      VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
                                      const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, void *pUserData) {
@@ -65,7 +65,8 @@ VkhApp vkh_app_create(uint32_t version_major, uint32_t version_minor, const char
                       const char **enabledLayers, uint32_t ext_count, const char *extentions[]) {
     uint32_t apiVersion;
     vkEnumerateInstanceVersion(&apiVersion);
-    LOG(VKH_LOG_INFO, "VkhApp create: instance api version = %d.%d", VK_API_VERSION_MAJOR(apiVersion), VK_API_VERSION_MINOR(apiVersion));
+    LOG(VKH_LOG_INFO, "VkhApp create: instance api version = %d.%d", VK_API_VERSION_MAJOR(apiVersion),
+        VK_API_VERSION_MINOR(apiVersion));
 
     VkhApp app = (VkhApp)malloc(sizeof(vkh_app_t));
     if (!app) {
@@ -91,7 +92,8 @@ VkhApp vkh_app_create(uint32_t version_major, uint32_t version_minor, const char
                                       .enabledLayerCount       = enabledLayersCount,
                                       .ppEnabledLayerNames     = enabledLayers};
 
-    VKH_CHECK_RESULT(app->status, vkCreateInstance(&inst_info, NULL, &app->inst));
+    //VKH_CHECK_RESULT(app->status, vkCreateInstance(&inst_info, NULL, &app->inst));
+    app->status = vkCreateInstance(&inst_info, NULL, &app->inst);
     app->infos          = infos;
     app->debugMessenger = VK_NULL_HANDLE;
     return app;
@@ -106,7 +108,7 @@ void vkh_app_destroy(VkhApp app) {
     vkDestroyInstance(app->inst, NULL);
     free(app);
 }
-VkResult vkh_app_status(VkhApp app) { return app==NULL ? VK_ERROR_UNKNOWN : app->status; }
+VkResult vkh_app_status(VkhApp app) { return app == NULL ? VK_ERROR_UNKNOWN : app->status; }
 
 VkInstance vkh_app_get_inst(VkhApp app) { return vkh_app_status(app) ? VK_NULL_HANDLE : app->inst; }
 
index 66ec7a71120b23b4af76db427ecebb8c8a0c0692..077c2edd07fbfa00235851c24b94bb9609b01833 100644 (file)
@@ -53,7 +53,7 @@ VkhDevice vkh_device_import(VkInstance inst, VkPhysicalDevice phy, VkDevice vkDe
 
     return dev;
 }
-VkResult         vkh_device_status(VkhDevice dev) { return dev==NULL ? VK_ERROR_UNKNOWN : dev->status; }
+VkResult         vkh_device_status(VkhDevice dev) { return dev == NULL ? VK_ERROR_UNKNOWN : dev->status; }
 VkDevice         vkh_device_get_vkdev(VkhDevice dev) { return vkh_device_status(dev) ? VK_NULL_HANDLE : dev->dev; }
 VkPhysicalDevice vkh_device_get_phy(VkhDevice dev) { return vkh_device_status(dev) ? VK_NULL_HANDLE : dev->phy; }
 VkhApp           vkh_device_get_app(VkhDevice dev) { return vkh_device_status(dev) ? NULL : dev->vkhApplication; }
index b21e41d6ea4b37a1eb78d2958e0e1211e7e2eef0..16c449a8570599909b07fa371b1e12344a94f920 100644 (file)
@@ -40,7 +40,7 @@ typedef struct _vkh_device_t {
 #ifdef VKH_USE_VMA
     VmaAllocator allocator;
 #endif
-    VkhApp vkhApplication;
+    VkhApp   vkhApplication;
     VkResult status;
 } vkh_device_t;
 
index fc2ac3eb8271ec48eea067e2684ee572f09366a0..729bf61c477ad236868199f14c110fa16803b3d6 100644 (file)
@@ -54,7 +54,8 @@ VkhImage _vkh_image_create(VkhDevice pDev, VkImageType imageType, VkFormat forma
     img->view  = VK_NULL_HANDLE;*/
 #ifdef VKH_USE_VMA
     VmaAllocationCreateInfo allocInfo = {.usage = (VmaMemoryUsage)memprops};
-    VKH_CHECK_RESULT(img->status, vmaCreateImage(pDev->allocator, pInfo, &allocInfo, &img->image, &img->alloc, &img->allocInfo));
+    VKH_CHECK_RESULT(img->status,
+                     vmaCreateImage(pDev->allocator, pInfo, &allocInfo, &img->image, &img->alloc, &img->allocInfo));
 #else
     VK_CHECK_RESULT(vkCreateImage(pDev->dev, pInfo, NULL, &img->image));
     VkMemoryRequirements memReq;
@@ -108,7 +109,7 @@ void vkh_image_reference(VkhImage img) {
     img->references++;
     mtx_unlock(&img->mutex);
 }
-VkResult vkh_image_status(VkhImage img) { return img==NULL ? VK_ERROR_UNKNOWN : img->status; }
+VkResult vkh_image_status(VkhImage img) { return img == NULL ? VK_ERROR_UNKNOWN : img->status; }
 
 VkhImage vkh_tex2d_array_create(VkhDevice pDev, VkFormat format, uint32_t width, uint32_t height, uint32_t layers,
                                 VkhMemoryUsage memprops, VkImageUsageFlags usage) {
index 6c512337fdc5443e3073ce293ba8270faf5e0ce4..aca65904588a579ddbd8e06f73d9689251efdbf0 100644 (file)
@@ -48,7 +48,7 @@ VkhPresenter vkh_presenter_create(VkhDevice dev, uint32_t presentQueueFamIdx, Vk
     r->height  = height;
     vkGetDeviceQueue(r->dev->dev, r->qFam, 0, &r->queue);
 
-    r->cmdPool        = vkh_cmd_pool_create(r->dev, presentQueueFamIdx, 0);
+    r->cmdPool = vkh_cmd_pool_create(r->dev, presentQueueFamIdx, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT);
     r->semaPresentEnd = vkh_semaphore_create(r->dev);
     r->semaDrawEnd    = vkh_semaphore_create(r->dev);
     r->fenceDraw      = vkh_fence_create_signaled(r->dev);