Commit 2072ce50 by Jamie Madill Committed by Commit Bot

Rename "NonLinear" to "SRGB".

In OpenGL parlance there are really only two color spaces: Linear and SRGB. Vulkan is much more complicated with linear and nonlinear SRGB, and multiple non-SRGB linear color spaces. Keep things simple by working with OpenGL nomenclature. Bug: angleproject:5176 Change-Id: Ia730a9a666a2b3325194b86dc588e7fd226c4183 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483466 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarMohan Maiya <m.maiya@samsung.com> Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com>
parent e5590288
...@@ -235,7 +235,7 @@ enum class SrgbOverride ...@@ -235,7 +235,7 @@ enum class SrgbOverride
{ {
Default = 0, Default = 0,
Linear, Linear,
NonLinear SRGB
}; };
} // namespace gl } // namespace gl
......
...@@ -892,8 +892,7 @@ GLenum Texture::getSRGBDecode() const ...@@ -892,8 +892,7 @@ GLenum Texture::getSRGBDecode() const
void Texture::setSRGBOverride(const Context *context, GLenum sRGBOverride) void Texture::setSRGBOverride(const Context *context, GLenum sRGBOverride)
{ {
SrgbOverride oldOverride = mState.mSrgbOverride; SrgbOverride oldOverride = mState.mSrgbOverride;
mState.mSrgbOverride = mState.mSrgbOverride = (sRGBOverride == GL_SRGB) ? SrgbOverride::SRGB : SrgbOverride::Default;
(sRGBOverride == GL_SRGB) ? SrgbOverride::NonLinear : SrgbOverride::Default;
if (mState.mSrgbOverride != oldOverride) if (mState.mSrgbOverride != oldOverride)
{ {
signalDirtyState(DIRTY_BIT_SRGB_OVERRIDE); signalDirtyState(DIRTY_BIT_SRGB_OVERRIDE);
...@@ -902,7 +901,7 @@ void Texture::setSRGBOverride(const Context *context, GLenum sRGBOverride) ...@@ -902,7 +901,7 @@ void Texture::setSRGBOverride(const Context *context, GLenum sRGBOverride)
GLenum Texture::getSRGBOverride() const GLenum Texture::getSRGBOverride() const
{ {
return (mState.mSrgbOverride == SrgbOverride::NonLinear) ? GL_SRGB : GL_NONE; return (mState.mSrgbOverride == SrgbOverride::SRGB) ? GL_SRGB : GL_NONE;
} }
const SamplerState &Texture::getSamplerState() const const SamplerState &Texture::getSamplerState() const
......
...@@ -2255,14 +2255,13 @@ bool TextureVk::shouldUseLinearColorspaceWithSampler(const SamplerVk *samplerVk) ...@@ -2255,14 +2255,13 @@ bool TextureVk::shouldUseLinearColorspaceWithSampler(const SamplerVk *samplerVk)
(mState.getSamplerState().getSRGBDecode() == GL_SKIP_DECODE_EXT); (mState.getSamplerState().getSRGBDecode() == GL_SKIP_DECODE_EXT);
// True if GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT == GL_SRGB in the texture state // True if GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT == GL_SRGB in the texture state
bool textureSRGBOverriddenToNonLinear = bool textureSRGBOverriddenToSRGB = (mState.getSRGBOverride() == gl::SrgbOverride::SRGB);
(mState.getSRGBOverride() == gl::SrgbOverride::NonLinear);
gl::SrgbOverride samplerDecodeOverride = gl::SrgbOverride::Default; gl::SrgbOverride samplerDecodeOverride = gl::SrgbOverride::Default;
if (samplerVk != nullptr) if (samplerVk != nullptr)
{ {
samplerDecodeOverride = (samplerVk->skipSamplerSRGBDecode() ? gl::SrgbOverride::Linear samplerDecodeOverride = (samplerVk->skipSamplerSRGBDecode() ? gl::SrgbOverride::Linear
: gl::SrgbOverride::NonLinear); : gl::SrgbOverride::SRGB);
} }
switch (samplerDecodeOverride) switch (samplerDecodeOverride)
...@@ -2271,11 +2270,11 @@ bool TextureVk::shouldUseLinearColorspaceWithSampler(const SamplerVk *samplerVk) ...@@ -2271,11 +2270,11 @@ bool TextureVk::shouldUseLinearColorspaceWithSampler(const SamplerVk *samplerVk)
// If the sampler state skips decoding, we must choose the linear imageview, // If the sampler state skips decoding, we must choose the linear imageview,
// regardless of the texture state. This takes precedence over sRGB_override // regardless of the texture state. This takes precedence over sRGB_override
return true; return true;
case gl::SrgbOverride::NonLinear: case gl::SrgbOverride::SRGB:
// If the sampler state does not skip decoding, we should choose the imageview // If the sampler state does not skip decoding, we should choose the imageview
// required by sRGB_override- we should not force a linear format to use a nonlinear // required by sRGB_override- we should not force a linear format to use a SRGB
// imageview if sRGB_override has not forced that // imageview if sRGB_override has not forced that
if (textureSRGBOverriddenToNonLinear) if (textureSRGBOverriddenToSRGB)
{ {
return false; return false;
} }
...@@ -2292,7 +2291,7 @@ bool TextureVk::shouldUseLinearColorspaceWithSampler(const SamplerVk *samplerVk) ...@@ -2292,7 +2291,7 @@ bool TextureVk::shouldUseLinearColorspaceWithSampler(const SamplerVk *samplerVk)
{ {
return true; return true;
} }
else if (textureSRGBOverriddenToNonLinear) else if (textureSRGBOverriddenToSRGB)
{ {
return false; return false;
} }
...@@ -2313,8 +2312,7 @@ bool TextureVk::shouldUseLinearColorspaceWithTexelFetch(bool colorspaceWithSampl ...@@ -2313,8 +2312,7 @@ bool TextureVk::shouldUseLinearColorspaceWithTexelFetch(bool colorspaceWithSampl
ASSERT(mImage->valid()); ASSERT(mImage->valid());
// True if GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT == GL_SRGB in the texture state // True if GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT == GL_SRGB in the texture state
bool textureSRGBOverriddenToNonLinear = bool textureSRGBOverriddenToSRGB = (mState.getSRGBOverride() == gl::SrgbOverride::SRGB);
(mState.getSRGBOverride() == gl::SrgbOverride::NonLinear);
// Enable sRGB decoding regardless of skipSamplerSRGBDecode, due to an edge // Enable sRGB decoding regardless of skipSamplerSRGBDecode, due to an edge
// case in the EXT_texture_sRGB_decode spec: // case in the EXT_texture_sRGB_decode spec:
...@@ -2330,7 +2328,7 @@ bool TextureVk::shouldUseLinearColorspaceWithTexelFetch(bool colorspaceWithSampl ...@@ -2330,7 +2328,7 @@ bool TextureVk::shouldUseLinearColorspaceWithTexelFetch(bool colorspaceWithSampl
{ {
// This imageview is used with a texelFetch invocation, so we must ignore all sRGB_decode // This imageview is used with a texelFetch invocation, so we must ignore all sRGB_decode
// state. sRGB_override state should still be considered. // state. sRGB_override state should still be considered.
if (textureSRGBOverriddenToNonLinear) if (textureSRGBOverriddenToSRGB)
{ {
return false; return false;
} }
...@@ -2367,8 +2365,8 @@ const vk::ImageView &TextureVk::getReadImageViewAndRecordUse(ContextVk *contextV ...@@ -2367,8 +2365,8 @@ const vk::ImageView &TextureVk::getReadImageViewAndRecordUse(ContextVk *contextV
} }
else else
{ {
ASSERT(imageViews.getNonLinearReadImageView().valid()); ASSERT(imageViews.getSRGBReadImageView().valid());
return imageViews.getNonLinearReadImageView(); return imageViews.getSRGBReadImageView();
} }
} }
...@@ -2390,8 +2388,8 @@ const vk::ImageView &TextureVk::getFetchImageViewAndRecordUse(ContextVk *context ...@@ -2390,8 +2388,8 @@ const vk::ImageView &TextureVk::getFetchImageViewAndRecordUse(ContextVk *context
} }
else else
{ {
return (imageViews.hasFetchImageView() ? imageViews.getNonLinearFetchImageView() return (imageViews.hasFetchImageView() ? imageViews.getSRGBFetchImageView()
: imageViews.getNonLinearReadImageView()); : imageViews.getSRGBReadImageView());
} }
} }
...@@ -2410,7 +2408,7 @@ const vk::ImageView &TextureVk::getCopyImageViewAndRecordUse(ContextVk *contextV ...@@ -2410,7 +2408,7 @@ const vk::ImageView &TextureVk::getCopyImageViewAndRecordUse(ContextVk *contextV
} }
else else
{ {
return imageViews.getNonLinearCopyImageView(); return imageViews.getSRGBCopyImageView();
} }
} }
......
...@@ -44,7 +44,7 @@ bool FormatReinterpretationSupported(const std::vector<GLenum> &optionalSizedFor ...@@ -44,7 +44,7 @@ bool FormatReinterpretationSupported(const std::vector<GLenum> &optionalSizedFor
VkFormat reinterpretedFormat = checkLinearColorspace VkFormat reinterpretedFormat = checkLinearColorspace
? vk::ConvertToLinear(vkFormat.vkImageFormat) ? vk::ConvertToLinear(vkFormat.vkImageFormat)
: vk::ConvertToNonLinear(vkFormat.vkImageFormat); : vk::ConvertToSRGB(vkFormat.vkImageFormat);
ASSERT(reinterpretedFormat != VK_FORMAT_UNDEFINED); ASSERT(reinterpretedFormat != VK_FORMAT_UNDEFINED);
constexpr uint32_t kBitsSampleFilter = constexpr uint32_t kBitsSampleFilter =
...@@ -67,7 +67,7 @@ bool GetTextureSRGBDecodeSupport(const RendererVk *rendererVk) ...@@ -67,7 +67,7 @@ bool GetTextureSRGBDecodeSupport(const RendererVk *rendererVk)
// GL_SRGB and GL_SRGB_ALPHA unsized formats are also required by the spec, but the only valid // GL_SRGB and GL_SRGB_ALPHA unsized formats are also required by the spec, but the only valid
// type for them is GL_UNSIGNED_BYTE, so they are fully included in the sized formats listed // type for them is GL_UNSIGNED_BYTE, so they are fully included in the sized formats listed
// here // here
std::vector<GLenum> optionalSizedNonLinearFormats = { std::vector<GLenum> optionalSizedSRGBFormats = {
GL_SRGB8, GL_SRGB8,
GL_SRGB8_ALPHA8_EXT, GL_SRGB8_ALPHA8_EXT,
GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
...@@ -76,8 +76,7 @@ bool GetTextureSRGBDecodeSupport(const RendererVk *rendererVk) ...@@ -76,8 +76,7 @@ bool GetTextureSRGBDecodeSupport(const RendererVk *rendererVk)
GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
}; };
if (!FormatReinterpretationSupported(optionalSizedNonLinearFormats, rendererVk, if (!FormatReinterpretationSupported(optionalSizedSRGBFormats, rendererVk, kLinearColorspace))
kLinearColorspace))
{ {
return false; return false;
} }
......
...@@ -195,7 +195,7 @@ gl::SwizzleState ApplySwizzle(const gl::SwizzleState &formatSwizzle, ...@@ -195,7 +195,7 @@ gl::SwizzleState ApplySwizzle(const gl::SwizzleState &formatSwizzle,
namespace vk namespace vk
{ {
ANGLE_INLINE VkFormat ConvertToNonLinear(VkFormat format) ANGLE_INLINE VkFormat ConvertToSRGB(VkFormat format)
{ {
switch (format) switch (format)
{ {
...@@ -325,17 +325,17 @@ ANGLE_INLINE VkFormat ConvertToLinear(VkFormat format) ...@@ -325,17 +325,17 @@ ANGLE_INLINE VkFormat ConvertToLinear(VkFormat format)
} }
} }
ANGLE_INLINE bool IsNonLinearFormat(VkFormat format) ANGLE_INLINE bool IsSRGBFormat(VkFormat format)
{ {
return ConvertToLinear(format) != VK_FORMAT_UNDEFINED; return ConvertToLinear(format) != VK_FORMAT_UNDEFINED;
} }
ANGLE_INLINE bool IsOverridableLinearFormat(VkFormat format) ANGLE_INLINE bool IsOverridableLinearFormat(VkFormat format)
{ {
return ConvertToNonLinear(format) != VK_FORMAT_UNDEFINED; return ConvertToSRGB(format) != VK_FORMAT_UNDEFINED;
} }
ANGLE_INLINE bool IsLinearFormat(VkFormat format) ANGLE_INLINE bool IsLinearFormat(VkFormat format)
{ {
return !IsNonLinearFormat(format); return !IsSRGBFormat(format);
} }
} // namespace vk } // namespace vk
......
...@@ -5816,11 +5816,11 @@ ImageViewHelper::ImageViewHelper(ImageViewHelper &&other) ...@@ -5816,11 +5816,11 @@ ImageViewHelper::ImageViewHelper(ImageViewHelper &&other)
{ {
std::swap(mCurrentMaxLevel, other.mCurrentMaxLevel); std::swap(mCurrentMaxLevel, other.mCurrentMaxLevel);
std::swap(mPerLevelLinearReadImageViews, other.mPerLevelLinearReadImageViews); std::swap(mPerLevelLinearReadImageViews, other.mPerLevelLinearReadImageViews);
std::swap(mPerLevelNonLinearReadImageViews, other.mPerLevelNonLinearReadImageViews); std::swap(mPerLevelSRGBReadImageViews, other.mPerLevelSRGBReadImageViews);
std::swap(mPerLevelLinearFetchImageViews, other.mPerLevelLinearFetchImageViews); std::swap(mPerLevelLinearFetchImageViews, other.mPerLevelLinearFetchImageViews);
std::swap(mPerLevelNonLinearFetchImageViews, other.mPerLevelNonLinearFetchImageViews); std::swap(mPerLevelSRGBFetchImageViews, other.mPerLevelSRGBFetchImageViews);
std::swap(mPerLevelLinearCopyImageViews, other.mPerLevelLinearCopyImageViews); std::swap(mPerLevelLinearCopyImageViews, other.mPerLevelLinearCopyImageViews);
std::swap(mPerLevelNonLinearCopyImageViews, other.mPerLevelNonLinearCopyImageViews); std::swap(mPerLevelSRGBCopyImageViews, other.mPerLevelSRGBCopyImageViews);
std::swap(mLinearColorspace, other.mLinearColorspace); std::swap(mLinearColorspace, other.mLinearColorspace);
std::swap(mPerLevelStencilReadImageViews, other.mPerLevelStencilReadImageViews); std::swap(mPerLevelStencilReadImageViews, other.mPerLevelStencilReadImageViews);
...@@ -5850,11 +5850,11 @@ void ImageViewHelper::release(RendererVk *renderer) ...@@ -5850,11 +5850,11 @@ void ImageViewHelper::release(RendererVk *renderer)
// Release the read views // Release the read views
ReleaseImageViews(&mPerLevelLinearReadImageViews, &garbage); ReleaseImageViews(&mPerLevelLinearReadImageViews, &garbage);
ReleaseImageViews(&mPerLevelNonLinearReadImageViews, &garbage); ReleaseImageViews(&mPerLevelSRGBReadImageViews, &garbage);
ReleaseImageViews(&mPerLevelLinearFetchImageViews, &garbage); ReleaseImageViews(&mPerLevelLinearFetchImageViews, &garbage);
ReleaseImageViews(&mPerLevelNonLinearFetchImageViews, &garbage); ReleaseImageViews(&mPerLevelSRGBFetchImageViews, &garbage);
ReleaseImageViews(&mPerLevelLinearCopyImageViews, &garbage); ReleaseImageViews(&mPerLevelLinearCopyImageViews, &garbage);
ReleaseImageViews(&mPerLevelNonLinearCopyImageViews, &garbage); ReleaseImageViews(&mPerLevelSRGBCopyImageViews, &garbage);
ReleaseImageViews(&mPerLevelStencilReadImageViews, &garbage); ReleaseImageViews(&mPerLevelStencilReadImageViews, &garbage);
// Release the draw views // Release the draw views
...@@ -5889,11 +5889,11 @@ void ImageViewHelper::destroy(VkDevice device) ...@@ -5889,11 +5889,11 @@ void ImageViewHelper::destroy(VkDevice device)
// Release the read views // Release the read views
DestroyImageViews(&mPerLevelLinearReadImageViews, device); DestroyImageViews(&mPerLevelLinearReadImageViews, device);
DestroyImageViews(&mPerLevelNonLinearReadImageViews, device); DestroyImageViews(&mPerLevelSRGBReadImageViews, device);
DestroyImageViews(&mPerLevelLinearFetchImageViews, device); DestroyImageViews(&mPerLevelLinearFetchImageViews, device);
DestroyImageViews(&mPerLevelNonLinearFetchImageViews, device); DestroyImageViews(&mPerLevelSRGBFetchImageViews, device);
DestroyImageViews(&mPerLevelLinearCopyImageViews, device); DestroyImageViews(&mPerLevelLinearCopyImageViews, device);
DestroyImageViews(&mPerLevelNonLinearCopyImageViews, device); DestroyImageViews(&mPerLevelSRGBCopyImageViews, device);
DestroyImageViews(&mPerLevelStencilReadImageViews, device); DestroyImageViews(&mPerLevelStencilReadImageViews, device);
// Release the draw views // Release the draw views
...@@ -5927,11 +5927,11 @@ angle::Result ImageViewHelper::initReadViews(ContextVk *contextVk, ...@@ -5927,11 +5927,11 @@ angle::Result ImageViewHelper::initReadViews(ContextVk *contextVk,
if (levelCount > mPerLevelLinearReadImageViews.size()) if (levelCount > mPerLevelLinearReadImageViews.size())
{ {
mPerLevelLinearReadImageViews.resize(levelCount); mPerLevelLinearReadImageViews.resize(levelCount);
mPerLevelNonLinearReadImageViews.resize(levelCount); mPerLevelSRGBReadImageViews.resize(levelCount);
mPerLevelLinearFetchImageViews.resize(levelCount); mPerLevelLinearFetchImageViews.resize(levelCount);
mPerLevelNonLinearFetchImageViews.resize(levelCount); mPerLevelSRGBFetchImageViews.resize(levelCount);
mPerLevelLinearCopyImageViews.resize(levelCount); mPerLevelLinearCopyImageViews.resize(levelCount);
mPerLevelNonLinearCopyImageViews.resize(levelCount); mPerLevelSRGBCopyImageViews.resize(levelCount);
mPerLevelStencilReadImageViews.resize(levelCount); mPerLevelStencilReadImageViews.resize(levelCount);
} }
mCurrentMaxLevel = LevelIndex(levelCount - 1); mCurrentMaxLevel = LevelIndex(levelCount - 1);
...@@ -6020,13 +6020,12 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk, ...@@ -6020,13 +6020,12 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk,
uint32_t layerCount, uint32_t layerCount,
VkImageUsageFlags imageUsageFlags) VkImageUsageFlags imageUsageFlags)
{ {
// When we select the linear/nonlinear counterpart formats, we must first make sure they're // When we select the linear/srgb counterpart formats, we must first make sure they're
// actually supported by the ICD. If they are not supported by the ICD, then we treat that as if // actually supported by the ICD. If they are not supported by the ICD, then we treat that as if
// there is no counterpart format. (In this case, the relevant extension should not be exposed) // there is no counterpart format. (In this case, the relevant extension should not be exposed)
VkFormat nonLinearOverrideFormat = ConvertToNonLinear(image.getFormat().vkImageFormat); VkFormat srgbOverrideFormat = ConvertToSRGB(image.getFormat().vkImageFormat);
ASSERT( ASSERT((srgbOverrideFormat == VK_FORMAT_UNDEFINED) ||
(nonLinearOverrideFormat == VK_FORMAT_UNDEFINED) || (HasNonRenderableTextureFormatSupport(contextVk->getRenderer(), srgbOverrideFormat)));
(HasNonRenderableTextureFormatSupport(contextVk->getRenderer(), nonLinearOverrideFormat)));
VkFormat linearOverrideFormat = ConvertToLinear(image.getFormat().vkImageFormat); VkFormat linearOverrideFormat = ConvertToLinear(image.getFormat().vkImageFormat);
ASSERT((linearOverrideFormat == VK_FORMAT_UNDEFINED) || ASSERT((linearOverrideFormat == VK_FORMAT_UNDEFINED) ||
...@@ -6045,13 +6044,13 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk, ...@@ -6045,13 +6044,13 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk,
&mPerLevelLinearReadImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, &mPerLevelLinearReadImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount,
baseLayer, layerCount, imageUsageFlags, linearFormat)); baseLayer, layerCount, imageUsageFlags, linearFormat));
} }
if (nonLinearOverrideFormat != VK_FORMAT_UNDEFINED && if (srgbOverrideFormat != VK_FORMAT_UNDEFINED &&
!mPerLevelNonLinearReadImageViews[mCurrentMaxLevel.get()].valid()) !mPerLevelSRGBReadImageViews[mCurrentMaxLevel.get()].valid())
{ {
ANGLE_TRY(image.initAliasedLayerImageView( ANGLE_TRY(image.initAliasedLayerImageView(
contextVk, viewType, aspectFlags, readSwizzle, contextVk, viewType, aspectFlags, readSwizzle,
&mPerLevelNonLinearReadImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, &mPerLevelSRGBReadImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, baseLayer,
baseLayer, layerCount, imageUsageFlags, nonLinearOverrideFormat)); layerCount, imageUsageFlags, srgbOverrideFormat));
} }
gl::TextureType fetchType = viewType; gl::TextureType fetchType = viewType;
...@@ -6069,13 +6068,13 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk, ...@@ -6069,13 +6068,13 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk,
&mPerLevelLinearFetchImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, &mPerLevelLinearFetchImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount,
baseLayer, layerCount, imageUsageFlags, linearFormat)); baseLayer, layerCount, imageUsageFlags, linearFormat));
} }
if (nonLinearOverrideFormat != VK_FORMAT_UNDEFINED && if (srgbOverrideFormat != VK_FORMAT_UNDEFINED &&
!mPerLevelNonLinearFetchImageViews[mCurrentMaxLevel.get()].valid()) !mPerLevelSRGBFetchImageViews[mCurrentMaxLevel.get()].valid())
{ {
ANGLE_TRY(image.initAliasedLayerImageView( ANGLE_TRY(image.initAliasedLayerImageView(
contextVk, fetchType, aspectFlags, readSwizzle, contextVk, fetchType, aspectFlags, readSwizzle,
&mPerLevelNonLinearFetchImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, &mPerLevelSRGBFetchImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount,
baseLayer, layerCount, imageUsageFlags, nonLinearOverrideFormat)); baseLayer, layerCount, imageUsageFlags, srgbOverrideFormat));
} }
} }
...@@ -6086,13 +6085,13 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk, ...@@ -6086,13 +6085,13 @@ angle::Result ImageViewHelper::initSRGBReadViewsImpl(ContextVk *contextVk,
&mPerLevelLinearCopyImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, &mPerLevelLinearCopyImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount,
baseLayer, layerCount, imageUsageFlags, linearFormat)); baseLayer, layerCount, imageUsageFlags, linearFormat));
} }
if (nonLinearOverrideFormat != VK_FORMAT_UNDEFINED && if (srgbOverrideFormat != VK_FORMAT_UNDEFINED &&
!mPerLevelNonLinearCopyImageViews[mCurrentMaxLevel.get()].valid()) !mPerLevelSRGBCopyImageViews[mCurrentMaxLevel.get()].valid())
{ {
ANGLE_TRY(image.initAliasedLayerImageView( ANGLE_TRY(image.initAliasedLayerImageView(
contextVk, fetchType, aspectFlags, formatSwizzle, contextVk, fetchType, aspectFlags, formatSwizzle,
&mPerLevelNonLinearCopyImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, &mPerLevelSRGBCopyImageViews[mCurrentMaxLevel.get()], baseLevel, levelCount, baseLayer,
baseLayer, layerCount, imageUsageFlags, nonLinearOverrideFormat)); layerCount, imageUsageFlags, srgbOverrideFormat));
} }
return angle::Result::Continue; return angle::Result::Continue;
......
...@@ -1883,25 +1883,25 @@ class ImageViewHelper : angle::NonCopyable ...@@ -1883,25 +1883,25 @@ class ImageViewHelper : angle::NonCopyable
{ {
return getValidReadViewImpl(mPerLevelLinearReadImageViews); return getValidReadViewImpl(mPerLevelLinearReadImageViews);
} }
const ImageView &getNonLinearReadImageView() const const ImageView &getSRGBReadImageView() const
{ {
return getValidReadViewImpl(mPerLevelNonLinearReadImageViews); return getValidReadViewImpl(mPerLevelSRGBReadImageViews);
} }
const ImageView &getLinearFetchImageView() const const ImageView &getLinearFetchImageView() const
{ {
return getValidReadViewImpl(mPerLevelLinearFetchImageViews); return getValidReadViewImpl(mPerLevelLinearFetchImageViews);
} }
const ImageView &getNonLinearFetchImageView() const const ImageView &getSRGBFetchImageView() const
{ {
return getValidReadViewImpl(mPerLevelNonLinearFetchImageViews); return getValidReadViewImpl(mPerLevelSRGBFetchImageViews);
} }
const ImageView &getLinearCopyImageView() const const ImageView &getLinearCopyImageView() const
{ {
return getValidReadViewImpl(mPerLevelLinearCopyImageViews); return getValidReadViewImpl(mPerLevelLinearCopyImageViews);
} }
const ImageView &getNonLinearCopyImageView() const const ImageView &getSRGBCopyImageView() const
{ {
return getValidReadViewImpl(mPerLevelNonLinearCopyImageViews); return getValidReadViewImpl(mPerLevelSRGBCopyImageViews);
} }
const ImageView &getStencilReadImageView() const const ImageView &getStencilReadImageView() const
{ {
...@@ -1911,19 +1911,19 @@ class ImageViewHelper : angle::NonCopyable ...@@ -1911,19 +1911,19 @@ class ImageViewHelper : angle::NonCopyable
const ImageView &getReadImageView() const const ImageView &getReadImageView() const
{ {
return mLinearColorspace ? getReadViewImpl(mPerLevelLinearReadImageViews) return mLinearColorspace ? getReadViewImpl(mPerLevelLinearReadImageViews)
: getReadViewImpl(mPerLevelNonLinearReadImageViews); : getReadViewImpl(mPerLevelSRGBReadImageViews);
} }
const ImageView &getFetchImageView() const const ImageView &getFetchImageView() const
{ {
return mLinearColorspace ? getReadViewImpl(mPerLevelLinearFetchImageViews) return mLinearColorspace ? getReadViewImpl(mPerLevelLinearFetchImageViews)
: getReadViewImpl(mPerLevelNonLinearFetchImageViews); : getReadViewImpl(mPerLevelSRGBFetchImageViews);
} }
const ImageView &getCopyImageView() const const ImageView &getCopyImageView() const
{ {
return mLinearColorspace ? getReadViewImpl(mPerLevelLinearCopyImageViews) return mLinearColorspace ? getReadViewImpl(mPerLevelLinearCopyImageViews)
: getReadViewImpl(mPerLevelNonLinearCopyImageViews); : getReadViewImpl(mPerLevelSRGBCopyImageViews);
} }
// Used when initialized RenderTargets. // Used when initialized RenderTargets.
...@@ -1937,8 +1937,7 @@ class ImageViewHelper : angle::NonCopyable ...@@ -1937,8 +1937,7 @@ class ImageViewHelper : angle::NonCopyable
bool hasFetchImageView() const bool hasFetchImageView() const
{ {
if ((mLinearColorspace && mCurrentMaxLevel.get() < mPerLevelLinearFetchImageViews.size()) || if ((mLinearColorspace && mCurrentMaxLevel.get() < mPerLevelLinearFetchImageViews.size()) ||
(!mLinearColorspace && (!mLinearColorspace && mCurrentMaxLevel.get() < mPerLevelSRGBFetchImageViews.size()))
mCurrentMaxLevel.get() < mPerLevelNonLinearFetchImageViews.size()))
{ {
return getFetchImageView().valid(); return getFetchImageView().valid();
} }
...@@ -1951,8 +1950,7 @@ class ImageViewHelper : angle::NonCopyable ...@@ -1951,8 +1950,7 @@ class ImageViewHelper : angle::NonCopyable
bool hasCopyImageView() const bool hasCopyImageView() const
{ {
if ((mLinearColorspace && mCurrentMaxLevel.get() < mPerLevelLinearCopyImageViews.size()) || if ((mLinearColorspace && mCurrentMaxLevel.get() < mPerLevelLinearCopyImageViews.size()) ||
(!mLinearColorspace && (!mLinearColorspace && mCurrentMaxLevel.get() < mPerLevelSRGBCopyImageViews.size()))
mCurrentMaxLevel.get() < mPerLevelNonLinearCopyImageViews.size()))
{ {
return getCopyImageView().valid(); return getCopyImageView().valid();
} }
...@@ -2008,17 +2006,17 @@ class ImageViewHelper : angle::NonCopyable ...@@ -2008,17 +2006,17 @@ class ImageViewHelper : angle::NonCopyable
ImageView &getReadImageView() ImageView &getReadImageView()
{ {
return mLinearColorspace ? getReadViewImpl(mPerLevelLinearReadImageViews) return mLinearColorspace ? getReadViewImpl(mPerLevelLinearReadImageViews)
: getReadViewImpl(mPerLevelNonLinearReadImageViews); : getReadViewImpl(mPerLevelSRGBReadImageViews);
} }
ImageView &getFetchImageView() ImageView &getFetchImageView()
{ {
return mLinearColorspace ? getReadViewImpl(mPerLevelLinearFetchImageViews) return mLinearColorspace ? getReadViewImpl(mPerLevelLinearFetchImageViews)
: getReadViewImpl(mPerLevelNonLinearFetchImageViews); : getReadViewImpl(mPerLevelSRGBFetchImageViews);
} }
ImageView &getCopyImageView() ImageView &getCopyImageView()
{ {
return mLinearColorspace ? getReadViewImpl(mPerLevelLinearCopyImageViews) return mLinearColorspace ? getReadViewImpl(mPerLevelLinearCopyImageViews)
: getReadViewImpl(mPerLevelNonLinearCopyImageViews); : getReadViewImpl(mPerLevelSRGBCopyImageViews);
} }
// Used by public get*ImageView() methods to do proper assert based on vector size and validity // Used by public get*ImageView() methods to do proper assert based on vector size and validity
...@@ -2078,11 +2076,11 @@ class ImageViewHelper : angle::NonCopyable ...@@ -2078,11 +2076,11 @@ class ImageViewHelper : angle::NonCopyable
// Read views (one per max-level) // Read views (one per max-level)
ImageViewVector mPerLevelLinearReadImageViews; ImageViewVector mPerLevelLinearReadImageViews;
ImageViewVector mPerLevelNonLinearReadImageViews; ImageViewVector mPerLevelSRGBReadImageViews;
ImageViewVector mPerLevelLinearFetchImageViews; ImageViewVector mPerLevelLinearFetchImageViews;
ImageViewVector mPerLevelNonLinearFetchImageViews; ImageViewVector mPerLevelSRGBFetchImageViews;
ImageViewVector mPerLevelLinearCopyImageViews; ImageViewVector mPerLevelLinearCopyImageViews;
ImageViewVector mPerLevelNonLinearCopyImageViews; ImageViewVector mPerLevelSRGBCopyImageViews;
ImageViewVector mPerLevelStencilReadImageViews; ImageViewVector mPerLevelStencilReadImageViews;
bool mLinearColorspace; bool mLinearColorspace;
......
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