• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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