21 if (!sk_gpu_test::LoadVkLibraryAndGetProcAddrFuncs(&instProc)) {
22 SkDebugf(
"Could not load vulkan library\n");
26 auto createVkSurface = [&
info, instProc](VkInstance
instance) -> VkSurfaceKHR {
28 if (!createXcbSurfaceKHR) {
38 surfaceCreateInfo.
pNext =
nullptr;
39 surfaceCreateInfo.
flags = 0;
51 auto canPresent = [&
info, instProc](VkInstance
instance, VkPhysicalDevice physDev,
52 uint32_t queueFamilyIndex) {
54 getPhysicalDeviceXcbPresentationSupportKHR =
nullptr;
55 if (!getPhysicalDeviceXcbPresentationSupportKHR) {
56 getPhysicalDeviceXcbPresentationSupportKHR =
58 instProc(
instance,
"vkGetPhysicalDeviceXcbPresentationSupportKHR");
61 Display* display =
info.fDisplay;
62 VisualID visualID = XVisualIDFromVisual(DefaultVisual(
info.fDisplay,
63 DefaultScreen(
info.fDisplay)));
64 VkBool32 check = getPhysicalDeviceXcbPresentationSupportKHR(physDev,
66 XGetXCBConnection(display),
70 std::unique_ptr<WindowContext> ctx(
71 new internal::GraphiteVulkanWindowContext(displayParams,
75 if (!ctx->isValid()) {