Could SBS give better performance?
I was just curious as to whether side-by-side mode could potentially offer greater performance than other 3D formats due to the way the card can speculate and render ahead? For 3D modes that alternate frames or fields those speculative abilities are greatly lessened but SBS has all of the info for each frame on every frame allowing the card to better guess what is coming next.
How does frame packing work in this regard?


Any thoughts?
I was just curious as to whether side-by-side mode could potentially offer greater performance than other 3D formats due to the way the card can speculate and render ahead? For 3D modes that alternate frames or fields those speculative abilities are greatly lessened but SBS has all of the info for each frame on every frame allowing the card to better guess what is coming next.

How does frame packing work in this regard?





Any thoughts?

#1
Posted 12/20/2011 03:44 PM   
All modes have all of the info that side by side do while being rendered.
The only difference is the way the information is presented to the monitor. There is probably an extra post processing step in the driver for some of the more esoteric modes like checkerboard, although it's possible the scan out hardware could deal with the interleaving.

i.e. on a 120Hz monitor (frame sequential) the app still renders both left and right eyes together and the driver deals with flipping the two frames to the monitor as needed.

If you think about it, it has to be this way, or games that couldn't render at 120Hz would not be able to retain Left/Right sync.
All modes have all of the info that side by side do while being rendered.

The only difference is the way the information is presented to the monitor. There is probably an extra post processing step in the driver for some of the more esoteric modes like checkerboard, although it's possible the scan out hardware could deal with the interleaving.



i.e. on a 120Hz monitor (frame sequential) the app still renders both left and right eyes together and the driver deals with flipping the two frames to the monitor as needed.



If you think about it, it has to be this way, or games that couldn't render at 120Hz would not be able to retain Left/Right sync.
#2
Posted 12/20/2011 04:52 PM   
[quote name='Bobeggy' date='20 December 2011 - 08:44 AM' timestamp='1324395880' post='1344716']
I was just curious as to whether side-by-side mode could potentially offer greater performance than other 3D formats due to the way the card can speculate and render ahead? For 3D modes that alternate frames or fields those speculative abilities are greatly lessened but SBS has all of the info for each frame on every frame allowing the card to better guess what is coming next.
How does frame packing work in this regard?


Any thoughts?
[/quote]
Framepacking is processed by the TV differently than all non-mandatory 3D modes (SBS,CB, FS etc.) that are optimized for PC use. This is why FP is particularly bad for PC graphics use, it's strictly for broadcast TV.
[quote name='Bobeggy' date='20 December 2011 - 08:44 AM' timestamp='1324395880' post='1344716']

I was just curious as to whether side-by-side mode could potentially offer greater performance than other 3D formats due to the way the card can speculate and render ahead? For 3D modes that alternate frames or fields those speculative abilities are greatly lessened but SBS has all of the info for each frame on every frame allowing the card to better guess what is coming next.

How does frame packing work in this regard?





Any thoughts?



Framepacking is processed by the TV differently than all non-mandatory 3D modes (SBS,CB, FS etc.) that are optimized for PC use. This is why FP is particularly bad for PC graphics use, it's strictly for broadcast TV.

#3
Posted 12/20/2011 05:04 PM   
Framepacking, Frame Sequential, Side-by-Side are just output modes. They don't have any impact on how the GPU renders frames in stereo with alternating eye views of the same frame. If anything, SBS and framepacking add latency by delaying output and display of stereo frames which then must be split and synchronized again for output by the TV. FS outputs and displays stereo frames the way they are rendered, one eye then the next 120 times per second or 60 times per eye.
Framepacking, Frame Sequential, Side-by-Side are just output modes. They don't have any impact on how the GPU renders frames in stereo with alternating eye views of the same frame. If anything, SBS and framepacking add latency by delaying output and display of stereo frames which then must be split and synchronized again for output by the TV. FS outputs and displays stereo frames the way they are rendered, one eye then the next 120 times per second or 60 times per eye.

-=HeliX=- Mod 3DV Game Fixes
My 3D Vision Games List Ratings

Intel Core i7 5930K @4.5GHz | Gigabyte X99 Gaming 5 | Win10 x64 Pro | Corsair H105
Nvidia GeForce Titan X SLI Hybrid | ROG Swift PG278Q 144Hz + 3D Vision/G-Sync | 32GB Adata DDR4 2666
Intel Samsung 950Pro SSD | Samsung EVO 4x1 RAID 0 |
Yamaha VX-677 A/V Receiver | Polk Audio RM6880 7.1 | LG Blu-Ray
Auzen X-Fi HT HD | Logitech G710/G502/G27 | Corsair Air 540 | EVGA P2-1200W

