Well, that's interesting.
47:23:835 user_main D[SCEGE]: HLE\sceGe.cpp:427 sceGeListEnQueue(addr=49ef2700, stall=49ef2700, cbid=00000000, param=08b76820)
This seems reasonable. It enqueues (using uncached pointers) a list at stall. The operation is normal, uncached is a bit odd.
47:23:835 user_main D[SCEGE]: HLE\sceGe.cpp:473 sceGeListUpdateStallAddr(dlid=889192482, stalladdr=49ef271c)
Another very sane thing, it updated the list stall address (uncached again) +0x1c.
47:23:835 user_main D[SCEGE]: GLES\Framebuffer.cpp:611 viewport : 480x272, region : 480x272 , scissor: 480x272, stride: 512, 1
47:23:835 user_main D[SCEGE]: GLES\Framebuffer.cpp:858 Switching render target to FBO for 00088000: 480 x 272 x 3
47:23:844 user_main I[G3D]: GLES\ShaderManager.cpp:146 Linked shader: vs 58 fs 37
47:23:844 user_main W[G3D]: GLES\GLES_GPU.cpp:1823 Unknown GE command : b6fc3f48
47:23:844 user_main W[G3D]: GLES\GLES_GPU.cpp:1756 Unsupported Vertex Screen Coordinate Y : 050000
47:23:844 user_main W[G3D]: GLES\GLES_GPU.cpp:1761 Unsupported Vertex Screen Coordinate Z : 80bcad
...
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1766 Unsupported Vertex Texture Coordinate S : 6cbd93
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1786 Unsupported Vertex Alpha and Primitive : b20000
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1066 Unsupported alphatest mask: 00
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1781 Unsupported Vertex Color Value : b1bf28
47:23:862 user_main E[G3D]: GLES\GLES_GPU.cpp:896 Bad bounding box data: bd0000
That's already more than 7 (0x1c/4) cmds. Probably none of these are valid - but why didn't it stop? All the addresses are masked with 0x0FFFFFFF, so it *should* have.
Can you try the following change, find GPU/GLES/GPUCommon.cpp:
const bool useFastRunLoop = !dumpThisFrame_ && !useDebugger;
Add before:
dumpThisFrame_ = true;
Then log again. I'm specifically interested in the same point, that should make it print out the commands it's executing.
For a bit more though, actually, find this:
NOTICE_LOG(G3D, "%s", temp);
And replace with:
NOTICE_LOG(G3D, "%08x: %s", list.pc, temp);
That will also print out the addresses for extra clarity.
-[Unknown]
47:23:835 user_main D[SCEGE]: HLE\sceGe.cpp:427 sceGeListEnQueue(addr=49ef2700, stall=49ef2700, cbid=00000000, param=08b76820)
This seems reasonable. It enqueues (using uncached pointers) a list at stall. The operation is normal, uncached is a bit odd.
47:23:835 user_main D[SCEGE]: HLE\sceGe.cpp:473 sceGeListUpdateStallAddr(dlid=889192482, stalladdr=49ef271c)
Another very sane thing, it updated the list stall address (uncached again) +0x1c.
47:23:835 user_main D[SCEGE]: GLES\Framebuffer.cpp:611 viewport : 480x272, region : 480x272 , scissor: 480x272, stride: 512, 1
47:23:835 user_main D[SCEGE]: GLES\Framebuffer.cpp:858 Switching render target to FBO for 00088000: 480 x 272 x 3
47:23:844 user_main I[G3D]: GLES\ShaderManager.cpp:146 Linked shader: vs 58 fs 37
47:23:844 user_main W[G3D]: GLES\GLES_GPU.cpp:1823 Unknown GE command : b6fc3f48
47:23:844 user_main W[G3D]: GLES\GLES_GPU.cpp:1756 Unsupported Vertex Screen Coordinate Y : 050000
47:23:844 user_main W[G3D]: GLES\GLES_GPU.cpp:1761 Unsupported Vertex Screen Coordinate Z : 80bcad
...
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1766 Unsupported Vertex Texture Coordinate S : 6cbd93
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1786 Unsupported Vertex Alpha and Primitive : b20000
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1066 Unsupported alphatest mask: 00
47:23:862 user_main W[G3D]: GLES\GLES_GPU.cpp:1781 Unsupported Vertex Color Value : b1bf28
47:23:862 user_main E[G3D]: GLES\GLES_GPU.cpp:896 Bad bounding box data: bd0000
That's already more than 7 (0x1c/4) cmds. Probably none of these are valid - but why didn't it stop? All the addresses are masked with 0x0FFFFFFF, so it *should* have.
Can you try the following change, find GPU/GLES/GPUCommon.cpp:
const bool useFastRunLoop = !dumpThisFrame_ && !useDebugger;
Add before:
dumpThisFrame_ = true;
Then log again. I'm specifically interested in the same point, that should make it print out the commands it's executing.
For a bit more though, actually, find this:
NOTICE_LOG(G3D, "%s", temp);
And replace with:
NOTICE_LOG(G3D, "%08x: %s", list.pc, temp);
That will also print out the addresses for extra clarity.
-[Unknown]

