From 1fb0eb0737cc71cdc7b52cb2abf799a853dee373 Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Fri, 31 Jul 2026 18:43:30 -0400 Subject: [PATCH] [Fix] (MG_Util): GL_FLOAT_32_UNSIGNED_INT_24_8_REV is 8 bytes per pixel The packed-type size table listed the D32F+S8 client format at 4 bytes, so every GL_DEPTH32F_STENCIL8 upload copied only half its client data - the top half of such textures stayed zero (packed_depth_stencil verify_read_pixels/clear_buffer.depth32f_stencil8 now pass). --- MobileGL/MG_Util/Metrics/TextureMetrics.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MobileGL/MG_Util/Metrics/TextureMetrics.cpp b/MobileGL/MG_Util/Metrics/TextureMetrics.cpp index f89281e1..9ce4adce 100644 --- a/MobileGL/MG_Util/Metrics/TextureMetrics.cpp +++ b/MobileGL/MG_Util/Metrics/TextureMetrics.cpp @@ -255,8 +255,10 @@ namespace MobileGL { case TexturePixelDataType::UnsignedInt101111Rev: case TexturePixelDataType::UnsignedInt5999Rev: case TexturePixelDataType::UnsignedInt248: - case TexturePixelDataType::Float32UnsignedInt248Rev: return 4; + case TexturePixelDataType::Float32UnsignedInt248Rev: + // A 32-bit float depth word followed by a 32-bit word holding stencil. + return 8; default: return 0; }