Trust DM to be able to completely de-rail a thread by injecting some Sony hate into it.
JesusClownFox said:
But that would only be useful if you want to render the current frame to a texture, wouldn't it?
You could of course send whatever geometry and/or textures you want to be the basis of your render-to-texture operation, and the buffer you allocate does not have to be screen-sized. It most likely won't be anyway, as space on eDRAM is limited. Besides, as you know it's rare that a big-ass texture is ever used at a near 1:1 ratio between pixel:texel, so a huge buffer would be pretty pointless anyway.
What if you just want to do some blending or other math on a texture (ie, for procedural effects)?
Well, I don't see what's stopping you from doing that also, heh. Like I said, there's nothing stopping the GS from rendering to a smaller than screen-size region. Though I don't know what kind of overhead that might involve if you're not planning to do actual 3D rendering on it. Maybe it would be easier to let a VU work that texture over instead and upload it anew.
Also, this thing about three framebuffers, can you or someone else try to elaborate at which points of the pipeline each one is created?
Hm, which stage? I would think the programmer decides that by specifying an area in eDRAM to which to clear and render into (including clearing space for front and Z buffer), so it'd be done by the time the chip actually starts rendering. The rest of the space could then be used for textures and stuff like render targets for render-to-texture ops etc.
I don't know exactly what restrictions the GS puts on the address granularity of buffer placement, if the start of a buffer must be aligned in some special way etc, but if there are such considerations (and I guess there are, due to the multi-ported bus layout of the memory), one of the forum's resident PS2 programmers could answer it.
I think one is done immediately after the triangle setup and initial Z-buffering, no?
INITIAL Z-buffering? GS is an immediate-mode renderer... It Z-buffers as it goes along... Or maybe you're thinking in some way my sleep-muddled brain is not capable of following?