comparison src/vulkan_helpers.nim @ 12:9e5fe647ff91

did: cleanup up a bit
author Sam <sam@basx.dev>
date Tue, 27 Dec 2022 20:47:48 +0700
parents 0660ba9d1930
children b40466fa446a
comparison
equal deleted inserted replaced
11:3415afff1d1a 12:9e5fe647ff91
127 return VK_PRESENT_MODE_FIFO_KHR 127 return VK_PRESENT_MODE_FIFO_KHR
128 128
129 129
130 proc createVulkanInstance*(vulkanVersion: uint32): VkInstance = 130 proc createVulkanInstance*(vulkanVersion: uint32): VkInstance =
131 131
132 var requiredExtensions = @["VK_KHR_surface".cstring]
132 when defined(linux): 133 when defined(linux):
133 var requiredExtensions = [ 134 requiredExtensions.add("VK_KHR_xlib_surface".cstring)
134 # "VK_EXT_acquire_xlib_display".cstring,
135 # "VK_EXT_direct_mode_display".cstring,
136 # "VK_KHR_display".cstring,
137 "VK_KHR_surface".cstring,
138 "VK_KHR_xlib_surface".cstring,
139 "VK_EXT_debug_utils".cstring,
140 ]
141 when defined(windows): 135 when defined(windows):
142 var requiredExtensions = [ 136 requiredExtensions.add("VK_KHR_win32_surface".cstring)
143 "VK_KHR_win32_surface".cstring, 137 when ENABLEVULKANVALIDATIONLAYERS:
144 #"VK_KHR_display".cstring, 138 requiredExtensions.add("VK_EXT_debug_utils".cstring)
145 "VK_KHR_surface".cstring,
146 "VK_EXT_debug_utils".cstring,
147 ]
148 139
149 let availableExtensions = getInstanceExtensions() 140 let availableExtensions = getInstanceExtensions()
150 for extension in requiredExtensions: 141 for extension in requiredExtensions:
151 assert $extension in availableExtensions, $extension 142 assert $extension in availableExtensions, $extension
152 143
153 let desiredLayers = ["VK_LAYER_KHRONOS_validation".cstring, "VK_LAYER_MESA_overlay".cstring]
154 let availableLayers = getValidationLayers() 144 let availableLayers = getValidationLayers()
155 var usableLayers = newSeq[cstring]() 145 var usableLayers = newSeq[cstring]()
156 146
157 when ENABLEVULKANVALIDATIONLAYERS: 147 when ENABLEVULKANVALIDATIONLAYERS:
148 const desiredLayers = ["VK_LAYER_KHRONOS_validation".cstring, "VK_LAYER_MESA_overlay".cstring]
158 for layer in desiredLayers: 149 for layer in desiredLayers:
159 if $layer in availableLayers: 150 if $layer in availableLayers:
160 usableLayers.add(layer) 151 usableLayers.add(layer)
161 152
162 echo "Available validation layers: ", availableLayers 153 echo "Available validation layers: ", availableLayers
174 sType: VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, 165 sType: VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
175 pApplicationInfo: addr(appinfo), 166 pApplicationInfo: addr(appinfo),
176 enabledLayerCount: usableLayers.len.uint32, 167 enabledLayerCount: usableLayers.len.uint32,
177 ppEnabledLayerNames: cast[ptr UncheckedArray[cstring]](addrOrNil(usableLayers)), 168 ppEnabledLayerNames: cast[ptr UncheckedArray[cstring]](addrOrNil(usableLayers)),
178 enabledExtensionCount: requiredExtensions.len.uint32, 169 enabledExtensionCount: requiredExtensions.len.uint32,
179 ppEnabledExtensionNames: cast[ptr UncheckedArray[cstring]](addr(requiredExtensions)) 170 ppEnabledExtensionNames: cast[ptr UncheckedArray[cstring]](addr(requiredExtensions[0]))
180 ) 171 )
181 checkVkResult vkCreateInstance(addr(createinfo), nil, addr(result)) 172 checkVkResult vkCreateInstance(addr(createinfo), nil, addr(result))
182 173
183 loadVK_KHR_surface() 174 loadVK_KHR_surface()
184 when defined(linux): 175 when defined(linux):