Hello, I have some questions about libGU and the GE, I hope you can help me ;-)
- I wonder how display lists are handled. In fact, what does happen if I init a display list, send 3 commands and then do some heavy CPU task without calling sceGuFinish (because I'll still have to draw some other things later). In this case, it might crash because the display list is never ended (after the 3 first commands), isn't it?
- Are writes into the display list cached? That wouldn't make sense, but in the PSPSDK samples, the default display list alignment is 16, and a cache line is 32 (IIRC), so that could cause a conflict when writeback happen if 16 bytes of a line are cached (normal data before/after the display list), and the 16 others bypass it (display list), no?
- I have very rare random crashes that are usually happen as freezes, graphic glitches, flickering and so on. I was thinking about a stack overflow or such, but no exception is ever triggered, just freezes, so the CPU seems to be intact. So maybe could it come from the GE (problem like above)? Has anyone had such problems?
- Is GU implemented in the PSP OS? It seems not, because we can find the GU source in the PSPSDK, but on the otherside, some people said at the begining "I discovered how to use sceGuXY", that wouldn't make sense if it's not reverse engineered...
Thank you in advance
GU/GE questions & crashes
GU/GE questions & crashes
Sorry for my bad english
Oldschool library for PSP - PC version released
Oldschool library for PSP - PC version released
- If you use direct-executed lists (started with sceGuStart(GU_DIRECT);) the library will keep track of the most recent "safe" address (the stall address), and the GE will not execute past this point.
- Writes to the displaylist are uncached.
- Don't know about the crashes, but if you can dump and look through the recently executed list after a crash maybe you can see something.
- I created pspgu from reverse-engineering the game Puzzle Bobble which contained a lot of helpful debug information like type-information and function names. The rest of the information has been discovered through comparing calls/naming conventions to OpenGL and just simply calling the function to see what it does.
- Writes to the displaylist are uncached.
- Don't know about the crashes, but if you can dump and look through the recently executed list after a crash maybe you can see something.
- I created pspgu from reverse-engineering the game Puzzle Bobble which contained a lot of helpful debug information like type-information and function names. The rest of the information has been discovered through comparing calls/naming conventions to OpenGL and just simply calling the function to see what it does.
GE Dominator
Thanks for your answer :-)
I've tried to align my display list to more than 16, I'll test deeply to see if I still get random crashes ^^
Else, I was wondering but didn't find anything about that, are system calls (sce...) slower? Are those sony routines copied in RAM at boot or executed from the flash?
I've tried to align my display list to more than 16, I'll test deeply to see if I still get random crashes ^^
Else, I was wondering but didn't find anything about that, are system calls (sce...) slower? Are those sony routines copied in RAM at boot or executed from the flash?
Sorry for my bad english
Oldschool library for PSP - PC version released
Oldschool library for PSP - PC version released