blob: 1ff4a658384e972435949fe30c0badc959158937 [file] [log] [blame]
/*
* Copyright 2018 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "src/gpu/ganesh/vk/GrVkTypesPriv.h"
#include "include/gpu/MutableTextureState.h"
#include "include/gpu/vk/VulkanMutableTextureState.h"
#include "src/gpu/ganesh/vk/GrVkImageLayout.h"
GrVkImageInfo GrVkImageInfoWithMutableState(const GrVkImageInfo& info,
const skgpu::MutableTextureState* mutableState) {
SkASSERT(mutableState);
GrVkImageInfo newInfo = info;
newInfo.fImageLayout = skgpu::MutableTextureStates::GetVkImageLayout(mutableState);
newInfo.fCurrentQueueFamily = skgpu::MutableTextureStates::GetVkQueueFamilyIndex(mutableState);
return newInfo;
}
GrVkSurfaceInfo GrVkImageSpecToSurfaceInfo(const GrVkImageSpec& vkSpec,
uint32_t sampleCount,
uint32_t levelCount,
skgpu::Protected isProtected) {
GrVkSurfaceInfo info;
// Shared info
info.fSampleCount = sampleCount;
info.fLevelCount = levelCount;
info.fProtected = isProtected;
// Vulkan info
info.fImageTiling = vkSpec.fImageTiling;
info.fFormat = vkSpec.fFormat;
info.fImageUsageFlags = vkSpec.fImageUsageFlags;
info.fYcbcrConversionInfo = vkSpec.fYcbcrConversionInfo;
info.fSharingMode = vkSpec.fSharingMode;
return info;
}