Software Rendering

Sage
Posts: 1,232
Joined: 2002.10
Post: #16
Quote:Originally posted by DoG
You will still be limited by AGP bandwidth (though this limitation in itself probably wont matter for you)

Depending on your application it is still a big bottleneck.

On an old iBook for example, you have AGP2x which is about 512megs/sec. Let's say you want to upload 800x600x32bpp textures, at 60fps. How many can you upload?

Each texture = 1875k.
* 60fps = ~110 megs / sec.
= 4.6 textures uploadable per frame, theoretical max ignoring all other bandwidth.

This might equal, for example, 4 scrolling layers. Or 4 sides of a cube map. Or 4 shadow maps. Or 4 video streams. Or etc.
Quote this message in a reply
DoG
Moderator
Posts: 869
Joined: 2003.01
Post: #17
Quote:Originally posted by arekkusu
Depending on your application it is still a big bottleneck.

On an old iBook for example, you have AGP2x which is about 512megs/sec. Let's say you want to upload 800x600x32bpp textures, at 60fps. How many can you upload?

Each texture = 1875k.
* 60fps = ~110 megs / sec.
= 4.6 textures uploadable per frame, theoretical max ignoring all other bandwidth.

This might equal, for example, 4 scrolling layers. Or 4 sides of a cube map. Or 4 shadow maps. Or 4 video streams. Or etc.


BUT, we are only talking a single framebuffer to be uploaded.

Besides, you'd be a fool if you composed multiple framebuffers in software and then transferred it to VRAM. I see no application for what you mentioned.
Quote this message in a reply
Sage
Posts: 1,232
Joined: 2002.10
Post: #18
Stick six HDTV streams on a rotating cube. AGP2x is going to be a bottleneck.
Quote this message in a reply
Moderator
Posts: 3,573
Joined: 2003.06
Post: #19
True, but that's not what I'm doing. For pushing a frame at a time, DoG is right, it just isn't an issue.
Quote this message in a reply
DoG
Moderator
Posts: 869
Joined: 2003.01
Post: #20
Quote:Originally posted by arekkusu
Stick six HDTV streams on a rotating cube. AGP2x is going to be a bottleneck.


Hehe, i wonder how you are going to decode six (or even one) HDTV streams in software on a computer which only supports 2x AGP in the first place. Rasp
Quote this message in a reply
Programmer
Unregistered
 
Post: #21
Just make sure you don't read across the bus. The frame buffers aren't cache-able, plus the read latencies are horrific. Draw locally and then blit the result across the bus with the widest writes you can manage (AltiVec or doubles).

I've often thought that writing an AltiVec renderer would be fun. And then sanity returns and I go back to thinking about how to use the GPU. Doing CPU based texture generation is really useful, but these days there isn't much reason to rasterize polygons on the CPU. Using the CPU for post-processing the frame buffer could be compelling, but it just takes way too long to get the frame buffer back to where the CPU can deal with it at a reasonable speed. Besides, this is what programmable GPUs are for. Smile
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Parallel OpenGL Library (software rendering) psyba 8 3,735 May 16, 2006 07:14 PM
Last Post: OneSadCookie