amig_os napisał(a):
I Daniel też walczy z SPE ...
Tabor compatible bridged SPE MiniGL:
https://youtu.be/9FxTq3MeogkTabor native SPE MiniGL:
https://youtu.be/CbO7a7sTjuo--- Copy & Paste ---
https://www.facebook.com/AEonTechnology ... 6475108728 Daniel Müßener
4 maja o 11:49 ·
I just ported the MiniGL and GLUT libraries to the A1222 Tabor.
There are two different flavours, in this video here variant (2) is shown.
https://youtu.be/CbO7a7sTjuo1. compatible with programs compiled for std. PPC. To achieve this the libs contain some kind of bridge code. This is necessary because std. PPC programs pass floats by FPU registers - but the A1222 doesn't have those...
So the lib-interfaces are some kind of mixture of std. PPC and SPE code, while the whole software TCL etc. is pure SPE.
2. pure native SPE. This is meant for client programs that were compiled for SPE too. So all those demos here have been compiled for SPE.
The libs are open source, check it out here:
http://www.hyperion-entertainment.biz/s ... pdates-kc/This is what I've done in detail:
- some more simple Tabor ifdefs (replace those by asm later).
- Fix: alpha.c demo prog had wrong blend mode.
- Fix: glEvalMesh1 created wrong coordinates.
- Fix: mipmapping/closestFit eventually unitialized variable.
- Fix: const-correct in texture-converters etc.
- Fix: const-correct in eval etc.
- Fix: const-correct in glClipPlane.
- removed lots of unused variables.
- no more deprecated Create/Delete(Msg)Port usage.
- no more deprecated p96ReadPixelArray usage.
- Fix: nurbtess, eventually unitialized variables.
- got rid of almost all warnings (which hid true issues by their sheer amount).
- new config define MGL_USE_ALTIVEC to toggle compilation of altivec code.
- new config define MGL_TABOR_NO_ABI_BRIDGE to optionally disable the creation of the PPC-ABI <-> SPE-ABI bridge code. If you define MGL_TABOR and MGL_TABOR_NO_ABI_BRIDGE then you'll get a pure SPE minigl / mglut to be used by native SPE programs.
- new config define MGL_HAS_NO_SPE_NEWLIB to enabled replacement of functions like cos, sin, etc. Note: for the demo progs this also means that some printf("%f") etc. is not being compiled or has been modified to spit out ints.
- taborized for the scenario std-PPC-prog -> native-SPE-TCL-minigl/mglut with PPC<->SPE bridge.
- taborized for the scenario SPE-prog -> native-SPE-minigl/mglut.
- provided my own messy makefiles for all three variants.
- provided precompiled libs and demos for all variants.
Known issues with the SPE builds:
- glut timerfunc is not working. Use the non-SPE-mglut for now if you tap into this issue (when using the 100% native SPE variants you're lost, of course)
- some demo-progs refuse to work if compiled for SPE because of alignment problems.
- be aware! On my setup gcc's -L flag apparently has a lower priority than its built-in library path! This means that it won't link the newly created libs but the (wrong) ones that exist in the SDK! Better rename those in the SDK (libGL.a etc.) before building!
The problems with some SPE demos are most likely due to my GCC not always producing valid SPE code.
Cheers,
Daniel
--- End ---