I'm rather curious about VIPM; I don't use this technique right now, and I'd
like to know if some of you already implemented it in an efficient way as
microcode for a next-gen console having a DMA? I don't think indexed stuff
is very efficient in that case, but I might be wrong.. I'd like to hear from
your implementation issues
You tend to have many many vertices, that can be efficiently int-quantized
and depacked after the dma transfer so you save lots of bandwidth, but you
still have to store the depacked stuff in the small "tl-like" unit memory.
To be efficient you also have to double buffer this memory. This leads to a
model splited in realtively small chunks.
Let's say my "hypothetical" console lets me have 8 k in a half-buffer, a
typical simple depacked vertex (with normal, mapping, and rgb) is about 64
bytes in temporary local memory.. This leads to about 100 vertices and index
data. This is relatively small. Of course I can't have an index that
references something outside of the current chunk.. I think it is a very
strong limitation for VIPM.
Is VIPM still efficient done that way, with such small chunks ? Did I miss
something ?
Nicolas
|