diff --git a/include/gpu/vk/GrVkTypes.h b/include/gpu/vk/GrVkTypes.h index 5e93733531..70571981b6 100644 --- a/include/gpu/vk/GrVkTypes.h +++ b/include/gpu/vk/GrVkTypes.h @@ -31,19 +31,32 @@ * Vulkan textures are really const GrVkImageInfo* */ struct GrVkAlloc { - VkDeviceMemory fMemory = VK_NULL_HANDLE; // can be VK_NULL_HANDLE iff is an RT and is borrowed - VkDeviceSize fOffset = 0; - VkDeviceSize fSize = 0; // this can be indeterminate iff Tex uses borrow semantics - uint32_t fFlags= 0; + GrVkAlloc() + : fMemory(VK_NULL_HANDLE) + , fOffset(0) + , fSize(0) + , fFlags(0) + , fUsesSystemHeap(false) {} + + GrVkAlloc(VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, uint32_t flags) + : fMemory(memory) + , fOffset(offset) + , fSize(size) + , fFlags(flags) + , fUsesSystemHeap(false) {} + + VkDeviceMemory fMemory; // can be VK_NULL_HANDLE iff is an RT and is borrowed + VkDeviceSize fOffset; + VkDeviceSize fSize; // this can be indeterminate iff Tex uses borrow semantics + uint32_t fFlags; enum Flag { kNoncoherent_Flag = 0x1, // memory must be flushed to device after mapping }; private: friend class GrVkHeap; // For access to usesSystemHeap - bool fUsesSystemHeap = false; + bool fUsesSystemHeap; }; - struct GrVkImageInfo { /** * If the image's format is sRGB (GrVkFormatIsSRGB returns true), then the image must have