Vulkan: Add robust init for NULL texture image.

In gl::ReadPixels(), ValidateReadPixels() will try to
flush staged updates before readPixels. In the case
where a texture was initialized with null RGBA data,
no Framebuffer dirty bits are set, and thus the staged
clear would never be flushed from the staged updates.

1. Add robust init in TextureVk::initImage to ensure
image is initialized.

Test: ./angle_end2end_tests --gtest_filter=\
RobustResourceInitTest*_Vulkan_AllocateNonZeroMemory

2. Update stageSubresourceRobustClear() to
kEmulatedInitColorValue in the case where robust resource
was initialized without full RGBA format to update
init value of robust resource.

Test: texture-attachment-formats.html in
webgl_conformance_vulkan_passthrough_tests.

3. Revert "Suppress Vulkan RobustResourceInit tests."
Revert commit a8e6a46312.

Reason for revert: re-enable related robust tests.

Bug: angleproject:4255
Change-Id: I79f20e0c02c2f1b1cd68ab590f0f765229f9e780
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1985503
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Xiaoxuan Liu
2020-01-02 15:13:37 +08:00
committed by Commit Bot
parent 6c56c57980
commit b07816d62b
7 changed files with 19 additions and 44 deletions

View File

@@ -169,6 +169,7 @@ Arm Ltd.
Fei Yang
Xinyi He
Sunny Sun
Xiaoxuan Liu
Broadcom Inc.
Gary Sweet