blob: b462ba9e99b7bf4d2197da54ace7e298eed1928e [file] [log] [blame]
Peng Huang84fba7cb2020-03-27 16:56:431// Copyright 2020 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "gpu/vulkan/vulkan_image.h"
6
Hans Wennborgeb1475dc2020-06-19 11:11:027#include "base/logging.h"
Peng Huangcb73a632020-04-03 23:27:308#include "gpu/vulkan/fuchsia/vulkan_fuchsia_ext.h"
9#include "gpu/vulkan/vulkan_device_queue.h"
10#include "gpu/vulkan/vulkan_function_pointers.h"
11
Peng Huang84fba7cb2020-03-27 16:56:4312namespace gpu {
13
14bool VulkanImage::InitializeFromGpuMemoryBufferHandle(
15 VulkanDeviceQueue* device_queue,
16 gfx::GpuMemoryBufferHandle gmb_handle,
17 const gfx::Size& size,
18 VkFormat format,
19 VkImageUsageFlags usage,
20 VkImageCreateFlags flags,
21 VkImageTiling image_tiling) {
22 NOTIMPLEMENTED();
23 return false;
24}
25
Peng Huangcb73a632020-04-03 23:27:3026zx::vmo VulkanImage::GetMemoryZirconHandle() {
27 DCHECK(handle_types_ &
28 VK_EXTERNAL_MEMORY_HANDLE_TYPE_TEMP_ZIRCON_VMO_BIT_FUCHSIA);
29 VkMemoryGetZirconHandleInfoFUCHSIA get_handle_info = {
30 .sType = VK_STRUCTURE_TYPE_TEMP_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
31 .memory = device_memory_,
32 .handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_TEMP_ZIRCON_VMO_BIT_FUCHSIA,
33 };
34
35 VkDevice device = device_queue_->GetVulkanDevice();
36 zx::vmo vmo;
37 VkResult result = vkGetMemoryZirconHandleFUCHSIA(device, &get_handle_info,
38 vmo.reset_and_get_address());
39 if (result != VK_SUCCESS) {
40 DLOG(ERROR) << "vkGetMemoryFuchsiaHandleKHR failed: " << result;
41 vmo.reset();
42 }
43
44 return vmo;
45}
46
Peng Huang84fba7cb2020-03-27 16:56:4347} // namespace gpu