Commit 92d3912d by Charlie Lao Committed by Commit Bot

Vulkan: Remove maxLevel and immutable from ImageHelper::initExternal

Now that we have removed mBaseLevel and mMaxLevel from ImageHelper class in previous two CLs. The initExternal function can be modified to not pass in base/max level information. This CL also removes immutable from argument and let caller directly pass in firstLevel to it. Bug: b/181800403 Change-Id: I595c1faffabc7582af35a9578b2ecdf00c39207f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800414 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: 's avatarIan Elliott <ianelliott@google.com> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
parent 2143ffc2
...@@ -204,11 +204,11 @@ angle::Result MemoryObjectVk::createImage(ContextVk *contextVk, ...@@ -204,11 +204,11 @@ angle::Result MemoryObjectVk::createImage(ContextVk *contextVk,
// ANGLE_external_objects_flags allows create flags to be specified by the application instead // ANGLE_external_objects_flags allows create flags to be specified by the application instead
// of getting defaulted to zero. Note that the GL enum values constituting the bits of // of getting defaulted to zero. Note that the GL enum values constituting the bits of
// |createFlags| are identical to their corresponding Vulkan value. // |createFlags| are identical to their corresponding Vulkan value.
ANGLE_TRY(image->initExternal( ANGLE_TRY(image->initExternal(contextVk, type, vkExtents, vkFormat, 1, imageUsageFlags,
contextVk, type, vkExtents, vkFormat, 1, imageUsageFlags, createFlags, createFlags, vk::ImageLayout::Undefined,
vk::ImageLayout::Undefined, &externalMemoryImageCreateInfo, gl::LevelIndex(0), &externalMemoryImageCreateInfo, gl::LevelIndex(0),
gl::LevelIndex(static_cast<uint32_t>(levels) - 1), static_cast<uint32_t>(levels), static_cast<uint32_t>(levels), layerCount,
layerCount, contextVk->isRobustResourceInitEnabled(), false, nullptr)); contextVk->isRobustResourceInitEnabled(), nullptr));
VkMemoryRequirements externalMemoryRequirements; VkMemoryRequirements externalMemoryRequirements;
image->getImage().getMemoryRequirements(renderer->getDevice(), &externalMemoryRequirements); image->getImage().getMemoryRequirements(renderer->getDevice(), &externalMemoryRequirements);
......
...@@ -110,12 +110,12 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk) ...@@ -110,12 +110,12 @@ angle::Result OverlayVk::createFont(ContextVk *contextVk)
bool useRobustInit = false; bool useRobustInit = false;
// Create the font image. // Create the font image.
ANGLE_TRY(mFontImage.init( ANGLE_TRY(
contextVk, gl::TextureType::_2D, mFontImage.init(contextVk, gl::TextureType::_2D,
VkExtent3D{gl::overlay::kFontImageWidth, gl::overlay::kFontImageHeight, 1}, VkExtent3D{gl::overlay::kFontImageWidth, gl::overlay::kFontImageHeight, 1},
renderer->getFormat(angle::FormatID::R8_UNORM), 1, renderer->getFormat(angle::FormatID::R8_UNORM), 1,
VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, gl::LevelIndex(0), VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
gl::LevelIndex(0), 1, gl::overlay::kFontCount, useRobustInit)); gl::LevelIndex(0), 1, gl::overlay::kFontCount, useRobustInit));
ANGLE_TRY(mFontImage.initMemory(contextVk, renderer->getMemoryProperties(), ANGLE_TRY(mFontImage.initMemory(contextVk, renderer->getMemoryProperties(),
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)); VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
ANGLE_TRY(mFontImage.initImageView(contextVk, gl::TextureType::_2DArray, ANGLE_TRY(mFontImage.initImageView(contextVk, gl::TextureType::_2DArray,
...@@ -188,7 +188,7 @@ angle::Result OverlayVk::cullWidgets(ContextVk *contextVk) ...@@ -188,7 +188,7 @@ angle::Result OverlayVk::cullWidgets(ContextVk *contextVk)
ANGLE_TRY(mCulledWidgets.init(contextVk, gl::TextureType::_2D, culledWidgetsExtent, ANGLE_TRY(mCulledWidgets.init(contextVk, gl::TextureType::_2D, culledWidgetsExtent,
renderer->getFormat(angle::FormatID::R32G32_UINT), 1, renderer->getFormat(angle::FormatID::R32G32_UINT), 1,
VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
gl::LevelIndex(0), gl::LevelIndex(0), 1, 1, useRobustInit)); gl::LevelIndex(0), 1, 1, useRobustInit));
ANGLE_TRY(mCulledWidgets.initMemory(contextVk, renderer->getMemoryProperties(), ANGLE_TRY(mCulledWidgets.initMemory(contextVk, renderer->getMemoryProperties(),
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)); VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
ANGLE_TRY(mCulledWidgets.initImageView(contextVk, gl::TextureType::_2D, ANGLE_TRY(mCulledWidgets.initImageView(contextVk, gl::TextureType::_2D,
......
...@@ -105,8 +105,7 @@ angle::Result RenderbufferVk::setStorageImpl(const gl::Context *context, ...@@ -105,8 +105,7 @@ angle::Result RenderbufferVk::setStorageImpl(const gl::Context *context,
VkExtent3D extents = {static_cast<uint32_t>(width), static_cast<uint32_t>(height), 1u}; VkExtent3D extents = {static_cast<uint32_t>(width), static_cast<uint32_t>(height), 1u};
ANGLE_TRY(mImage->initExternal(contextVk, gl::TextureType::_2D, extents, format, imageSamples, ANGLE_TRY(mImage->initExternal(contextVk, gl::TextureType::_2D, extents, format, imageSamples,
usage, vk::kVkImageCreateFlagsNone, vk::ImageLayout::Undefined, usage, vk::kVkImageCreateFlagsNone, vk::ImageLayout::Undefined,
nullptr, gl::LevelIndex(0), gl::LevelIndex(0), 1, 1, robustInit, nullptr, gl::LevelIndex(0), 1, 1, robustInit, nullptr));
false, nullptr));
VkMemoryPropertyFlags flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; VkMemoryPropertyFlags flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
ANGLE_TRY(mImage->initMemory(contextVk, renderer->getMemoryProperties(), flags)); ANGLE_TRY(mImage->initMemory(contextVk, renderer->getMemoryProperties(), flags));
......
...@@ -131,10 +131,10 @@ angle::Result InitImageHelper(DisplayVk *displayVk, ...@@ -131,10 +131,10 @@ angle::Result InitImageHelper(DisplayVk *displayVk,
VkExtent3D extents = {std::max(static_cast<uint32_t>(width), 1u), VkExtent3D extents = {std::max(static_cast<uint32_t>(width), 1u),
std::max(static_cast<uint32_t>(height), 1u), 1u}; std::max(static_cast<uint32_t>(height), 1u), 1u};
ANGLE_TRY(imageHelper->initExternal( ANGLE_TRY(imageHelper->initExternal(displayVk, gl::TextureType::_2D, extents, vkFormat, samples,
displayVk, gl::TextureType::_2D, extents, vkFormat, samples, usage, usage, vk::kVkImageCreateFlagsNone,
vk::kVkImageCreateFlagsNone, vk::ImageLayout::Undefined, nullptr, gl::LevelIndex(0), vk::ImageLayout::Undefined, nullptr, gl::LevelIndex(0), 1,
gl::LevelIndex(0), 1, 1, isRobustResourceInitEnabled, false, nullptr)); 1, isRobustResourceInitEnabled, nullptr));
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -1045,7 +1045,7 @@ angle::Result WindowSurfaceVk::createSwapChain(vk::Context *context, ...@@ -1045,7 +1045,7 @@ angle::Result WindowSurfaceVk::createSwapChain(vk::Context *context,
// values and then rotates the final rectangle). // values and then rotates the final rectangle).
ANGLE_TRY(mColorImageMS.initMSAASwapchain( ANGLE_TRY(mColorImageMS.initMSAASwapchain(
context, gl::TextureType::_2D, vkExtents, Is90DegreeRotation(getPreTransform()), format, context, gl::TextureType::_2D, vkExtents, Is90DegreeRotation(getPreTransform()), format,
samples, usage, gl::LevelIndex(0), gl::LevelIndex(0), 1, 1, robustInit)); samples, usage, gl::LevelIndex(0), 1, 1, robustInit));
ANGLE_TRY(mColorImageMS.initMemory(context, renderer->getMemoryProperties(), ANGLE_TRY(mColorImageMS.initMemory(context, renderer->getMemoryProperties(),
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)); VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
...@@ -1075,8 +1075,7 @@ angle::Result WindowSurfaceVk::createSwapChain(vk::Context *context, ...@@ -1075,8 +1075,7 @@ angle::Result WindowSurfaceVk::createSwapChain(vk::Context *context,
const VkImageUsageFlags dsUsage = kSurfaceVkDepthStencilImageUsageFlags; const VkImageUsageFlags dsUsage = kSurfaceVkDepthStencilImageUsageFlags;
ANGLE_TRY(mDepthStencilImage.init(context, gl::TextureType::_2D, vkExtents, dsFormat, ANGLE_TRY(mDepthStencilImage.init(context, gl::TextureType::_2D, vkExtents, dsFormat,
samples, dsUsage, gl::LevelIndex(0), gl::LevelIndex(0), 1, samples, dsUsage, gl::LevelIndex(0), 1, 1, robustInit));
1, robustInit));
ANGLE_TRY(mDepthStencilImage.initMemory(context, renderer->getMemoryProperties(), ANGLE_TRY(mDepthStencilImage.initMemory(context, renderer->getMemoryProperties(),
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)); VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT));
......
...@@ -2727,8 +2727,7 @@ angle::Result TextureVk::initImage(ContextVk *contextVk, ...@@ -2727,8 +2727,7 @@ angle::Result TextureVk::initImage(ContextVk *contextVk,
ANGLE_TRY(mImage->initExternal( ANGLE_TRY(mImage->initExternal(
contextVk, mState.getType(), vkExtent, format, samples, mImageUsageFlags, mImageCreateFlags, contextVk, mState.getType(), vkExtent, format, samples, mImageUsageFlags, mImageCreateFlags,
vk::ImageLayout::Undefined, nullptr, gl::LevelIndex(mState.getEffectiveBaseLevel()), vk::ImageLayout::Undefined, nullptr, gl::LevelIndex(mState.getEffectiveBaseLevel()),
gl::LevelIndex(mState.getEffectiveMaxLevel()), levelCount, layerCount, levelCount, layerCount, contextVk->isRobustResourceInitEnabled(), &imageFormatListEnabled));
contextVk->isRobustResourceInitEnabled(), false, &imageFormatListEnabled));
mRequiresMutableStorage = (mImageCreateFlags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT) != 0; mRequiresMutableStorage = (mImageCreateFlags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT) != 0;
...@@ -2756,12 +2755,11 @@ angle::Result TextureVk::initImmutableImage(ContextVk *contextVk, const vk::Form ...@@ -2756,12 +2755,11 @@ angle::Result TextureVk::initImmutableImage(ContextVk *contextVk, const vk::Form
GLint samples = mState.getBaseLevelDesc().samples ? mState.getBaseLevelDesc().samples : 1; GLint samples = mState.getBaseLevelDesc().samples ? mState.getBaseLevelDesc().samples : 1;
bool imageFormatListEnabled = false; bool imageFormatListEnabled = false;
ANGLE_TRY(mImage->initExternal( ANGLE_TRY(mImage->initExternal(contextVk, mState.getType(), vkExtentLevel0, format, samples,
contextVk, mState.getType(), vkExtentLevel0, format, samples, mImageUsageFlags, mImageUsageFlags, mImageCreateFlags, vk::ImageLayout::Undefined,
mImageCreateFlags, vk::ImageLayout::Undefined, nullptr, nullptr, gl::LevelIndex(0), mState.getImmutableLevels(),
gl::LevelIndex(mState.getEffectiveBaseLevel()), layerCount, contextVk->isRobustResourceInitEnabled(),
gl::LevelIndex(mState.getEffectiveMaxLevel()), mState.getImmutableLevels(), layerCount, &imageFormatListEnabled));
contextVk->isRobustResourceInitEnabled(), true, &imageFormatListEnabled));
mRequiresMutableStorage = (mImageCreateFlags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT) != 0; mRequiresMutableStorage = (mImageCreateFlags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT) != 0;
......
...@@ -263,8 +263,7 @@ angle::Result HardwareBufferImageSiblingVkAndroid::initImpl(DisplayVk *displayVk ...@@ -263,8 +263,7 @@ angle::Result HardwareBufferImageSiblingVkAndroid::initImpl(DisplayVk *displayVk
displayVk, gl::TextureType::_2D, vkExtents, displayVk, gl::TextureType::_2D, vkExtents,
bufferFormatProperties.format == VK_FORMAT_UNDEFINED ? externalVkFormat : vkFormat, 1, bufferFormatProperties.format == VK_FORMAT_UNDEFINED ? externalVkFormat : vkFormat, 1,
usage, vk::kVkImageCreateFlagsNone, vk::ImageLayout::ExternalPreInitialized, usage, vk::kVkImageCreateFlagsNone, vk::ImageLayout::ExternalPreInitialized,
&externalMemoryImageCreateInfo, gl::LevelIndex(0), gl::LevelIndex(0), 1, 1, &externalMemoryImageCreateInfo, gl::LevelIndex(0), 1, 1, robustInitEnabled, nullptr));
robustInitEnabled, false, nullptr));
VkImportAndroidHardwareBufferInfoANDROID importHardwareBufferInfo = {}; VkImportAndroidHardwareBufferInfoANDROID importHardwareBufferInfo = {};
importHardwareBufferInfo.sType = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID; importHardwareBufferInfo.sType = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
......
...@@ -3625,7 +3625,6 @@ ImageHelper::ImageHelper(ImageHelper &&other) ...@@ -3625,7 +3625,6 @@ ImageHelper::ImageHelper(ImageHelper &&other)
mUsage(other.mUsage), mUsage(other.mUsage),
mExtents(other.mExtents), mExtents(other.mExtents),
mRotatedAspectRatio(other.mRotatedAspectRatio), mRotatedAspectRatio(other.mRotatedAspectRatio),
mImmutable(other.mImmutable),
mFormat(other.mFormat), mFormat(other.mFormat),
mSamples(other.mSamples), mSamples(other.mSamples),
mImageSerial(other.mImageSerial), mImageSerial(other.mImageSerial),
...@@ -3660,7 +3659,6 @@ void ImageHelper::resetCachedProperties() ...@@ -3660,7 +3659,6 @@ void ImageHelper::resetCachedProperties()
mUsage = 0; mUsage = 0;
mExtents = {}; mExtents = {};
mRotatedAspectRatio = false; mRotatedAspectRatio = false;
mImmutable = false;
mFormat = nullptr; mFormat = nullptr;
mSamples = 1; mSamples = 1;
mImageSerial = kInvalidImageSerial; mImageSerial = kInvalidImageSerial;
...@@ -3770,16 +3768,14 @@ angle::Result ImageHelper::init(Context *context, ...@@ -3770,16 +3768,14 @@ angle::Result ImageHelper::init(Context *context,
const Format &format, const Format &format,
GLint samples, GLint samples,
VkImageUsageFlags usage, VkImageUsageFlags usage,
gl::LevelIndex baseLevel, gl::LevelIndex firstLevel,
gl::LevelIndex maxLevel,
uint32_t mipLevels, uint32_t mipLevels,
uint32_t layerCount, uint32_t layerCount,
bool isRobustResourceInitEnabled) bool isRobustResourceInitEnabled)
{ {
return initExternal(context, textureType, extents, format, samples, usage, return initExternal(context, textureType, extents, format, samples, usage,
kVkImageCreateFlagsNone, ImageLayout::Undefined, nullptr, baseLevel, kVkImageCreateFlagsNone, ImageLayout::Undefined, nullptr, firstLevel,
maxLevel, mipLevels, layerCount, isRobustResourceInitEnabled, false, mipLevels, layerCount, isRobustResourceInitEnabled, nullptr);
nullptr);
} }
angle::Result ImageHelper::initMSAASwapchain(Context *context, angle::Result ImageHelper::initMSAASwapchain(Context *context,
...@@ -3789,16 +3785,14 @@ angle::Result ImageHelper::initMSAASwapchain(Context *context, ...@@ -3789,16 +3785,14 @@ angle::Result ImageHelper::initMSAASwapchain(Context *context,
const Format &format, const Format &format,
GLint samples, GLint samples,
VkImageUsageFlags usage, VkImageUsageFlags usage,
gl::LevelIndex baseLevel, gl::LevelIndex firstLevel,
gl::LevelIndex maxLevel,
uint32_t mipLevels, uint32_t mipLevels,
uint32_t layerCount, uint32_t layerCount,
bool isRobustResourceInitEnabled) bool isRobustResourceInitEnabled)
{ {
ANGLE_TRY(initExternal(context, textureType, extents, format, samples, usage, ANGLE_TRY(initExternal(context, textureType, extents, format, samples, usage,
kVkImageCreateFlagsNone, ImageLayout::Undefined, nullptr, baseLevel, kVkImageCreateFlagsNone, ImageLayout::Undefined, nullptr, firstLevel,
maxLevel, mipLevels, layerCount, isRobustResourceInitEnabled, false, mipLevels, layerCount, isRobustResourceInitEnabled, nullptr));
nullptr));
if (rotatedAspectRatio) if (rotatedAspectRatio)
{ {
std::swap(mExtents.width, mExtents.height); std::swap(mExtents.width, mExtents.height);
...@@ -3816,12 +3810,10 @@ angle::Result ImageHelper::initExternal(Context *context, ...@@ -3816,12 +3810,10 @@ angle::Result ImageHelper::initExternal(Context *context,
VkImageCreateFlags additionalCreateFlags, VkImageCreateFlags additionalCreateFlags,
ImageLayout initialLayout, ImageLayout initialLayout,
const void *externalImageCreateInfo, const void *externalImageCreateInfo,
gl::LevelIndex baseLevel, gl::LevelIndex firstLevel,
gl::LevelIndex maxLevel,
uint32_t mipLevels, uint32_t mipLevels,
uint32_t layerCount, uint32_t layerCount,
bool isRobustResourceInitEnabled, bool isRobustResourceInitEnabled,
bool immutable,
bool *imageFormatListEnabledOut) bool *imageFormatListEnabledOut)
{ {
ASSERT(!valid()); ASSERT(!valid());
...@@ -3831,11 +3823,10 @@ angle::Result ImageHelper::initExternal(Context *context, ...@@ -3831,11 +3823,10 @@ angle::Result ImageHelper::initExternal(Context *context,
mImageType = gl_vk::GetImageType(textureType); mImageType = gl_vk::GetImageType(textureType);
mExtents = extents; mExtents = extents;
mRotatedAspectRatio = false; mRotatedAspectRatio = false;
mImmutable = immutable;
mFormat = &format; mFormat = &format;
mSamples = std::max(samples, 1); mSamples = std::max(samples, 1);
mImageSerial = context->getRenderer()->getResourceSerialFactory().generateImageSerial(); mImageSerial = context->getRenderer()->getResourceSerialFactory().generateImageSerial();
mFirstAllocatedLevel = immutable ? gl::LevelIndex(0) : baseLevel; mFirstAllocatedLevel = firstLevel;
mLevelCount = mipLevels; mLevelCount = mipLevels;
mLayerCount = layerCount; mLayerCount = layerCount;
mUsage = usage; mUsage = usage;
...@@ -4379,12 +4370,11 @@ angle::Result ImageHelper::initImplicitMultisampledRenderToTexture( ...@@ -4379,12 +4370,11 @@ angle::Result ImageHelper::initImplicitMultisampledRenderToTexture(
: VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT); : VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT);
constexpr VkImageCreateFlags kMultisampledCreateFlags = 0; constexpr VkImageCreateFlags kMultisampledCreateFlags = 0;
ANGLE_TRY( ANGLE_TRY(initExternal(context, textureType, resolveImage.getExtents(),
initExternal(context, textureType, resolveImage.getExtents(), resolveImage.getFormat(), resolveImage.getFormat(), samples, kMultisampledUsageFlags,
samples, kMultisampledUsageFlags, kMultisampledCreateFlags, kMultisampledCreateFlags, ImageLayout::Undefined, nullptr,
ImageLayout::Undefined, nullptr, resolveImage.getFirstAllocatedLevel(), resolveImage.getFirstAllocatedLevel(), resolveImage.getLevelCount(),
resolveImage.getLastAllocatedLevel(), resolveImage.getLevelCount(), resolveImage.getLayerCount(), isRobustResourceInitEnabled, nullptr));
resolveImage.getLayerCount(), isRobustResourceInitEnabled, false, nullptr));
const VkMemoryPropertyFlags kMultisampledMemoryFlags = const VkMemoryPropertyFlags kMultisampledMemoryFlags =
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
...@@ -4561,9 +4551,6 @@ bool ImageHelper::isReleasedToExternal() const ...@@ -4561,9 +4551,6 @@ bool ImageHelper::isReleasedToExternal() const
void ImageHelper::setFirstAllocatedLevel(gl::LevelIndex firstLevel) void ImageHelper::setFirstAllocatedLevel(gl::LevelIndex firstLevel)
{ {
// For immutable texture, we always allocate the entire mipmap chain [0, mLevelCount-1].
// For mutable textures, we will try to reallocate based on baseLevel change
ASSERT(!mImmutable);
ASSERT(!valid()); ASSERT(!valid());
mFirstAllocatedLevel = firstLevel; mFirstAllocatedLevel = firstLevel;
} }
......
...@@ -1418,8 +1418,7 @@ class ImageHelper final : public Resource, public angle::Subject ...@@ -1418,8 +1418,7 @@ class ImageHelper final : public Resource, public angle::Subject
const Format &format, const Format &format,
GLint samples, GLint samples,
VkImageUsageFlags usage, VkImageUsageFlags usage,
gl::LevelIndex baseLevel, gl::LevelIndex firstLevel,
gl::LevelIndex maxLevel,
uint32_t mipLevels, uint32_t mipLevels,
uint32_t layerCount, uint32_t layerCount,
bool isRobustResourceInitEnabled); bool isRobustResourceInitEnabled);
...@@ -1430,8 +1429,7 @@ class ImageHelper final : public Resource, public angle::Subject ...@@ -1430,8 +1429,7 @@ class ImageHelper final : public Resource, public angle::Subject
const Format &format, const Format &format,
GLint samples, GLint samples,
VkImageUsageFlags usage, VkImageUsageFlags usage,
gl::LevelIndex baseLevel, gl::LevelIndex firstLevel,
gl::LevelIndex maxLevel,
uint32_t mipLevels, uint32_t mipLevels,
uint32_t layerCount, uint32_t layerCount,
bool isRobustResourceInitEnabled); bool isRobustResourceInitEnabled);
...@@ -1444,12 +1442,10 @@ class ImageHelper final : public Resource, public angle::Subject ...@@ -1444,12 +1442,10 @@ class ImageHelper final : public Resource, public angle::Subject
VkImageCreateFlags additionalCreateFlags, VkImageCreateFlags additionalCreateFlags,
ImageLayout initialLayout, ImageLayout initialLayout,
const void *externalImageCreateInfo, const void *externalImageCreateInfo,
gl::LevelIndex baseLevel, gl::LevelIndex firstLevel,
gl::LevelIndex maxLevel,
uint32_t mipLevels, uint32_t mipLevels,
uint32_t layerCount, uint32_t layerCount,
bool isRobustResourceInitEnabled, bool isRobustResourceInitEnabled,
bool immutable,
bool *imageFormatListEnabledOut); bool *imageFormatListEnabledOut);
angle::Result initMemory(Context *context, angle::Result initMemory(Context *context,
const MemoryProperties &memoryProperties, const MemoryProperties &memoryProperties,
...@@ -2043,9 +2039,6 @@ class ImageHelper final : public Resource, public angle::Subject ...@@ -2043,9 +2039,6 @@ class ImageHelper final : public Resource, public angle::Subject
// different between the rotated and non-rotated extents. // different between the rotated and non-rotated extents.
VkExtent3D mExtents; VkExtent3D mExtents;
bool mRotatedAspectRatio; bool mRotatedAspectRatio;
// True if this is created by an immutable texture glTexStorage. For immutable texture, the
// underlying VkImage object is always created from level 0 to mLevelCount-1.
bool mImmutable;
const Format *mFormat; const Format *mFormat;
GLint mSamples; GLint mSamples;
ImageSerial mImageSerial; ImageSerial mImageSerial;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment