Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5bc4ddb9f31fb9002336127c75a643786f1d7b56
https://github.com/WebKit/WebKit/commit/5bc4ddb9f31fb9002336127c75a643786f1d7b56
Author: Adrian Perez de Castro <[email protected]>
Date: 2026-05-05 (Tue, 05 May 2026)
Changed paths:
M Source/WebCore/PlatformGTK.cmake
M Source/WebCore/PlatformWPE.cmake
M Source/WebCore/SourcesGTK.txt
M Source/WebCore/SourcesWPE.txt
M Source/WebCore/platform/Logging.h
A Source/WebCore/platform/graphics/vulkan/VulkanTypes.cpp
A Source/WebCore/platform/graphics/vulkan/VulkanTypes.h
A Source/WebCore/platform/graphics/vulkan/VulkanUtilities.cpp
A Source/WebCore/platform/graphics/vulkan/VulkanUtilities.h
M Source/WebKit/Platform/Logging.h
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphicsGLib.cpp
M Source/WebKit/WebProcess/WebProcess.h
M Source/WebKit/WebProcess/glib/WebProcessGLib.cpp
M Source/cmake/OptionsGTK.cmake
M Source/cmake/OptionsWPE.cmake
Log Message:
-----------
[WPE][GTK] Initialize Vulkan in a way that will allow sharing allocated
buffers with OpenGL
https://bugs.webkit.org/show_bug.cgi?id=312992
Reviewed by Nikolas Zimmermann.
This imports the needed CMake bits to detect and use Volk, which is a
Vulkan loader that works in a way similar to Epoxy. This way it is not
required at runtime to have Vulkan installed, and the built WebKit
library does not depend on a fixed version of libvulkan.
The rest of the patch is adding scaffolding for dealing with Vulkan
types in a more idiomatic and type-safe way, reusing C++ types from
WTF, and includes initialization code for the Vulkan context in the
WebProcess.
Follow-up patches will wire device selection, and buffer allocation.
* Source/WebCore/PlatformGTK.cmake:
* Source/WebCore/PlatformWPE.cmake:
* Source/WebCore/SourcesGTK.txt:
* Source/WebCore/SourcesWPE.txt:
* Source/WebCore/platform/Logging.h:
* Source/WebCore/platform/graphics/vulkan/VulkanTypes.cpp: Added.
(WebCore::Vulkan::ApplicationInfo::ApplicationInfo):
(WebCore::Vulkan::InstanceCreateInfo::InstanceCreateInfo):
(WebCore::Vulkan::PhysicalDevice::fillProperties const):
(WebCore::Vulkan::Instance::availableLayers):
(WebCore::Vulkan::Instance::hasLayers):
(WebCore::Vulkan::Instance::hasLayer):
(WebCore::Vulkan::Instance::availableExtensions):
(WebCore::Vulkan::Instance::hasExtensions):
(WebCore::Vulkan::Instance::hasExtension):
(WebCore::Vulkan::Instance::setSharedInstance):
(WebCore::Vulkan::Instance::sharedInstanceIfExists):
(WebCore::Vulkan::Instance::sharedInstance):
(WebCore::Vulkan::Instance::create):
(WebCore::Vulkan::Instance::~Instance):
(WebCore::Vulkan::Instance::availableDevices const):
(WebCore::Vulkan::debugUtilsMessengerHandleMessage):
(WebCore::Vulkan::Instance::installDebugMessenger):
(WebCore::Vulkan::Instance::installDebugMessenger const):
* Source/WebCore/platform/graphics/vulkan/VulkanTypes.h: Added.
(WebCore::Vulkan::BaseStruct::BaseStruct):
(WebCore::Vulkan::BaseStruct::operator=):
(WebCore::Vulkan::BaseStruct::ptr const):
(WebCore::Vulkan::BaseStruct::ptr):
(WebCore::Vulkan::Structure::Structure):
(WebCore::Vulkan::Structure::next):
(WebCore::Vulkan::Structure::operator-> const):
(WebCore::Vulkan::Structure::operator->):
(WebCore::Vulkan::ApplicationInfo::ApplicationInfo):
(WebCore::Vulkan::InstanceCreateInfo::InstanceCreateInfo):
(WebCore::Vulkan::PhysicalDeviceProperties::operator-> const):
(WebCore::Vulkan::PhysicalDeviceProperties::operator->):
(WebCore::Vulkan::Instance::Instance):
(WebCore::Vulkan::Instance::operator=):
* Source/WebCore/platform/graphics/vulkan/VulkanUtilities.cpp: Added.
(WebCore::Vulkan::resultString):
(WebCore::Vulkan::initializeIfNeeded):
* Source/WebCore/platform/graphics/vulkan/VulkanUtilities.h: Added.
(WebCore::Vulkan::resultString):
* Source/WebKit/Platform/Logging.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGraphicsContextGL const):
*
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphicsGLib.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::updatePreferences):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::initializeVulkanIfNeeded):
(WebKit::WebProcess::platformInitializeWebProcess):
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:
Canonical link: https://commits.webkit.org/312614@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications