66 {
67
68
69
70
71
73 return;
74 }
76 SkASSERT(grVkEnumerateInstanceExtensionProperties);
77
79
80 uint32_t extensionCount = 0;
81 res = grVkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
83 return;
84 }
86 res = grVkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, extensions);
89 return;
90 }
91 for (uint32_t i = 0; i < extensionCount; ++i) {
92 int idx =
find_info(fExtensions, extensions[i].extensionName);
93 if (idx >= 0) {
94 fExtensions[idx].fSpecVersion =
extensions[i].specVersion;
95 }
96 }
98
100 return;
101 }
103 SkASSERT(grVkEnumerateDeviceExtensionProperties);
104
105
106 extensionCount = 0;
107 res = grVkEnumerateDeviceExtensionProperties(physDevice, nullptr, &extensionCount, nullptr);
109 return;
110 }
112 res = grVkEnumerateDeviceExtensionProperties(physDevice, nullptr, &extensionCount, extensions);
115 return;
116 }
117 for (uint32_t i = 0; i < extensionCount; ++i) {
118 int idx =
find_info(fExtensions, extensions[i].extensionName);
119 if (idx >= 0) {
120 fExtensions[idx].fSpecVersion =
extensions[i].specVersion;
121 }
122 }
124}
125
126bool VulkanExtensions::hasExtension(const char ext[], uint32_t minVersion) const {
128 return idx >= 0 && fExtensions[idx].fSpecVersion >= minVersion;
129}
130
131}
#define GET_PROC(F, inst)
static int find_info(const TArray< VulkanExtensions::Info > &infos, const char ext[])