#4
Posted 12/20/2011 05:31 PM   
Awesome info. Thanks for responding folks!

So, theoretically, if a game was specifically written to use two GPUs (either SLI or two on one card), one GPU devoted to the left frames and the other to the right, would that allow greater use of speculative processing and increase performance over the way it's done now?

I'm basing that question on my assumption that the flip-flopping of frames hampers the cards abilities the way it's done now.
Awesome info. Thanks for responding folks!



So, theoretically, if a game was specifically written to use two GPUs (either SLI or two on one card), one GPU devoted to the left frames and the other to the right, would that allow greater use of speculative processing and increase performance over the way it's done now?



I'm basing that question on my assumption that the flip-flopping of frames hampers the cards abilities the way it's done now.

#5
Posted 12/20/2011 08:53 PM   
Caveat - I have no inside knowledge on how the driver currently does it.

Unfortunately PC video card drivers do a lot of mucking with the submitted primitives to try and fix developer poor practices, so it's hard to say.
But with one card it's likely more efficient to render each batch to each eye using a single double wide or double tall render target, this would minimize state changes, if I had to guess, this is what I would guess the driver does.
With 2 GPU's you could use 2 render targets one for each eye, or the standard SLI AFR type rendering, splitting the left/right across the GPU's might result in reduced latency, however in most cases I'd expect no performance win.

The only thing that has to Flip-Flop frames is the output, which has nothing to do with rendering and at best a minimal amount to do with performance.
Caveat - I have no inside knowledge on how the driver currently does it.



Unfortunately PC video card drivers do a lot of mucking with the submitted primitives to try and fix developer poor practices, so it's hard to say.

But with one card it's likely more efficient to render each batch to each eye using a single double wide or double tall render target, this would minimize state changes, if I had to guess, this is what I would guess the driver does.

With 2 GPU's you could use 2 render targets one for each eye, or the standard SLI AFR type rendering, splitting the left/right across the GPU's might result in reduced latency, however in most cases I'd expect no performance win.



The only thing that has to Flip-Flop frames is the output, which has nothing to do with rendering and at best a minimal amount to do with performance.
#6
Posted 12/20/2011 11:23 PM   
Nvidia has messed with both approaches for 3D and SLI. At first they had a single GPU render both the right and left eye views on the same GPU for frame 1, which was more bandwidth efficient as all primitive/intermediate buffers to stayed local to that GPU. Then frame 2 would render both right and left eye views on the 2nd GPU.

Pretty sure they changed this though around the time of 3D Vision Surround where there were significant SLI scaling issues (basically no scaling at all) because 1 GPU had to render massive triple resolution frames TWICE before the 2nd and subsequent GPUs were utilized. Now its similar to traditional AFR where each GPU just gets the next frame to be rendered whether its right eye or left eye.

