Mercurial > games > semicongine
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): |