Implement the EGL 1.4 and OpenGL ES 2.0 exports that do not need a shader compiler or rasterizer as a host-side state machine following the Khronos specifications: the default display, a single RGBA8/depth16/stencil8 pbuffer configuration, ES2 contexts with share groups, per-thread current state and errors, buffers, textures with mipmap generation, renderbuffers, framebuffers and their completeness, shader and program objects, vertex attributes, every fixed-function state setter and query, clears, pixel uploads, copies and reads on CPU storage. The 22 unknown NIDs are named from the NID database and the Piglet, Orbis texture and compositor exports, together with shader compilation, program linking and reflection, uniforms, draws, native window surfaces and the Sony-specific APIs, stay NotImplemented_nid_no_patch; the gaps are in docs/dev/debt/libSceGLSlimVSH.md.
6.4 KiB
libSceGLSlimVSH technical debt
Unknown function info
- The 22 Sony-specific exports in Export.cpp have names recovered by
tools/nid_names.pyfrom its pinned NID database. Each name hashes to the original explicit NID. Their prototypes and behavior remain unverified; all retain no-parameter throwing placeholders. No recovered name is a standard EGL or GLES2 function.
| Name | NID |
|---|---|
glOrbisMapTextureResourceSCE |
iIsF4NzYgD4 |
glOrbisTexImageCanvas2DSCE |
hA8TWZkwPRU |
glOrbisTexImageResourceSCE |
LuP1plTAR7g |
glOrbisUnmapTextureResourceSCE |
J5IG3lL56FI |
scePigletAllocateSystemMemoryEx |
oXkQEVitkCs |
scePigletAllocateVideoMemoryEx |
sDotUt1uEhA |
scePigletGetConfigurationVSH |
3gtNzvkq-XY |
scePigletReleaseSystemMemoryEx |
T-+xooU3VvQ |
scePigletReleaseVideoMemoryEx |
AcruVcmKz78 |
sceSlimglClientStartIPC |
QvXbiLqpn6c |
sceSlimglCompositorAllocateIndex |
mgKTS0PIvd8 |
sceSlimglCompositorCreateIndirectRenderTarget |
RP5cXUjm48U |
sceSlimglCompositorDeleteIndirectRenderTarget |
srJHx3p48v0 |
sceSlimglCompositorFlush |
6ZQXcSKKjyo |
sceSlimglCompositorFlushWithRepeat |
wdRBDMIxI7I |
sceSlimglCompositorGetCanvasHandle |
CzmA-OALrH8 |
sceSlimglCompositorGetError |
aRqvgeH+oe0 |
sceSlimglCompositorReleaseIndex |
gI+XEd5mWPU |
sceSlimglCompositorSetEndOfFrameCommand |
1TFdFqQBGqY |
sceSlimglCompositorSetIndirectCanvasCommand |
7Mp6qE235Qc |
sceSlimglCompositorSetIndirectCompositionCommand |
BrNgn7z6A40 |
sceSlimglCompositorSetIndirectRenderTargetConfigCommand |
iyTnezpw1jE |
Additional callable exports
- Additional callable exports - 7 callable NIDs match the public 3.20 catalogue and the selected export metadata from two version-labelled images (SHA-256
5d1eb4913d2914be044c05a48c4287a3a73e526605f21ec37ce9acfb5b2170ad). The labels are not authenticated. Prototypes and behavior are unverified; these declarations throw throughNotImplemented_nid_no_patchand implement no runtime functionality.
| Name | NID |
|---|---|
sceSlimglCompositorSetInvisibleCanvasCommand |
DN8v2xNOyjg |
sceSlimglCompositorSetMemoryCommand |
aswH9c+RN0E |
sceSlimglCompositorSetPostEventCommand |
WvuRaahcTfA |
sceSlimglCompositorWaitEndOfRendering |
lcaik1AxwEY |
sceSlimglCompositorWaitPostEvent |
HwBlC8TLKHQ |
sceSlimglIPCEnd |
Fa0atOcWPaI |
sceSlimglIPCSetup |
F4pQ5tsDo74 |
scePigletSetConfigurationVSH(M9RtXpjSYtE) is listed in the same 3.20 catalogue and is declared as a no-parameter throwing placeholder; its prototype and behavior are unverified.
Additional unidentified exports
- Seven callable exports are declared as throwing placeholders. Their names, signatures and behavior are unverified. The same module and library identities occur in two version-labelled images; those labels are not authenticated.
| Name | NID |
|---|---|
Unknown |
9iW854bwvmc |
Unknown |
DVNKmWX1jOU |
Unknown |
JjyNMbSAgLk |
Unknown |
LLDLZ-mQK+Q |
Unknown |
Yf0LATiXPsg |
Unknown |
ZLvm5korFRA |
Unknown |
qSuVNKHENqs |
Functional
-
The host implementation is not a conformant GLES2 renderer. The single pbuffer configuration advertises
EGL_NON_CONFORMANT_CONFIGand noEGL_CONFORMANTbits. Native window/pixmap integration, OpenVG client-buffer import, GLSL ES compilation, program linking/reflection and rasterization are absent. The 35 standard exports below still callNotImplemented_nid_no_patch; no shader or program can acquire a successful compile/link status. Uniform locations and storage require linked shader reflection and remain unavailable.eglCreatePbufferFromClientBufferglCompileShaderglDrawElementsglGetShaderPrecisionFormatglGetUniformfvglGetUniformivglUniform1fvglUniform1ivglUniform2fglUniform2fvglUniform2iglUniform2ivglUniform3fglUniform3fvglUniform3iglUniform3ivglUniform4fglUniform4fvglUniform4iglUniform4ivglUniformMatrix2fvglUniformMatrix3fvglValidateProgramglDrawArraysglLinkProgramglShaderBinaryglGetStringglGetAttribLocationglGetUniformLocationglGetActiveAttribglGetActiveUniformglUniform1fglUniform1iglUniformMatrix4fveglCreateWindowSurface
-
State queries:
glGetBooleanv,glGetFloatvandglGetIntegervthrow forGL_SHADER_COMPILER; compiler availability cannot be advertised until a compiler is integrated. Other implemented state queries use host limits, not measured console limits. Calls requiring a GL context throw when none is current; GLES2 does not specify that case. -
Console-specific ABI behavior and implementation-dependent limits are unmeasured. The host contracts come from EGL 1.4 sections 3.1-3.8 and OpenGL ES 2.0.25 sections 2.7-2.10, 3.7, 4 and 6. The backend has one default display, ES2 contexts, a single RGBA8/depth16/stencil8 pbuffer configuration, 2048-pixel image limits and eight vertex attributes and texture units. It supports no compressed texture formats, shader binary formats, EGL texture-binding configurations or extensions. Native-display handles other than the default do not resolve.
-
Mipmap filtering uses a CPU box filter; implementation-dependent rounding and dithering have not been compared with console output. The state/storage implementation does not establish shader execution precision or rendering capabilities;
glGetStringandglGetShaderPrecisionFormatremain throwing exports.