summaryrefslogtreecommitdiffstats
path: root/src/core/compositor/native_skia_output_device_vulkan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/compositor/native_skia_output_device_vulkan.cpp')
-rw-r--r--src/core/compositor/native_skia_output_device_vulkan.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/core/compositor/native_skia_output_device_vulkan.cpp b/src/core/compositor/native_skia_output_device_vulkan.cpp
index c2ad7a382..b775276f6 100644
--- a/src/core/compositor/native_skia_output_device_vulkan.cpp
+++ b/src/core/compositor/native_skia_output_device_vulkan.cpp
@@ -4,6 +4,7 @@
#include "native_skia_output_device_vulkan.h"
#include "gpu/command_buffer/service/shared_image/shared_image_format_service_utils.h"
+#include "ui/base/ozone_buildflags.h"
#include <QtGui/qvulkaninstance.h>
#include <QtGui/qvulkanfunctions.h>
@@ -11,17 +12,17 @@
#include <QtQuick/qsgtexture.h>
#if defined(USE_OZONE)
-#include "ui/ozone/buildflags.h"
-#if BUILDFLAG(OZONE_PLATFORM_X11)
+#if BUILDFLAG(IS_OZONE_X11)
// We need to define USE_VULKAN_XCB for proper vulkan function pointers.
// Avoiding it may lead to call wrong vulkan functions.
// This is originally defined in chromium/gpu/vulkan/BUILD.gn.
#define USE_VULKAN_XCB
-#endif // BUILDFLAG(OZONE_PLATFORM_X11)
+#endif // BUILDFLAG(IS_OZONE_X11)
#include "gpu/vulkan/vulkan_function_pointers.h"
-
#include "components/viz/common/gpu/vulkan_context_provider.h"
#include "gpu/vulkan/vulkan_device_queue.h"
+#include "third_party/skia/include/gpu/vk/GrVkTypes.h"
+#include "third_party/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h"
#endif // defined(USE_OZONE)
namespace QtWebEngineCore {
@@ -84,7 +85,8 @@ QSGTexture *NativeSkiaOutputDeviceVulkan::texture(QQuickWindow *win, uint32_t te
return nullptr;
}
- backendTexture.getVkImageInfo(&vkImageInfo);
+ GrBackendTextures::GetVkImageInfo(backendTexture, &vkImageInfo);
+
if (vkImageInfo.fAlloc.fMemory == VK_NULL_HANDLE) {
qWarning("VULKAN: Unable to access Vulkan memory.");
return nullptr;
@@ -187,6 +189,7 @@ QSGTexture *NativeSkiaOutputDeviceVulkan::texture(QQuickWindow *win, uint32_t te
Q_ASSERT(status == S_OK);
status = resource->CreateSharedHandle(NULL, DXGI_SHARED_RESOURCE_READ, NULL, &sharedHandle);
Q_ASSERT(status == S_OK);
+ resource->Release();
if (!sharedHandle)
qFatal("VULKAN: Unable to extract shared handle.");
@@ -200,7 +203,7 @@ QSGTexture *NativeSkiaOutputDeviceVulkan::texture(QQuickWindow *win, uint32_t te
importedImageCreateInfo.pNext = &externalMemoryImageCreateInfo;
importedImageCreateInfo.flags = 0;
importedImageCreateInfo.imageType = VK_IMAGE_TYPE_2D;
- importedImageCreateInfo.format = gpu::ToVkFormat(m_frontBuffer->sharedImageFormat());
+ importedImageCreateInfo.format = gpu::ToVkFormatSinglePlanar(m_frontBuffer->sharedImageFormat());
importedImageCreateInfo.extent.width = static_cast<uint32_t>(size().width());
importedImageCreateInfo.extent.height = static_cast<uint32_t>(size().height());
importedImageCreateInfo.extent.depth = 1;