1 /* 2 * Copyright 2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef GrVkMemory_DEFINED 9 #define GrVkMemory_DEFINED 10 11 #include "vulkan/vulkan.h" 12 13 class GrVkGpu; 14 15 namespace GrVkMemory { 16 /** 17 * Allocates vulkan device memory and binds it to the gpu's device for the given object. 18 * Returns true of allocation succeeded. 19 */ 20 bool AllocAndBindBufferMemory(const GrVkGpu* gpu, 21 VkBuffer buffer, 22 const VkMemoryPropertyFlags flags, 23 VkDeviceMemory* memory); 24 25 bool AllocAndBindImageMemory(const GrVkGpu* gpu, 26 VkImage image, 27 const VkMemoryPropertyFlags flags, 28 VkDeviceMemory* memory); 29 30 VkPipelineStageFlags LayoutToPipelineStageFlags(const VkImageLayout layout); 31 32 VkAccessFlags LayoutToSrcAccessMask(const VkImageLayout layout); 33 } 34 35 #endif