XL2
Established Member
So I've started to work on a BSP/PVS solution (very early) for my game, which made me realize that I could also save several clock cycles by changing the 3d implementation to skip the z-sort (I'm not saying I will do it, just that it would be interesting to look at).
According to Sega's documentation, it's possible to use the SCU DSP for matrix transformation and Sega suggested back in 1995 to use the SCU DSP for the matrix and the SH2 for the polygon processing in parallel.
Sega even give an example of assembly code to do the matrix transformation. (https://antime.kapsi.fi/sega/files/ST-240-A-042795.pdf)
Now, I know that SGL doesn't support matrix transformation with the SCU DSP and the SGL functions for the SCU DSP seem pretty much useless for almost everything, but before I waste too much time one this, as anyone tried doing it?
The SCU DSP doesn't support divisions, but it can do multiplications/additions, so it should be fine for matrix transformation, and even it's slower than the SH2, it won't need to do slower operations such as nearclipping/light normals processing/gouraud shading processing, so it might still be possible to keep it synched.
It seems like it can hold 256 sint32 values, which is more than what my maps have on each quad planes (since each quad is like 64 pixels wide and each plane is 256 pixels wide, I should be fine)
It would require writing a new 3d implementation or using the obscure one from SBL that nobody used (AFAIK), but it would still be nice to know about others' experience with it.
Thanks!
According to Sega's documentation, it's possible to use the SCU DSP for matrix transformation and Sega suggested back in 1995 to use the SCU DSP for the matrix and the SH2 for the polygon processing in parallel.
Sega even give an example of assembly code to do the matrix transformation. (https://antime.kapsi.fi/sega/files/ST-240-A-042795.pdf)
Now, I know that SGL doesn't support matrix transformation with the SCU DSP and the SGL functions for the SCU DSP seem pretty much useless for almost everything, but before I waste too much time one this, as anyone tried doing it?
The SCU DSP doesn't support divisions, but it can do multiplications/additions, so it should be fine for matrix transformation, and even it's slower than the SH2, it won't need to do slower operations such as nearclipping/light normals processing/gouraud shading processing, so it might still be possible to keep it synched.
It seems like it can hold 256 sint32 values, which is more than what my maps have on each quad planes (since each quad is like 64 pixels wide and each plane is 256 pixels wide, I should be fine)
It would require writing a new 3d implementation or using the obscure one from SBL that nobody used (AFAIK), but it would still be nice to know about others' experience with it.
Thanks!