Here's the old method from Nvidia's press kit (from Anandtech's article): http://www.anandtech.com/show/3793/nvidia-launches-3d-vision-surround/2

[img]http://images.anandtech.com/doci/3793/3DAFR.jpg[/img]

Pretty sure the new method from what I've read now gives the L and R eye views to each SLI GPU simultaneously, which is obviously more efficient as both GPU can render the image at the same time. I'll see if I can track down an updated press kit graphic for it. So for performance benefit, don't expect anything miraculous since SLI already handles stereo rendering the way you're suggesting.
Nvidia has messed with both approaches for 3D and SLI. At first they had a single GPU render both the right and left eye views on the same GPU for frame 1, which was more bandwidth efficient as all primitive/intermediate buffers to stayed local to that GPU. Then frame 2 would render both right and left eye views on the 2nd GPU.



Pretty sure they changed this though around the time of 3D Vision Surround where there were significant SLI scaling issues (basically no scaling at all) because 1 GPU had to render massive triple resolution frames TWICE before the 2nd and subsequent GPUs were utilized. Now its similar to traditional AFR where each GPU just gets the next frame to be rendered whether its right eye or left eye.



Here's the old method from Nvidia's press kit (from Anandtech's article): http://www.anandtech.com/show/3793/nvidia-launches-3d-vision-surround/2



Image



Pretty sure the new method from what I've read now gives the L and R eye views to each SLI GPU simultaneously, which is obviously more efficient as both GPU can render the image at the same time. I'll see if I can track down an updated press kit graphic for it. So for performance benefit, don't expect anything miraculous since SLI already handles stereo rendering the way you're suggesting.

-=HeliX=- Mod 3DV Game Fixes
My 3D Vision Games List Ratings

Intel Core i7 5930K @4.5GHz | Gigabyte X99 Gaming 5 | Win10 x64 Pro | Corsair H105
Nvidia GeForce Titan X SLI Hybrid | ROG Swift PG278Q 144Hz + 3D Vision/G-Sync | 32GB Adata DDR4 2666
Intel Samsung 950Pro SSD | Samsung EVO 4x1 RAID 0 |
Yamaha VX-677 A/V Receiver | Polk Audio RM6880 7.1 | LG Blu-Ray
Auzen X-Fi HT HD | Logitech G710/G502/G27 | Corsair Air 540 | EVGA P2-1200W

#7
Posted 12/21/2011 12:37 AM   
I'm not sure what the OP means but I always thought SBS could improve performance because each frame is rendered in half resolution and then stretched to full size before being displayed. Unless the GPU renders the two full frames then squishes them into a single one in SBS format. But nvidia hasn't implemented SBS and I have no idea how tridef/iz3d do.
I'm not sure what the OP means but I always thought SBS could improve performance because each frame is rendered in half resolution and then stretched to full size before being displayed. Unless the GPU renders the two full frames then squishes them into a single one in SBS format. But nvidia hasn't implemented SBS and I have no idea how tridef/iz3d do.

#8
Posted 12/22/2011 06:47 PM   
So do they "freeze time" to render both eyes? Or does time keep advancing so the L and R views will not make a perfect stereo pair? I would think you would get smoother motion if time is kept rolling, no?
So do they "freeze time" to render both eyes? Or does time keep advancing so the L and R views will not make a perfect stereo pair? I would think you would get smoother motion if time is kept rolling, no?

#9
Posted 12/23/2011 03:00 AM   
[quote name='Bobeggy' date='22 December 2011 - 07:00 PM' timestamp='1324609249' post='1346148']
So do they "freeze time" to render both eyes? Or does time keep advancing so the L and R views will not make a perfect stereo pair? I would think you would get smoother motion if time is kept rolling, no?
[/quote]

WOW where to start.
Most PC games decouple gameplay from rendering framerate there are several ways this is done.
But fundamentally time is quantized in a game, there is no freezing of time, rendering is parallel to processing, either the quantum is varied or snapshots are taken of render state on a separate thread.
[quote name='Bobeggy' date='22 December 2011 - 07:00 PM' timestamp='1324609249' post='1346148']

So do they "freeze time" to render both eyes? Or does time keep advancing so the L and R views will not make a perfect stereo pair? I would think you would get smoother motion if time is kept rolling, no?





WOW where to start.

Most PC games decouple gameplay from rendering framerate there are several ways this is done.

But fundamentally time is quantized in a game, there is no freezing of time, rendering is parallel to processing, either the quantum is varied or snapshots are taken of render state on a separate thread.
#10
Posted 12/23/2011 04:01 AM   
[quote name='blackrack' date='22 December 2011 - 01:47 PM' timestamp='1324579665' post='1345923']
I'm not sure what the OP means but I always thought SBS could improve performance because each frame is rendered in half resolution and then stretched to full size before being displayed. [b]Unless the GPU renders the two full frames then squishes them into a single one in SBS format.[/b] But nvidia hasn't implemented SBS and I have no idea how tridef/iz3d do.
[/quote]
Bolded portion is correct, except the output is most likely handled by the VPU, or video processing unit, same unit that handles HD decode, HDCP handshaking, etc. Also been referred to as PureVideo or VP-#. http://en.wikipedia.org/wiki/Nvidia_PureVideo#The_Fifth_Generation_PureVideo_HD

[quote name='Bobeggy' date='22 December 2011 - 10:00 PM' timestamp='1324609249' post='1346148']
So do they "freeze time" to render both eyes? Or does time keep advancing so the L and R views will not make a perfect stereo pair? I would think you would get smoother motion if time is kept rolling, no?
[/quote]
No, the frames are rendered as usual by the GPU regardless of the output method as dictated by the rendering mode, AFR or SFR or whatever. The VPU would then pull each frame from the frame buffer as needed but in the case of SBS, would wait for the 2nd frame and composite the two images into a single large double resolution frame before sending it off to your display. Vsync enforced by the stereo 3D driver makes all of this much easier, and more predictable.

If you visualize it Frame Sequential is 120 outputs/inputs per second 8.33ms (1000/120) apart and would look like this:

L, R, L, R, L, R

and SBS would look like, 60 outputs/inputs per second 16.67ms (1000/60) apart between frames:

LR, _ , LR, _ , LR

You can see if anything, SBS would have additional latency as the frame is held, then needs to be processed and split again by the HDTV before it is displayed to each eye.
[quote name='blackrack' date='22 December 2011 - 01:47 PM' timestamp='1324579665' post='1345923']

I'm not sure what the OP means but I always thought SBS could improve performance because each frame is rendered in half resolution and then stretched to full size before being displayed. Unless the GPU renders the two full frames then squishes them into a single one in SBS format. But nvidia hasn't implemented SBS and I have no idea how tridef/iz3d do.



Bolded portion is correct, except the output is most likely handled by the VPU, or video processing unit, same unit that handles HD decode, HDCP handshaking, etc. Also been referred to as PureVideo or VP-#. http://en.wikipedia.org/wiki/Nvidia_PureVideo#The_Fifth_Generation_PureVideo_HD



[quote name='Bobeggy' date='22 December 2011 - 10:00 PM' timestamp='1324609249' post='1346148']

So do they "freeze time" to render both eyes? Or does time keep advancing so the L and R views will not make a perfect stereo pair? I would think you would get smoother motion if time is kept rolling, no?



No, the frames are rendered as usual by the GPU regardless of the output method as dictated by the rendering mode, AFR or SFR or whatever. The VPU would then pull each frame from the frame buffer as needed but in the case of SBS, would wait for the 2nd frame and composite the two images into a single large double resolution frame before sending it off to your display. Vsync enforced by the stereo 3D driver makes all of this much easier, and more predictable.



If you visualize it Frame Sequential is 120 outputs/inputs per second 8.33ms (1000/120) apart and would look like this:



L, R, L, R, L, R



and SBS would look like, 60 outputs/inputs per second 16.67ms (1000/60) apart between frames:



LR, _ , LR, _ , LR



You can see if anything, SBS would have additional latency as the frame is held, then needs to be processed and split again by the HDTV before it is displayed to each eye.

-=HeliX=- Mod 3DV Game Fixes
My 3D Vision Games List Ratings

Intel Core i7 5930K @4.5GHz | Gigabyte X99 Gaming 5 | Win10 x64 Pro | Corsair H105
Nvidia GeForce Titan X SLI Hybrid | ROG Swift PG278Q 144Hz + 3D Vision/G-Sync | 32GB Adata DDR4 2666
Intel Samsung 950Pro SSD | Samsung EVO 4x1 RAID 0 |
Yamaha VX-677 A/V Receiver | Polk Audio RM6880 7.1 | LG Blu-Ray
Auzen X-Fi HT HD | Logitech G710/G502/G27 | Corsair Air 540 | EVGA P2-1200W

#11
Posted 12/23/2011 04:29 AM   
[quote name='chiz' date='23 December 2011 - 04:29 AM' timestamp='1324614565' post='1346184']
Bolded portion is correct, except the output is most likely handled by the VPU, or video processing unit, same unit that handles HD decode, HDCP handshaking, etc. Also been referred to as PureVideo or VP-#. http://en.wikipedia.org/wiki/Nvidia_PureVideo#The_Fifth_Generation_PureVideo_HD

[/quote]

got any source on your info ?? I mean how do you know frames are rendered into full resolution and then squished into a single frame ??
[quote name='chiz' date='23 December 2011 - 04:29 AM' timestamp='1324614565' post='1346184']

Bolded portion is correct, except the output is most likely handled by the VPU, or video processing unit, same unit that handles HD decode, HDCP handshaking, etc. Also been referred to as PureVideo or VP-#. http://en.wikipedia.org/wiki/Nvidia_PureVideo#The_Fifth_Generation_PureVideo_HD







got any source on your info ?? I mean how do you know frames are rendered into full resolution and then squished into a single frame ??

#12
Posted 12/24/2011 12:26 PM   
[quote name='blackrack' date='24 December 2011 - 07:26 AM' timestamp='1324729567' post='1346723']
got any source on your info ?? I mean how do you know frames are rendered into full resolution and then squished into a single frame ??
[/quote]
Hit Alt-F1 in-game while running SBS output, what does your resulting JPS look like? There's other ways to verify but this is the easiest.
[quote name='blackrack' date='24 December 2011 - 07:26 AM' timestamp='1324729567' post='1346723']

got any source on your info ?? I mean how do you know frames are rendered into full resolution and then squished into a single frame ??



Hit Alt-F1 in-game while running SBS output, what does your resulting JPS look like? There's other ways to verify but this is the easiest.

-=HeliX=- Mod 3DV Game Fixes
My 3D Vision Games List Ratings

Intel Core i7 5930K @4.5GHz | Gigabyte X99 Gaming 5 | Win10 x64 Pro | Corsair H105
Nvidia GeForce Titan X SLI Hybrid | ROG Swift PG278Q 144Hz + 3D Vision/G-Sync | 32GB Adata DDR4 2666
Intel Samsung 950Pro SSD | Samsung EVO 4x1 RAID 0 |
Yamaha VX-677 A/V Receiver | Polk Audio RM6880 7.1 | LG Blu-Ray
Auzen X-Fi HT HD | Logitech G710/G502/G27 | Corsair Air 540 | EVGA P2-1200W

#13
Posted 12/24/2011 03:59 PM   
[quote name='blackrack' date='22 December 2011 - 11:47 AM' timestamp='1324579665' post='1345923']
I'm not sure what the OP means but I always thought SBS could improve performance because each frame is rendered in half resolution and then stretched to full size before being displayed.[/quote]
No, nothing is "stretched" (1 to 2 mapping). If it were, then these native res modes (CB, SBS, top/bottom, FS) would be scaled, not native res. This only adds to the myth that these modes are not native res.

The game renders in 1920x1080 per image, the result is two 1920x1080 images per frame (L and R). If SBS/CB/TB/interleaved or other native res, bandwidth saving modes are choosen, half the pixels from each image are actually sent to the display on two successive vertical refresh cycles (i.e. one frame). But the pixels are not "stretched" 1 to 2 mapped as you suggest, they are 1 to 1 mapped, i.e. native resolution. This is one of two reasons why CB/SBS looks so much better than 720P framepacking.

If you take a screen shot, you will capture two images, one L and one R, both 1920x1080 regardless of 3D mode choosen when you took the SS. To view in, say, SBS mode, you would need to set your 3D viewer to SBS mode then you will see it in native res 1 to 1 mapped SBS mode (960x1080 per image, 1920x1080 per frame). The same image can be seen in any mode (FS, CB, SBS etc.) but the capture itself is always 1920x1080 per LR image, or 2X 1920x1080 per frame.
[quote name='blackrack' date='22 December 2011 - 11:47 AM' timestamp='1324579665' post='1345923']

I'm not sure what the OP means but I always thought SBS could improve performance because each frame is rendered in half resolution and then stretched to full size before being displayed.

No, nothing is "stretched" (1 to 2 mapping). If it were, then these native res modes (CB, SBS, top/bottom, FS) would be scaled, not native res. This only adds to the myth that these modes are not native res.



The game renders in 1920x1080 per image, the result is two 1920x1080 images per frame (L and R). If SBS/CB/TB/interleaved or other native res, bandwidth saving modes are choosen, half the pixels from each image are actually sent to the display on two successive vertical refresh cycles (i.e. one frame). But the pixels are not "stretched" 1 to 2 mapped as you suggest, they are 1 to 1 mapped, i.e. native resolution. This is one of two reasons why CB/SBS looks so much better than 720P framepacking.



If you take a screen shot, you will capture two images, one L and one R, both 1920x1080 regardless of 3D mode choosen when you took the SS. To view in, say, SBS mode, you would need to set your 3D viewer to SBS mode then you will see it in native res 1 to 1 mapped SBS mode (960x1080 per image, 1920x1080 per frame). The same image can be seen in any mode (FS, CB, SBS etc.) but the capture itself is always 1920x1080 per LR image, or 2X 1920x1080 per frame.

#14
Posted 12/24/2011 05:10 PM   
Scroll To Top