From 2bb9d13797d28127cc18391e7bcdfee7ed2961fb Mon Sep 17 00:00:00 2001 From: Sungun Park Date: Thu, 4 Sep 2025 11:58:14 -0700 Subject: [PATCH] Improve getEyeFromViewMatrix() (#9184) Make the size of PerViewUib 2KiB again. Add overloading functions for getEyeFromViewMatrix() and getClipFromWorldMatrix(). BUGS=[441127971] --- libs/filabridge/include/private/filament/UibStructs.h | 6 +++--- shaders/src/common_getters.glsl | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/libs/filabridge/include/private/filament/UibStructs.h b/libs/filabridge/include/private/filament/UibStructs.h index 6ea4232633..8536ddccba 100644 --- a/libs/filabridge/include/private/filament/UibStructs.h +++ b/libs/filabridge/include/private/filament/UibStructs.h @@ -209,12 +209,12 @@ struct PerViewUib { // NOLINT(cppcoreguidelines-pro-type-member-init) float es2Reserved2; // bring PerViewUib to 2 KiB - math::float4 reserved[38]; + math::float4 reserved[22]; }; // 2 KiB == 128 float4s -static_assert(sizeof(PerViewUib) == sizeof(math::float4) * 144, - "PerViewUib should be 16 x 144 bytes"); +static_assert(sizeof(PerViewUib) == sizeof(math::float4) * 128, + "PerViewUib should be exactly 2KiB"); // ------------------------------------------------------------------------------------------------ // MARK: - diff --git a/shaders/src/common_getters.glsl b/shaders/src/common_getters.glsl index 70540800ed..2d6425ae93 100644 --- a/shaders/src/common_getters.glsl +++ b/shaders/src/common_getters.glsl @@ -51,11 +51,21 @@ highp mat4 getEyeFromViewMatrix() { return frameUniforms.eyeFromViewMatrix[getEyeIndex()]; } +/** @public-api */ +highp mat4 getEyeFromViewMatrix(int eyeIndex) { + return frameUniforms.eyeFromViewMatrix[eyeIndex]; +} + /** @public-api */ highp mat4 getClipFromWorldMatrix() { return frameUniforms.clipFromWorldMatrix[getEyeIndex()]; } +/** @public-api */ +highp mat4 getClipFromWorldMatrix(int eyeIndex) { + return frameUniforms.clipFromWorldMatrix[eyeIndex]; +} + /** @public-api */ highp mat4 getWorldFromClipMatrix() { return frameUniforms.worldFromClipMatrix;