Home | History | Annotate | Download | only in vk
      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