Peng Huang | 84fba7cb | 2020-03-27 16:56:43 | [diff] [blame] | 1 | // 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 Wennborg | eb1475dc | 2020-06-19 11:11:02 | [diff] [blame] | 7 | #include "base/logging.h" |
Peng Huang | cb73a63 | 2020-04-03 23:27:30 | [diff] [blame] | 8 | #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 Huang | 84fba7cb | 2020-03-27 16:56:43 | [diff] [blame] | 12 | namespace gpu { |
| 13 | |
| 14 | bool 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 Huang | cb73a63 | 2020-04-03 23:27:30 | [diff] [blame] | 26 | zx::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 Huang | 84fba7cb | 2020-03-27 16:56:43 | [diff] [blame] | 47 | } // namespace gpu |