Commit 0b1fbcff by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Make vk::ImageView pointers const

Bug: angleproject:3563 Change-Id: I8b6415dd9508941d093f36e7ded72d25f571b6f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1779204Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent 2b7e2acb
......@@ -872,8 +872,8 @@ angle::Result FramebufferVk::blit(const gl::Context *context,
// Blit depth. If shader stencil export is present, blit stencil as well.
if (blitDepthBuffer || (blitStencilBuffer && hasShaderStencilExport))
{
vk::ImageView *depth = blitDepthBuffer ? &depthView.get() : nullptr;
vk::ImageView *stencil =
const vk::ImageView *depth = blitDepthBuffer ? &depthView.get() : nullptr;
const vk::ImageView *stencil =
blitStencilBuffer && hasShaderStencilExport ? &stencilView.get() : nullptr;
ANGLE_TRY(utilsVk.depthStencilBlitResolve(contextVk, this, depthStencilImage, depth,
......
......@@ -36,8 +36,8 @@ RenderTargetVk::RenderTargetVk(RenderTargetVk &&other)
{}
void RenderTargetVk::init(vk::ImageHelper *image,
vk::ImageView *imageView,
vk::ImageView *cubeImageFetchView,
const vk::ImageView *imageView,
const vk::ImageView *cubeImageFetchView,
uint32_t levelIndex,
uint32_t layerIndex)
{
......@@ -105,18 +105,18 @@ const vk::ImageHelper &RenderTargetVk::getImage() const
return *mImage;
}
vk::ImageView *RenderTargetVk::getDrawImageView() const
const vk::ImageView *RenderTargetVk::getDrawImageView() const
{
ASSERT(mImageView && mImageView->valid());
return mImageView;
}
vk::ImageView *RenderTargetVk::getReadImageView() const
const vk::ImageView *RenderTargetVk::getReadImageView() const
{
return getDrawImageView();
}
vk::ImageView *RenderTargetVk::getFetchImageView() const
const vk::ImageView *RenderTargetVk::getFetchImageView() const
{
return mCubeImageFetchView && mCubeImageFetchView->valid() ? mCubeImageFetchView
: getReadImageView();
......@@ -134,7 +134,7 @@ gl::Extents RenderTargetVk::getExtents() const
return mImage->getLevelExtents2D(static_cast<uint32_t>(mLevelIndex));
}
void RenderTargetVk::updateSwapchainImage(vk::ImageHelper *image, vk::ImageView *imageView)
void RenderTargetVk::updateSwapchainImage(vk::ImageHelper *image, const vk::ImageView *imageView)
{
ASSERT(image && image->valid() && imageView && imageView->valid());
mImage = image;
......
......@@ -44,8 +44,8 @@ class RenderTargetVk final : public FramebufferAttachmentRenderTarget
RenderTargetVk(RenderTargetVk &&other);
void init(vk::ImageHelper *image,
vk::ImageView *imageView,
vk::ImageView *cubeImageFetchView,
const vk::ImageView *imageView,
const vk::ImageView *cubeImageFetchView,
uint32_t levelIndex,
uint32_t layerIndex);
void reset();
......@@ -67,12 +67,12 @@ class RenderTargetVk final : public FramebufferAttachmentRenderTarget
vk::CommandBuffer *commandBuffer);
vk::ImageHelper *getImageForWrite(vk::CommandGraphResource *writingResource) const;
vk::ImageView *getDrawImageView() const;
vk::ImageView *getReadImageView() const;
const vk::ImageView *getDrawImageView() const;
const vk::ImageView *getReadImageView() const;
// GLSL's texelFetch() needs a 2D array view to read from cube maps. This function returns the
// same view as `getReadImageView()`, except for cubemaps, in which case it returns a 2D array
// view of it.
vk::ImageView *getFetchImageView() const;
const vk::ImageView *getFetchImageView() const;
const vk::Format &getImageFormat() const;
gl::Extents getExtents() const;
......@@ -81,7 +81,7 @@ class RenderTargetVk final : public FramebufferAttachmentRenderTarget
// Special mutator for Surface RenderTargets. Allows the Framebuffer to keep a single
// RenderTargetVk pointer.
void updateSwapchainImage(vk::ImageHelper *image, vk::ImageView *imageView);
void updateSwapchainImage(vk::ImageHelper *image, const vk::ImageView *imageView);
angle::Result flushStagedUpdates(ContextVk *contextVk);
......@@ -89,9 +89,9 @@ class RenderTargetVk final : public FramebufferAttachmentRenderTarget
vk::ImageHelper *mImage;
// Note that the draw and read image views are the same, given the requirements of a render
// target.
vk::ImageView *mImageView;
const vk::ImageView *mImageView;
// For cubemaps, a 2D-array view is also created to be used with shaders that use texelFetch().
vk::ImageView *mCubeImageFetchView;
const vk::ImageView *mCubeImageFetchView;
uint32_t mLevelIndex;
uint32_t mLayerIndex;
};
......
......@@ -692,7 +692,7 @@ angle::Result TextureVk::copySubImageImplWithDraw(ContextVk *contextVk,
{
params.srcLayer = layerIndex;
vk::ImageView *destView;
const vk::ImageView *destView;
ANGLE_TRY(
getLayerLevelDrawImageView(contextVk, baseLayer + layerIndex, level, &destView));
......@@ -1215,7 +1215,7 @@ angle::Result TextureVk::init3DRenderTargets(ContextVk *contextVk)
for (uint32_t layerIndex = 0; layerIndex < layerCount; ++layerIndex)
{
vk::ImageView *drawView;
const vk::ImageView *drawView;
ANGLE_TRY(getLayerLevelDrawImageView(contextVk, layerIndex, 0, &drawView));
// Users of the render target expect the views to directly view the desired layer, so we
......@@ -1244,7 +1244,7 @@ angle::Result TextureVk::initCubeMapRenderTargets(ContextVk *contextVk)
mCubeMapRenderTargets.resize(gl::kCubeFaceCount);
for (uint32_t cubeMapFaceIndex = 0; cubeMapFaceIndex < gl::kCubeFaceCount; ++cubeMapFaceIndex)
{
vk::ImageView *drawView;
const vk::ImageView *drawView;
ANGLE_TRY(getLayerLevelDrawImageView(contextVk, cubeMapFaceIndex, 0, &drawView));
// Users of the render target expect the views to directly view the desired layer, so we
......@@ -1423,7 +1423,7 @@ const vk::ImageView &TextureVk::getFetchImageView() const
angle::Result TextureVk::getLayerLevelDrawImageView(vk::Context *context,
size_t layer,
size_t level,
vk::ImageView **imageViewOut)
const vk::ImageView **imageViewOut)
{
ASSERT(mImage->valid());
ASSERT(!mImage->getFormat().imageFormat().isBlock);
......@@ -1444,8 +1444,9 @@ angle::Result TextureVk::getLayerLevelDrawImageView(vk::Context *context,
}
ASSERT(mLayerLevelDrawImageViews[layer].size() > level);
*imageViewOut = &mLayerLevelDrawImageViews[layer][level];
if ((*imageViewOut)->valid())
vk::ImageView *imageView = &mLayerLevelDrawImageViews[layer][level];
*imageViewOut = imageView;
if (imageView->valid())
{
return angle::Result::Continue;
}
......@@ -1455,7 +1456,7 @@ angle::Result TextureVk::getLayerLevelDrawImageView(vk::Context *context,
// don't have swizzle.
gl::TextureType viewType = vk::Get2DTextureType(layerCount, mImage->getSamples());
return mImage->initLayerImageView(context, viewType, mImage->getAspectFlags(),
gl::SwizzleState(), *imageViewOut,
gl::SwizzleState(), imageView,
getNativeImageLevel(static_cast<uint32_t>(level)), 1,
getNativeImageLayer(static_cast<uint32_t>(layer)), 1);
}
......
......@@ -160,7 +160,7 @@ class TextureVk : public TextureImpl
angle::Result getLayerLevelDrawImageView(vk::Context *context,
size_t layer,
size_t level,
vk::ImageView **imageViewOut);
const vk::ImageView **imageViewOut);
const vk::Sampler &getSampler() const;
angle::Result ensureImageInitialized(ContextVk *contextVk);
......
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