blob: 4d351dcd34e6db788d387627867985f4910f8696 [file] [log] [blame]
Greg Daniel164a9f02016-02-22 09:56:40 -05001/*
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
13class GrVkGpu;
14
15namespace 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