Gfx GX Fn GXLoadNrmMtxIndx3x3 - wowjinxy/libPorpoise GitHub Wiki
GXLoadNrmMtxIndx3x3
- Category:
Transformation and Matrix
- Matrix Status:
Implemented
- Matrix Notes: Verified indexed 3x3 load from
GX_NRM_MTX_ARRAY; removed non-doc fallback from position-matrix array.
- Matrix Link: Gfx-GX-API-Matrix
Official SDK (Reference)
- Manual root:
reference/rvlsdk/man/en_US/gx
- Primary SDK source area:
demos/PikminDemo/src/gx (GC-style Dolphin GX source)
- Notes:
libPorpoise Implementation
- Runtime implementation area:
src/gx
- Public API surface:
include/dolphin/gx
- Notes:
SDK vs Porpoise Diff
- Signature parity:
- Behavioral parity:
-
Known divergence:
Validation Checklist
Working Notes
- Docs checked against
reference/man/gfx/gx/Transform/GXLoadNrmMtxIndx3x3.html and SDK source in reference/gx/GXTransform.c.
- Runtime checked in
src/gx/pc_gx.c:
- Sources matrix data from
GX_NRM_MTX_ARRAY only (no fallback to position-matrix array).
- Uses documented default 3x3 stride when array stride is zero (
9 * sizeof(f32)).
- Loads all 9 matrix elements into the destination normal-matrix slot selected by
id.
- Marks modelview state dirty so subsequent draws consume updated normal matrix.
- Safe no-op when array base is not configured or destination slot mapping is invalid.
- Result: function-level parity is correct for indexed 3x3 normal-matrix loading semantics; no runtime code changes needed.