Commit 98496cab by Antonio Maiorano Committed by Commit Bot

Fix float to int copy in VK backend

This fixes WebGL tests on Vulkan (e.g. SwiftShaderVK) that copy from the canvas (GL_RGBA8) to an integer format target texture, such as: conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte.html The sampled normalized value needs to be scaled up by 255. Also fixes angle_end2end test CopyTextureTestES3.ES3UintFormats on Vulkan. Bug: b/156399229 Bug: angleproject:4092 Change-Id: I18d46bc4453fdc500caca96ca3a12fe93290b10c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2219142Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
parent 82848585
...@@ -194,9 +194,9 @@ ...@@ -194,9 +194,9 @@
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000005.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000005.inc":
"c8068cf825d7559681ede42674c3e3ea", "c8068cf825d7559681ede42674c3e3ea",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000008.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000008.inc":
"f3a6575224a4c95364b62c049ccb57f2", "54faeed7f5207db33c51c46156cfc55d",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000009.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000009.inc":
"bf0e9031687ee22d94cb1667365b1ca0", "86dd2b83ecc252cb110f292e133176f8",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000A.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000A.inc":
"157eea1b255a9fc13a39d0fed5791582", "157eea1b255a9fc13a39d0fed5791582",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000B.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000B.inc":
...@@ -206,9 +206,9 @@ ...@@ -206,9 +206,9 @@
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000D.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000D.inc":
"c55d9db160a06e72e35f882940a45f21", "c55d9db160a06e72e35f882940a45f21",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000010.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000010.inc":
"b26e9b2235c5c2de27ba536d09763c81", "ab5feb0ce83ba342916a13c4b72ed224",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000011.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000011.inc":
"36d786b1ab799616cdf9a3bff9ed2252", "bd47595d6304983dfc4e3f348f3731c3",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000012.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000012.inc":
"aec2cf9115e5e3b2367487255d030c17", "aec2cf9115e5e3b2367487255d030c17",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000013.inc": "src/libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000013.inc":
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
"src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag": "src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag":
"8889ae8014a657a0efd5607954126945", "8889ae8014a657a0efd5607954126945",
"src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag": "src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag":
"f0f3cc82d78198f114b698e1aea31267", "e62eb8ee0f264434330382cb2e050a52",
"src/libANGLE/renderer/vulkan/shaders/src/OverlayCull.comp": "src/libANGLE/renderer/vulkan/shaders/src/OverlayCull.comp":
"c89a0d185f7723e0c221c135aa4f48a3", "c89a0d185f7723e0c221c135aa4f48a3",
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp": "src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp":
......
...@@ -89,6 +89,10 @@ void main() ...@@ -89,6 +89,10 @@ void main()
srcValue.rgb /= srcValue.a; srcValue.rgb /= srcValue.a;
} }
#if SrcIsFloat && !DestIsFloat
srcValue *= 255.0;
#endif
// Convert value to destination type. // Convert value to destination type.
DestType destValue = DestType(srcValue); DestType destValue = DestType(srcValue);
......
...@@ -1939,8 +1939,6 @@ TEST_P(CopyTextureTestES3, ES3FloatFormats) ...@@ -1939,8 +1939,6 @@ TEST_P(CopyTextureTestES3, ES3FloatFormats)
TEST_P(CopyTextureTestES3, ES3UintFormats) TEST_P(CopyTextureTestES3, ES3UintFormats)
{ {
ANGLE_SKIP_TEST_IF(IsLinux() && IsOpenGL() && IsIntel()); ANGLE_SKIP_TEST_IF(IsLinux() && IsOpenGL() && IsIntel());
// http://anglebug.com/4092
ANGLE_SKIP_TEST_IF(IsVulkan());
if (!checkExtensions()) if (!checkExtensions())
{ {
......
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