Driver::RegisterShader required the Shader header at an 8-byte boundary (alignof(Shader)) and read its fields through the pointer. PPSA26344 uses its shader packs in place: its compute shader objects point at headers 4 and 1 bytes past an 8-byte boundary, so the first sceAgcCreateShader of such a header threw "null or misaligned address". The header is now checked for null and readable memory at any address, and its fixed fields and the registers the trace prints are copied out with memcpy. The code address must still be 256-byte aligned, and the header and size checks are unchanged. The console's rule is unknown and is listed in TechnicalDebt. |
||
|---|---|---|
| .. | ||
| dev | ||
| user | ||