|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Geoff Lang < [email protected]> |
| 3 | +Date: Mon, 29 Apr 2024 15:27:36 -0400 |
| 4 | +Subject: M124: GL: Sync unpack state for glCompressedTexSubImage3D |
| 5 | + |
| 6 | +Unpack state is supposed to be ignored for compressed tex image calls |
| 7 | +but some drivers use it anyways and read incorrect data. |
| 8 | + |
| 9 | +Texture3DTestES3.PixelUnpackStateTexSubImage covers this case. |
| 10 | + |
| 11 | +Bug: chromium:337766133 |
| 12 | +Change-Id: Ic11a056113b1850bd5b4d6840527164a12849a22 |
| 13 | +Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5498735 |
| 14 | +Commit-Queue: Shahbaz Youssefi < [email protected]> |
| 15 | +Reviewed-by: Shahbaz Youssefi < [email protected]> |
| 16 | +(cherry picked from commit 1bb1ee061fe0bce322fb93b447a72e72c993a1f2) |
| 17 | +Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5518811 |
| 18 | +Commit-Queue: Srinivas Sista < [email protected]> |
| 19 | +Reviewed-by: Srinivas Sista < [email protected]> |
| 20 | + |
| 21 | +diff --git a/src/libANGLE/renderer/gl/TextureGL.cpp b/src/libANGLE/renderer/gl/TextureGL.cpp |
| 22 | +index 10874b7f04c1cb353c1ab2fabc28b0d5effca673..8921dae4740ef4921a7c72efda8a1d9219bcbd28 100644 |
| 23 | +--- a/src/libANGLE/renderer/gl/TextureGL.cpp |
| 24 | ++++ b/src/libANGLE/renderer/gl/TextureGL.cpp |
| 25 | +@@ -664,6 +664,7 @@ angle::Result TextureGL::setCompressedSubImage(const gl::Context *context, |
| 26 | + nativegl::GetCompressedSubTexImageFormat(functions, features, format); |
| 27 | + |
| 28 | + stateManager->bindTexture(getType(), mTextureID); |
| 29 | ++ ANGLE_TRY(stateManager->setPixelUnpackState(context, unpack)); |
| 30 | + if (nativegl::UseTexImage2D(getType())) |
| 31 | + { |
| 32 | + ASSERT(area.z == 0 && area.depth == 1); |
0 commit comments