Resolution increase in SLI mode

Started by HamaZ, 14 February 2008, 21:21:41

Previous topic - Next topic

HamaZ

Hello,
I am investigating the Voodoo 1/2 (SST-1) architecture for some of my own designs for some college research.

I am currently analyzing the nature of SLI connectivity. There is one thing which puzzles me, and that is the content of each card's frame buffer when it is in this mode.




First, let me summarize the memory usage for a single card when it is not in SLI mode. AFAIK, in the case of a common Voodoo 2 (with 4 MB of FBI RAM), the maximum resolution is 800x600 (16-bit color depth is always used so it is assumed, and I also assume double buffering and 16-bit z-buffering).

The custom formula to calculate the memory usage for frame buffering is [width] x [height] x [bytes_per_pixel] x ([number_of_buffers]+[number_of_zbuffers]).
So, { 800x600x2x(2+1) } / 1024 = 2812 KB, right?
The mode of 1024*768*2*(2+1) can not fit because it requires 4608 KB.




Now, as far as I understood, in SLI mode, every card renders alternate screen lines, whan in effect means that each card renders only half of the screen lines - meaning half of the resolution. In a case of 800x600x2x(2+1), each card would be rendering in 800x300x2x(2+1), right? I am not sure if the z-buffer is halved, but I assume that it is.

I have read many times on numerous places that the maximum resolution for two Voodoo 2 cards in SLI mode (each with 4 MB of FBI RAM) is 1024x768 (16-bit color, double buffer, 16-bit z-buffer).

But, if I use my assumption that the resolution in each card is only the half of the final resolution, it turns out that they COULD display 1280x960 (16-bit color, double buffer, 16-bit z-buffer)!
Here it is: { 1280x480x2x(2+1) } / 1024 = 3600 KB, what fits into 4096 KB which each card has.

If this had been true than somebody (3Dfx would be the first) would have mentioned it in its documentation, so I assume that I realised something wrong.

Can somebody explain me where my mistake is and tell me how is each card's FBI RAM organised when the card is in SLI mode?
 

HamaZ

Since there were no replies to my questions, can somebody at least point me to the right place for this sort of topic. I suspect that this was not the proper sub-forum for this topic.
 

benna

This is the right sub-forum, you should wait for someone who has the knowledge to answer you.
my PC:

AMD Athlon64 3200+ - ASUS K8V-Deluxe - 1GB DDR400 - 3DFX Voodoo 5 5500 PCI



3DAnalyze user guide:  https://www.3dfxzone.it/dir/articles/3d_analyze_user_guide/

HamaZ

Thank you for that information. I just hope that somebody will give an answer as soon as possible.
 

skinnie

I don't know if this has anything to do with your questions,but there was a driver,that could "emulate" or do higher resolution with sli..
here it is :
http://www.3dfxzone.it/enboard/topic.asp?TOPIC_ID=2245
MSI KT3/Athlon XP 2400+/2x256Mb OCZ BH5/3dfx Voodoo 3 3000 AGP

HamaZ

Thank you for this link, but I still have not gained information which I need. I guess that waiting is all I can do.
 

koolsmoky

Just dropping by to say hi. :) It's a hardware limitation. The Voodoo2 linear frame buffer accesses always assume a 1024 pixel logical scan line width regardless of the actual frame buffer resolution. The maximum width possible is 1024 pixel. The height is not restricted, though.

-KoolSmoky
 

HamaZ

Thank you very much for participating here.

If I understood you well, the card's horisontal pixel count is intentionally limited, although it could render a "wider" resolution otherwise (because it has enough FBI RAM in SLI mode).

Does that mean that my assumption about FBI RAM's contents when the cards are in SLI, is correct? I mean about this:
Quote
Now, as far as I understood, in SLI mode, every card renders alternate screen lines, whan in effect means that each card renders only half of the screen lines - meaning half of the resolution. In a case of 800x600x2x(2+1), each card would be rendering in 800x300x2x(2+1), right? I am not sure if the z-buffer is halved, but I assume that it is.

If this organisation is the one in practice, then the conclusion would be that, for two Voodoo 2 cards in SLI mode (each card with 4 MB of FBI RAM), there is 1792 KB of unused FBI RAM in each card when that system is rendering at 1024x768x2x(2+1). Is this true!? (calculation: {1024x384x2x(2+1)}/1024 = 2304 KB, what is 1792 KB less than 4096 KB).

I am not sure if I made my question and doubtness clear. Plese ask me for additional explanation if it was not.

One more thing - do you know the reason for that horisontal limitation of 1024 pixels?
 

koolsmoky

In SLI mode, the front, back, and auxiliary buffer is halved for each Voodoo2 board. The remainder of the board's linear frame buffer is unused. Nevertheless, the LFB stride of the V2 is always fixed to 1024 pixels. If you check the stride using the 3dfx Glide API, it will always return the number of bytes for 1024 pixels regardless of the actual resolution.

The V2 came out in 1998. Imagine how many people in the consumer market could afford a system that could do over 1024*768 in 3D. ;)

-KoolSmoky
 

HamaZ

Thank you very much! This question is now cleared.

But I have one more question. And I doubt that I will find an answer for it unless I run onto an ex-3Dfx SST-1 engineer :)

The question is - how do two Voodoo cards receive textures when they are in SLI mode? Since both cards have the same TMU RAM contents in every moment, that would implicate that each texture has to be sent twice over the PCI bus. If this is true, that means that the PCI bus may be the limiting element for the SLI system.

But are the textures sent twice, or how else? I doubt that PCI multicasting is used, because AFAIK the "ordinary" PCI bus does not support multicasting.
 

koolsmoky

The slave V2 snoops the master in SLI mode. Writes to the master are also received by the slave simultaneously.

-KoolSmoky