1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // Copyright 2020 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "gpu/vulkan/vulkan_image.h"
- #include "base/logging.h"
- #include "gpu/vulkan/fuchsia/vulkan_fuchsia_ext.h"
- #include "gpu/vulkan/vulkan_device_queue.h"
- #include "gpu/vulkan/vulkan_function_pointers.h"
- namespace gpu {
- bool VulkanImage::InitializeFromGpuMemoryBufferHandle(
- VulkanDeviceQueue* device_queue,
- gfx::GpuMemoryBufferHandle gmb_handle,
- const gfx::Size& size,
- VkFormat format,
- VkImageUsageFlags usage,
- VkImageCreateFlags flags,
- VkImageTiling image_tiling,
- uint32_t queue_family_index) {
- NOTIMPLEMENTED();
- return false;
- }
- zx::vmo VulkanImage::GetMemoryZirconHandle() {
- DCHECK(handle_types_ & VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA);
- VkMemoryGetZirconHandleInfoFUCHSIA get_handle_info = {
- .sType = VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,
- .memory = device_memory_,
- .handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,
- };
- VkDevice device = device_queue_->GetVulkanDevice();
- zx::vmo vmo;
- VkResult result = vkGetMemoryZirconHandleFUCHSIA(device, &get_handle_info,
- vmo.reset_and_get_address());
- if (result != VK_SUCCESS) {
- DLOG(ERROR) << "vkGetMemoryFuchsiaHandleKHR failed: " << result;
- vmo.reset();
- }
- return vmo;
- }
- } // namespace gpu
|