Add support for OES_depth_texture
Note: Includes workaround for http://anglebug.com/3452 - some Android
devices do not indicate filtering support on VK_FORMAT_D16_UNORM.
Bug: angleproject:3103
Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthTexture/*
angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.PackedDepthStencil/*
angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthTextureRender/ES2_VULKAN
Change-Id: Ic325fb94ab0e619a17c2e149e0e0865fa4142f3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575426
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.cpp b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
index 0cdb05f..feb6d15 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
@@ -221,9 +221,7 @@
ProgramVk::DefaultUniformBlock::~DefaultUniformBlock() = default;
-ProgramVk::ProgramVk(const gl::ProgramState &state) : ProgramImpl(state), mUniformBlocksOffsets{}
-{
-}
+ProgramVk::ProgramVk(const gl::ProgramState &state) : ProgramImpl(state), mUniformBlocksOffsets{} {}
ProgramVk::~ProgramVk() = default;
@@ -998,8 +996,10 @@
vk::CommandBuffer *srcLayoutChange;
ANGLE_TRY(image.recordCommands(contextVk, &srcLayoutChange));
- image.changeLayout(VK_IMAGE_ASPECT_COLOR_BIT,
- vk::ImageLayout::FragmentShaderReadOnly, srcLayoutChange);
+ VkImageAspectFlags aspectFlags = image.getAspectFlags();
+ ASSERT(aspectFlags != 0);
+ image.changeLayout(aspectFlags, vk::ImageLayout::FragmentShaderReadOnly,
+ srcLayoutChange);
}
image.addReadDependency(framebuffer);
@@ -1092,8 +1092,8 @@
descSet = mEmptyDescriptorSets[descriptorSetIndex];
}
- constexpr uint32_t kShaderTypeMin = static_cast<uint32_t>(gl::kGLES2ShaderTypeMin);
- constexpr uint32_t kShaderTypeMax = static_cast<uint32_t>(gl::kGLES2ShaderTypeMax);
+ constexpr uint32_t kShaderTypeMin = static_cast<uint32_t>(gl::kGLES2ShaderTypeMin);
+ constexpr uint32_t kShaderTypeMax = static_cast<uint32_t>(gl::kGLES2ShaderTypeMax);
constexpr uint32_t kShaderTypeCount = kShaderTypeMax - kShaderTypeMin + 1;
// Default uniforms are encompassed in a block per shader stage, and they are assigned