Re: Wondering about PC graphics that implements SGI style virtual graphics

2005-09-13 Thread Alan Cox
On Maw, 2005-09-13 at 12:24 +1000, Tim Long wrote:
> I have tracked down the orignal paper on the subject online at:
> http://www.cs.virginia.edu/~gfx/Courses/2002/BigData/papers/The%
> 20Graphics%20Pipeline/Virtual%20Graphics.pdf

SGI were doing it before that paper, years before. I think Mark
Kilgard's original direct render paper discusses it a little

> 
> I am wondering if any PC level hardware implements the same features?
> For the ones that don't what sort of performance impact does it take
> switch GL threads if the pipeline has to be flushed on a context
> switch. 

Ideally you flush the pipeline when someone else has to be given a
context and this is the oldest. The same is done at low levels for MMU
tags and the like.  That way context flushing rates are much lower



---
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Wondering about PC graphics that implements SGI style virtual graphics

2005-09-12 Thread Eric Anholt
On Mon, 2005-09-12 at 23:40 -0400, Adam Jackson wrote:
> On Monday 12 September 2005 22:24, Tim Long wrote:
> > I am wondering if any PC level hardware implements the same features? For
> > the ones that don't what sort of performance impact does it take switch GL
> > threads if the pipeline has to be flushed on a context switch. I am
> > guessing that at least older style PC hardware designed for games would
> > assume that the only openGL context (full screen first person shooter).
> 
> 3dlabs cards have multiple hardware contexts.  My understanding of nVidia 
> cards is that they kinda have multiple hardware contexts.  The newer Matrox 
> cards might too.  I think for all of these cases you're merely increasing the 
> number of hardware contexts from one to (say) eight, so you'll still have to 
> switch contexts sometimes.
> 
> You don't necessarily have to flush the pipeline on hardware context switch. 
> You just need to resynchronize the state on the card with the state of the 
> context you're switching to.
> 
> - ajax

So, the simple solution we've done for most of our drivers now is "oh,
someone else used the context?  *dump all state again*".  I may be
remembering a simple test to measure the penalty that I did with radeon:
I just didn't dump state on context switching (something rather prone to
hangs, obviously) and got a win of around 5% for the two-app case.
Thus, it looks like context switching isn't a major bottleneck for us,
at least on some hardware.  The cmdbuf system on Radeons (I think)
should mitigate the number of lock grabs and trips to the kernel, and
thus the number of context switches that have to happen anyway.

That said, I may not have used the best app (ipers) for the test -- it
was dominated by fillrate, so there might not have been many
opportunities for pingponging state.  Or maybe not, since it was the
best app I found for reproducing that race in state updating that we
were dealing with.

-- 
Eric Anholt [EMAIL PROTECTED]
http://people.freebsd.org/~anholt/  [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part


Re: Wondering about PC graphics that implements SGI style virtual graphics

2005-09-12 Thread Adam Jackson
On Monday 12 September 2005 22:24, Tim Long wrote:
> I am wondering if any PC level hardware implements the same features? For
> the ones that don't what sort of performance impact does it take switch GL
> threads if the pipeline has to be flushed on a context switch. I am
> guessing that at least older style PC hardware designed for games would
> assume that the only openGL context (full screen first person shooter).

3dlabs cards have multiple hardware contexts.  My understanding of nVidia 
cards is that they kinda have multiple hardware contexts.  The newer Matrox 
cards might too.  I think for all of these cases you're merely increasing the 
number of hardware contexts from one to (say) eight, so you'll still have to 
switch contexts sometimes.

You don't necessarily have to flush the pipeline on hardware context switch. 
You just need to resynchronize the state on the card with the state of the 
context you're switching to.

- ajax


pgpbNyLFKzO73.pgp
Description: PGP signature


Wondering about PC graphics that implements SGI style virtual graphics

2005-09-12 Thread Tim Long
Hi,

I have been doing some research into the hardware design and
implementation of the SGI visual workstation 320 and have noticed that
most (all?) SGI graphocs hardware implements fast context switching of
openGL threads/processes so that multiple apps can run simultaneously
without a large performance drop.

I have tracked down the orignal paper on the subject online at:
http://www.cs.virginia.edu/~gfx/Courses/2002/BigData/papers/The%20Graphics%20Pipeline/Virtual%20Graphics.pdf


I am wondering if any PC level hardware implements the same features?
For the ones that don't what sort of performance impact does it take
switch GL threads if the pipeline has to be flushed on a context
switch. I am guessing that at least older style PC hardware designed
for games would assume that the only openGL context (full screen first
person shooter).

This might be the right mailling list to ask. Does anyone know the best forum for such a question.

Thanks,

Tim Long.