mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
* chore: [25-x-y] cherry-pick 3 changes from Release-0-M116 * 8ff63d378f2c from v8 * 5486190be556 from angle * d671b099a57d from v8 * chore: update patches * chore: cherry-pick missing changes --------- Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
43 lines
1.7 KiB
Diff
43 lines
1.7 KiB
Diff
From 5486190be5565f9b5567fbd252a10425af3d59ee Mon Sep 17 00:00:00 2001
|
|
From: Geoff Lang <geofflang@chromium.org>
|
|
Date: Fri, 21 Jul 2023 13:45:52 -0400
|
|
Subject: [PATCH] [M114-LTS] Fix read size validation for RGBX formats.
|
|
|
|
GL_RGBX8_ANGLE is the only format where the upload format is 3-channel
|
|
RGB, whilethe download format is 4-channel RGBX. As such, the internal
|
|
format corresponding to format+type expects 3-byte input/output. The
|
|
format is fixed here for readPixels to output 4 bytes per pixel.
|
|
|
|
Bug: chromium:1458046
|
|
Change-Id: Iec737ed64bade003cfab50dc5f595eb4875e81e4
|
|
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4706957
|
|
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
(cherry picked from commit 430a4f559cbc2bcd5d026e8b36ee46ddd80e9651)
|
|
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4765136
|
|
Commit-Queue: Daniel Yip <danielyip@google.com>
|
|
Auto-Submit: Daniel Yip <danielyip@google.com>
|
|
(cherry picked from commit 4a372ad49ceddea6c13f79adb212a777ec770a66)
|
|
---
|
|
|
|
diff --git a/src/libANGLE/formatutils.cpp b/src/libANGLE/formatutils.cpp
|
|
index f2845dc..bb1389aaa 100644
|
|
--- a/src/libANGLE/formatutils.cpp
|
|
+++ b/src/libANGLE/formatutils.cpp
|
|
@@ -1702,7 +1702,15 @@
|
|
GLuint InternalFormat::computePixelBytes(GLenum formatType) const
|
|
{
|
|
const auto &typeInfo = GetTypeInfo(formatType);
|
|
- GLuint components = typeInfo.specialInterpretation ? 1u : componentCount;
|
|
+ GLuint components = componentCount;
|
|
+ if (sizedInternalFormat == GL_RGBX8_ANGLE)
|
|
+ {
|
|
+ components = 4;
|
|
+ }
|
|
+ else if (typeInfo.specialInterpretation)
|
|
+ {
|
|
+ components = 1;
|
|
+ }
|
|
return components * typeInfo.bytes;
|
|
}
|
|
|