The 3D core of the POLLUX consists of several functional blocks (sub-modules). 3D Graphic Engine block consistes of command
processor, Premitive Processor, GTE/ Clipper, TSE and Rasterizer blocks.
The CPU controls directly all Sub-module[inconsistent with earlier spelling] operations and it can also request the Command processor to
control them.
CPU can control the operation of sub modules either directly or through command processor.
The Register3D stores the parameters to control the Sub-Module. It generate operation signals to Sub-module, When external device such as
CPU writes a data in control register. Sub-modules and sends operation signals to the Sub-module when an external device writes in the
control register (GRP3D_CONTROL). The Command Processor and Primitive Processor can control sub-module through the Register3D.
The control priority is Primitive Processor > Command Processor > CPU
Controlls all sub modules. Nice. So we can skip the vector multiply stuff. Notaz said its a strange format and bound closely to the psx cpu so we cant seperate it. This sux, I still believe vector math is expensive on a cpu

. But hey better then nothing to use the other modules.
I just know the open gl pipeline where vertex are floats and matrix stuff is vector calculation. I dont know how the psx handles this. But maybe we could use this:
The GTE can be used as a floating point Coprocessor because the CPU can read the calculation results.
High latencies, but if we the Command Processor we can maybe push the floating point operations to it, and calculate other stuff during the latency. Like normal gpus do it.
The Command Processor can operate all 3D operations independently - without the intervention of the CPU.
The Command buffer (or command queue) is a memory area that stores commands. It contains command and other additional information
which will be copied into Register 3D block. The CPU assigns the command buffer area (refer to the Command buffer section).
The CPU controls the Command Processor directly, without the Register3D. For Register3D, the Command Processor has priority over the
CPU.
This is interessting:
22.1.5.
TSE (Triangle Setup Engine)
The TSE converts vertex data in the Input Register to fit into the Rasterizer. The vertex data which is stored into three input registers from
clipper block for the Rasterizer. The TSE is controlled from the Register3D or GTE/Clipper.
22.1.6.
Rasterizer
The Rasterizer has two operations as given below.
Render triangles or rectangles Rasterizer does two operations.
Shading / Texture mapping / fog blending / alpha blending / z-buffering /...
Memory fill
Fill certain memory areas (rectangles) with certain values.
Fast z-buffer/screen/texture clear
The Rasterizer is controlled by the Register3D and TSE. The Rasterizer has a 1-depth FIFO to input the next parameters during operations.
This means, ok we have to calculate our triangles in the PSX gte who is bound to the PSX cpu. But the texturing, blending and probably lightning can be done by the rasterizer pipeline. This takes lots of the load of the cpu to the gpu and will speed things a lot. No UV looksup etc. The GPU Ram has the right "swizzle" for the textures too (writing an exam over it in one week, it can speed up things a lot, for caching textures). Not sure if the pollux support clever gpu caching thought...
Since the gpu has a 64 bit interface to one Ram Chip and the CPU has its own ramchip with 32 bit seperate interface, the could use more bandwidth and wont interfere.
So the CPU can keep compiling / executing psx code and the rasterizer can get the triangles and textures and render them. The cpu wont have to use its register for colouring since its done in the 3d registers. And dont have to waste ram since the gpu chip has its own.
I want to point here that on there general overview (page) is said the the cpu can use 32 of rambus1 and 32 bit of rambus2. Rambus2 has 64 bit. So even if we use both banks the cpu just uses 64 (32x2) Bits out of 96 bits of memory bandwidth.
I realy think this is worth doing it... but I cant do it, not enough time. Same for some friends who could do it... damn we need more skilled people with more time^^