OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "vk/GrVkBackendContext.h" | 8 #include "vk/GrVkBackendContext.h" |
9 #include "vk/GrVkExtensions.h" | 9 #include "vk/GrVkExtensions.h" |
10 #include "vk/GrVkInterface.h" | 10 #include "vk/GrVkInterface.h" |
11 #include "vk/GrVkUtil.h" | 11 #include "vk/GrVkUtil.h" |
12 | 12 |
13 //////////////////////////////////////////////////////////////////////////////// | 13 //////////////////////////////////////////////////////////////////////////////// |
14 // Helper code to set up Vulkan context objects | 14 // Helper code to set up Vulkan context objects |
15 | 15 |
16 #ifdef ENABLE_VK_LAYERS | 16 #ifdef SK_ENABLE_VK_LAYERS |
17 const char* kDebugLayerNames[] = { | 17 const char* kDebugLayerNames[] = { |
18 // elements of VK_LAYER_LUNARG_standard_validation | 18 // elements of VK_LAYER_LUNARG_standard_validation |
19 "VK_LAYER_GOOGLE_threading", | 19 "VK_LAYER_GOOGLE_threading", |
20 "VK_LAYER_LUNARG_parameter_validation", | 20 "VK_LAYER_LUNARG_parameter_validation", |
21 "VK_LAYER_LUNARG_device_limits", | 21 "VK_LAYER_LUNARG_device_limits", |
22 "VK_LAYER_LUNARG_object_tracker", | 22 "VK_LAYER_LUNARG_object_tracker", |
23 "VK_LAYER_LUNARG_image", | 23 "VK_LAYER_LUNARG_image", |
24 "VK_LAYER_LUNARG_core_validation", | 24 "VK_LAYER_LUNARG_core_validation", |
25 "VK_LAYER_LUNARG_swapchain", | 25 "VK_LAYER_LUNARG_swapchain", |
26 "VK_LAYER_GOOGLE_unique_objects", | 26 "VK_LAYER_GOOGLE_unique_objects", |
(...skipping 28 matching lines...) Expand all Loading... |
55 0, // engineVerison | 55 0, // engineVerison |
56 kGrVkMinimumVersion, // apiVersion | 56 kGrVkMinimumVersion, // apiVersion |
57 }; | 57 }; |
58 | 58 |
59 GrVkExtensions extensions; | 59 GrVkExtensions extensions; |
60 extensions.initInstance(kGrVkMinimumVersion); | 60 extensions.initInstance(kGrVkMinimumVersion); |
61 | 61 |
62 SkTArray<const char*> instanceLayerNames; | 62 SkTArray<const char*> instanceLayerNames; |
63 SkTArray<const char*> instanceExtensionNames; | 63 SkTArray<const char*> instanceExtensionNames; |
64 uint32_t extensionFlags = 0; | 64 uint32_t extensionFlags = 0; |
65 #ifdef ENABLE_VK_LAYERS | 65 #ifdef SK_ENABLE_VK_LAYERS |
66 for (size_t i = 0; i < SK_ARRAY_COUNT(kDebugLayerNames); ++i) { | 66 for (size_t i = 0; i < SK_ARRAY_COUNT(kDebugLayerNames); ++i) { |
67 if (extensions.hasInstanceLayer(kDebugLayerNames[i])) { | 67 if (extensions.hasInstanceLayer(kDebugLayerNames[i])) { |
68 instanceLayerNames.push_back(kDebugLayerNames[i]); | 68 instanceLayerNames.push_back(kDebugLayerNames[i]); |
69 } | 69 } |
70 } | 70 } |
71 if (extensions.hasInstanceExtension(VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) { | 71 if (extensions.hasInstanceExtension(VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) { |
72 instanceExtensionNames.push_back(VK_EXT_DEBUG_REPORT_EXTENSION_NAME); | 72 instanceExtensionNames.push_back(VK_EXT_DEBUG_REPORT_EXTENSION_NAME); |
73 extensionFlags |= kEXT_debug_report_GrVkExtensionFlag; | 73 extensionFlags |= kEXT_debug_report_GrVkExtensionFlag; |
74 } | 74 } |
75 #endif | 75 #endif |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 } | 165 } |
166 } | 166 } |
167 SkASSERT(presentQueueIndex < queueCount); | 167 SkASSERT(presentQueueIndex < queueCount); |
168 *presentQueueIndexPtr = presentQueueIndex; | 168 *presentQueueIndexPtr = presentQueueIndex; |
169 } | 169 } |
170 | 170 |
171 extensions.initDevice(kGrVkMinimumVersion, inst, physDev); | 171 extensions.initDevice(kGrVkMinimumVersion, inst, physDev); |
172 | 172 |
173 SkTArray<const char*> deviceLayerNames; | 173 SkTArray<const char*> deviceLayerNames; |
174 SkTArray<const char*> deviceExtensionNames; | 174 SkTArray<const char*> deviceExtensionNames; |
175 #ifdef ENABLE_VK_LAYERS | 175 #ifdef SK_ENABLE_VK_LAYERS |
176 for (size_t i = 0; i < SK_ARRAY_COUNT(kDebugLayerNames); ++i) { | 176 for (size_t i = 0; i < SK_ARRAY_COUNT(kDebugLayerNames); ++i) { |
177 if (extensions.hasDeviceLayer(kDebugLayerNames[i])) { | 177 if (extensions.hasDeviceLayer(kDebugLayerNames[i])) { |
178 deviceLayerNames.push_back(kDebugLayerNames[i]); | 178 deviceLayerNames.push_back(kDebugLayerNames[i]); |
179 } | 179 } |
180 } | 180 } |
181 #endif | 181 #endif |
182 if (extensions.hasDeviceExtension(VK_KHR_SWAPCHAIN_EXTENSION_NAME)) { | 182 if (extensions.hasDeviceExtension(VK_KHR_SWAPCHAIN_EXTENSION_NAME)) { |
183 deviceExtensionNames.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME); | 183 deviceExtensionNames.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME); |
184 extensionFlags |= kKHR_swapchain_GrVkExtensionFlag; | 184 extensionFlags |= kKHR_swapchain_GrVkExtensionFlag; |
185 } | 185 } |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 return ctx; | 266 return ctx; |
267 } | 267 } |
268 | 268 |
269 GrVkBackendContext::~GrVkBackendContext() { | 269 GrVkBackendContext::~GrVkBackendContext() { |
270 vkDeviceWaitIdle(fDevice); | 270 vkDeviceWaitIdle(fDevice); |
271 vkDestroyDevice(fDevice, nullptr); | 271 vkDestroyDevice(fDevice, nullptr); |
272 fDevice = VK_NULL_HANDLE; | 272 fDevice = VK_NULL_HANDLE; |
273 vkDestroyInstance(fInstance, nullptr); | 273 vkDestroyInstance(fInstance, nullptr); |
274 fInstance = VK_NULL_HANDLE; | 274 fInstance = VK_NULL_HANDLE; |
275 } | 275 } |
OLD | NEW |