Mercurial > games > semicongine
changeset 1426:075e4197bc95
add: vulkan debug labels, did: improve build-config
author | sam <sam@basx.dev> |
---|---|
date | Sat, 11 Jan 2025 12:22:21 +0700 |
parents | 0daed956cf9e |
children | 676fc13685a9 |
files | semicongine/build.nim semicongine/core/buildconfig.nim semicongine/rendering/shaders.nim semicongine/rendering/vulkan/api.nim |
diffstat | 4 files changed, 23 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/semicongine/build.nim Fri Jan 10 00:09:59 2025 +0700 +++ b/semicongine/build.nim Sat Jan 11 12:22:21 2025 +0700 @@ -36,20 +36,14 @@ return builddir / buildname / platformDir / projectName() proc semicongine_build_switches*(buildname: string, builddir = "./build") = - switch("experimental", "strictEffects") switch("experimental", "strictFuncs") - switch("define", "nimPreviewHashRef") - if defined(linux): - switch("define", "VK_USE_PLATFORM_XLIB_KHR") - elif defined(windows): - switch("define", "VK_USE_PLATFORM_WIN32_KHR") + # switch("define", "nimPreviewHashRef") + if defined(windows): switch("app", "gui") - else: - raise newException(Exception, "Unsupported platform") switch("outdir", semicongine_builddir(buildname, builddir = builddir)) + # adds directory of executable to dynlib search path switch("passL", "-Wl,-rpath,'$ORIGIN'") - # adds directory of executable to dynlib search path proc semicongine_pack*( outdir: string, bundleType: string, resourceRoot: string, withSteam: bool
--- a/semicongine/core/buildconfig.nim Fri Jan 10 00:09:59 2025 +0700 +++ b/semicongine/core/buildconfig.nim Sat Jan 11 12:22:21 2025 +0700 @@ -1,16 +1,5 @@ const ENGINENAME = "semiconginev2" -# checks required build options: -static: - if defined(linux): - assert defined(VK_USE_PLATFORM_XLIB_KHR), - ENGINENAME & " requires --d:VK_USE_PLATFORM_XLIB_KHR for linux builds" - elif defined(windows): - assert defined(VK_USE_PLATFORM_WIN32_KHR), - ENGINENAME & " requires --d:VK_USE_PLATFORM_WIN32_KHR for windows builds" - else: - assert false, "trying to build on unsupported platform" - # build configuration # =====================
--- a/semicongine/rendering/shaders.nim Fri Jan 10 00:09:59 2025 +0700 +++ b/semicongine/rendering/shaders.nim Sat Jan 11 12:22:21 2025 +0700 @@ -506,6 +506,22 @@ ): Pipeline[TShader] = (result.vertexShaderModule, result.fragmentShaderModule) = compileShader(shader) + when not defined(release): + let vertName = VkDebugUtilsObjectNameInfoEXT( + sType: VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, + objectType: VK_OBJECT_TYPE_SHADER_MODULE, + objectHandle: result.vertexShaderModule.uint64, + pObjectName: $(TShader) & "-vert", + ) + checkVkResult engine().vulkan.device.vkSetDebugUtilsObjectNameEXT(addr vertName) + let fragName = VkDebugUtilsObjectNameInfoEXT( + sType: VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, + objectType: VK_OBJECT_TYPE_SHADER_MODULE, + objectHandle: result.fragmentShaderModule.uint64, + pObjectName: $(TShader) & "-frag", + ) + checkVkResult engine().vulkan.device.vkSetDebugUtilsObjectNameEXT(addr fragName) + result.descriptorSetLayouts = createDescriptorSetLayouts[TShader]() # TODO: only add pushConstants if shader actually uses them
--- a/semicongine/rendering/vulkan/api.nim Fri Jan 10 00:09:59 2025 +0700 +++ b/semicongine/rendering/vulkan/api.nim Sat Jan 11 12:22:21 2025 +0700 @@ -18585,10 +18585,12 @@ "VK_NV_compute_shader_derivatives": loadVK_NV_compute_shader_derivatives, "VK_QCOM_fragment_density_map_offset": loadVK_QCOM_fragment_density_map_offset, }.toTable -when defined(VK_USE_PLATFORM_XLIB_KHR): + +# we only support xlib on linux atm +when defined(linux): include ./platform/xlib EXTENSION_LOADERS["VK_KHR_xlib_surface"] = loadVK_KHR_xlib_surface -when defined(VK_USE_PLATFORM_WIN32_KHR): +when defined(windows): include ./platform/win32 EXTENSION_LOADERS["VK_KHR_external_semaphore_win32"] = loadVK_KHR_external_semaphore_win32