| Index: src/gpu/vk/GrVkImage.cpp
|
| diff --git a/src/gpu/vk/GrVkImage.cpp b/src/gpu/vk/GrVkImage.cpp
|
| deleted file mode 100644
|
| index a87a7a5a4975b0bd21cf49cc1ac7dc6a25e221ff..0000000000000000000000000000000000000000
|
| --- a/src/gpu/vk/GrVkImage.cpp
|
| +++ /dev/null
|
| @@ -1,118 +0,0 @@
|
| -/*
|
| - * Copyright 2015 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include "GrVkGpu.h"
|
| -#include "GrVkImage.h"
|
| -#include "GrVkMemory.h"
|
| -#include "GrVkUtil.h"
|
| -
|
| -#define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
|
| -
|
| -void GrVkImage::setImageLayout(const GrVkGpu* gpu, VkImageLayout newLayout,
|
| - VkAccessFlags srcAccessMask,
|
| - VkAccessFlags dstAccessMask,
|
| - VkPipelineStageFlags srcStageMask,
|
| - VkPipelineStageFlags dstStageMask,
|
| - bool byRegion) {
|
| - SkASSERT(VK_IMAGE_LAYOUT_GENERAL != newLayout || VK_IMAGE_LAYOUT_PREINITIALIZED != newLayout);
|
| - // Is this reasonable? Could someone want to keep the same layout but use the masks to force
|
| - // a barrier on certain things?
|
| - if (newLayout == fCurrentLayout) {
|
| - return;
|
| - }
|
| -
|
| - VkImageMemoryBarrier imageMemoryBarrier = {
|
| - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // sType
|
| - NULL, // pNext
|
| - srcAccessMask, // outputMask
|
| - dstAccessMask, // inputMask
|
| - fCurrentLayout, // oldLayout
|
| - newLayout, // newLayout
|
| - VK_QUEUE_FAMILY_IGNORED, // srcQueueFamilyIndex
|
| - VK_QUEUE_FAMILY_IGNORED, // dstQueueFamilyIndex
|
| - fResource->fImage, // image
|
| - { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 } // subresourceRange
|
| - };
|
| -
|
| - // TODO: restrict to area of image we're interested in
|
| - gpu->addImageMemoryBarrier(srcStageMask, dstStageMask, byRegion, &imageMemoryBarrier);
|
| -
|
| - fCurrentLayout = newLayout;
|
| -}
|
| -
|
| -const GrVkImage::Resource* GrVkImage::CreateResource(const GrVkGpu* gpu,
|
| - const ImageDesc& imageDesc) {
|
| - VkImage image = 0;
|
| - VkDeviceMemory alloc;
|
| -
|
| - VkResult err;
|
| -
|
| - VkImageLayout initialLayout = (VK_IMAGE_TILING_LINEAR == imageDesc.fImageTiling)
|
| - ? VK_IMAGE_LAYOUT_PREINITIALIZED
|
| - : VK_IMAGE_LAYOUT_UNDEFINED;
|
| -
|
| - // Create Image
|
| - VkSampleCountFlagBits vkSamples;
|
| - if (!GrSampleCountToVkSampleCount(imageDesc.fSamples, &vkSamples)) {
|
| - return nullptr;
|
| - }
|
| - const VkImageCreateInfo imageCreateInfo = {
|
| - VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // sType
|
| - NULL, // pNext
|
| - 0, // VkImageCreateFlags
|
| - imageDesc.fImageType, // VkImageType
|
| - imageDesc.fFormat, // VkFormat
|
| - { imageDesc.fWidth, imageDesc.fHeight, 1 }, // VkExtent3D
|
| - imageDesc.fLevels, // mipLevels
|
| - 1, // arrayLayers
|
| - vkSamples, // samples
|
| - imageDesc.fImageTiling, // VkImageTiling
|
| - imageDesc.fUsageFlags, // VkImageUsageFlags
|
| - VK_SHARING_MODE_EXCLUSIVE, // VkSharingMode
|
| - 0, // queueFamilyCount
|
| - 0, // pQueueFamilyIndices
|
| - initialLayout // initialLayout
|
| - };
|
| -
|
| - err = VK_CALL(gpu, CreateImage(gpu->device(), &imageCreateInfo, nullptr, &image));
|
| - SkASSERT(!err);
|
| -
|
| - if (!GrVkMemory::AllocAndBindImageMemory(gpu, image, imageDesc.fMemProps, &alloc)) {
|
| - VK_CALL(gpu, DestroyImage(gpu->device(), image, nullptr));
|
| - return nullptr;
|
| - }
|
| -
|
| - GrVkImage::Resource::Flags flags =
|
| - (VK_IMAGE_TILING_LINEAR == imageDesc.fImageTiling) ? Resource::kLinearTiling_Flag
|
| - : Resource::kNo_Flags;
|
| -
|
| - return (new GrVkImage::Resource(image, alloc, flags));
|
| -}
|
| -
|
| -GrVkImage::~GrVkImage() {
|
| - // should have been released or abandoned first
|
| - SkASSERT(!fResource);
|
| -}
|
| -
|
| -void GrVkImage::releaseImage(const GrVkGpu* gpu) {
|
| - if (fResource) {
|
| - fResource->unref(gpu);
|
| - fResource = nullptr;
|
| - }
|
| -}
|
| -
|
| -void GrVkImage::abandonImage() {
|
| - if (fResource) {
|
| - fResource->unrefAndAbandon();
|
| - fResource = nullptr;
|
| - }
|
| -}
|
| -
|
| -void GrVkImage::Resource::freeGPUData(const GrVkGpu* gpu) const {
|
| - VK_CALL(gpu, DestroyImage(gpu->device(), fImage, nullptr));
|
| - VK_CALL(gpu, FreeMemory(gpu->device(), fAlloc, nullptr));
|
| -}
|
|
|