qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Graphic card
@ 2005-10-30  0:35 Ricardo Almeida
  2005-10-30  4:43 ` Mike Swanson
  0 siblings, 1 reply; 11+ messages in thread
From: Ricardo Almeida @ 2005-10-30  0:35 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 904 bytes --]

Hi,

I'm sure you got this asked over and over again, but I joined the list
recently :o)

I've installed qemu+kemu on linux and installed windows XP on it. The
graphic card is slow :( and it's not possible to see videos :(

1- Will it be possible to see videos when some day the graphic card code is
enhanced?
2- Cirrus card is too slow/some other issue to see videos?
3- Why not implement some betther graphic card with 3d support like 3DFX
Voodoo3 (I believe it was the first 3DFX that was also a graphic card and
not just a 3d accelarator)?
4- Why not implement some Qemu special driver for common installed systems
that names itself as a Cirrus driver but it's a vmware-like driver.

I believe (4) should be the fastest, but I think the best relation "work
required - benefit" is (3) as it works faster off-the-shelf with all the
operating systems...

Regards,
Ricardo Almeida

[-- Attachment #2: Type: text/html, Size: 973 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-30  0:35 [Qemu-devel] Graphic card Ricardo Almeida
@ 2005-10-30  4:43 ` Mike Swanson
  2005-10-30 12:02   ` Oliver Gerlich
  2005-10-31  9:58   ` Ricardo Almeida
  0 siblings, 2 replies; 11+ messages in thread
From: Mike Swanson @ 2005-10-30  4:43 UTC (permalink / raw)
  To: qemu-devel

Well, it basically comes down to the fact that QEMU isn't so optimised
as much as VMware is. >_> I'm not really a developer, but I'll answer
as best as I can, and maybe somebody will correct me!

1. You can technically see videos right now, but yeah, it's not very
smooth. Oh, and the guest operating system itself will affect the
speed. Using Windows 2000, NT4, or Win95 would be a lot faster than
Windows XP (but you might not have any lower version). Someday, it
might be possible to see videos at a decent speed...
2. Not sure what you're asking, really
3. Perhaps, but there's two things here. First of all, the card would
have to be documented in a fair amount of low-level detail, something
that big video card companies rarely or never do. Secondly, the
complexity of the card might make its emulated implementation even
slower than the Cirrus one used currently
4. It sounds reasonable, but it undermines one of QEMU's goals:
running guest operating system without modification (and drivers
certainly count as one). Also, it'll possibly limit the number of
operating systems you'd run in QEMU with fancy graphics...
implementing Cirrus makes it possible to run many OSes with no (or
few) video problems, including Windows 95, Win NT 4, almost every
GNU/Linux, almost every BSD, Solaris, Darwin, Plan 9, QNX, DOS, BeOS,
etc.

On 10/29/05, Ricardo Almeida <ric.almeida@gmail.com> wrote:
> Hi,
>
>  I'm sure you got this asked over and over again, but I joined the list
> recently :o)
>
>  I've installed qemu+kemu on linux and installed windows XP on it. The
> graphic card is slow :( and it's not possible to see videos :(
>
>  1- Will it be possible to see videos when some day the graphic card code is
> enhanced?
>  2- Cirrus card is too slow/some other issue to see videos?
>  3- Why not implement some betther graphic card with 3d support like 3DFX
> Voodoo3 (I believe it was the first 3DFX that was also a graphic card and
> not just a 3d accelarator)?
>  4- Why not implement some Qemu special driver for common installed systems
> that names itself as a Cirrus driver but it's a vmware-like driver.
>
>  I believe (4) should be the fastest, but I think the best relation "work
> required - benefit" is (3) as it works faster off-the-shelf with all the
> operating systems...
>
>  Regards,
>  Ricardo Almeida

--
Mike

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-30  4:43 ` Mike Swanson
@ 2005-10-30 12:02   ` Oliver Gerlich
  2005-10-30 13:42     ` Henrik Nordstrom
  2005-10-30 14:31     ` Jim C. Brown
  2005-10-31  9:58   ` Ricardo Almeida
  1 sibling, 2 replies; 11+ messages in thread
From: Oliver Gerlich @ 2005-10-30 12:02 UTC (permalink / raw)
  To: qemu-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mike Swanson schrieb:
> 4. It sounds reasonable, but it undermines one of QEMU's goals:
> running guest operating system without modification (and drivers
> certainly count as one). Also, it'll possibly limit the number of
> operating systems you'd run in QEMU with fancy graphics...
> implementing Cirrus makes it possible to run many OSes with no (or
> few) video problems, including Windows 95, Win NT 4, almost every
> GNU/Linux, almost every BSD, Solaris, Darwin, Plan 9, QNX, DOS, BeOS,
> etc.
> 

I agree that it's good that Qemu emulates such a wide-spread graphics
card... But I also think it's some kind of dead end.
Not only does eg. BeOS not support that Cirrus card (last time I tried
BeOS inside Qemu, it complained that the Cirrus card is too old :-) .
Also I'm not sure whether the Cirrus card will ever be fast enough for
that. Do "real" Cirrus 5446 cards offer hardware video acceleration? And
do they offer 2d acceleration that can be used by DirectDraw? They
certainly don't have 3d support, so if Qemu should have fast 3d graphics
one day, it will certainly not work with the current graphics emulation.

So, I think we shouldn't dismiss the possibility of a special Qemu
graphics card (and driver). The Cirrus card (and -std-vga) should still
be available for those systems where the Qemu graphics driver is not
available, while the users who run a wide-spread, recent system as guest
can have faster graphics.

Just my two cents,
Oliver Gerlich
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFDZLY+TFOM6DcNJ6cRAoCxAJ9yAC8Th6DfuXnPQJ1m7mn85RvPoQCeKj6D
2XyhMcUQQ+lsy5bQn1IOuHY=
=LoQ7
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-30 12:02   ` Oliver Gerlich
@ 2005-10-30 13:42     ` Henrik Nordstrom
  2005-10-31 10:01       ` Ricardo Almeida
  2005-10-30 14:31     ` Jim C. Brown
  1 sibling, 1 reply; 11+ messages in thread
From: Henrik Nordstrom @ 2005-10-30 13:42 UTC (permalink / raw)
  To: qemu-devel

On Sun, 30 Oct 2005, Oliver Gerlich wrote:

> do they offer 2d acceleration that can be used by DirectDraw? They
> certainly don't have 3d support, so if Qemu should have fast 3d graphics
> one day, it will certainly not work with the current graphics emulation.

Fast 3d and emultion does not mix that well.. the more advanced graphics 
card you try to emulate the more complex (and also slower) the emulation 
of that graphics card is.

> So, I think we shouldn't dismiss the possibility of a special Qemu
> graphics card (and driver).

Agreed, but it is not in the main focus of qemu I think. But I also do not 
think any of the developers would oppose if such solution is being 
contributed.

Regards
Henrik

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-30 12:02   ` Oliver Gerlich
  2005-10-30 13:42     ` Henrik Nordstrom
@ 2005-10-30 14:31     ` Jim C. Brown
  1 sibling, 0 replies; 11+ messages in thread
From: Jim C. Brown @ 2005-10-30 14:31 UTC (permalink / raw)
  To: Oliver Gerlich; +Cc: qemu-devel

On Sun, Oct 30, 2005 at 01:02:08PM +0100, Oliver Gerlich wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Mike Swanson schrieb:
> > 4. It sounds reasonable, but it undermines one of QEMU's goals:
> > running guest operating system without modification (and drivers
> > certainly count as one). Also, it'll possibly limit the number of
> > operating systems you'd run in QEMU with fancy graphics...
> > implementing Cirrus makes it possible to run many OSes with no (or
> > few) video problems, including Windows 95, Win NT 4, almost every
> > GNU/Linux, almost every BSD, Solaris, Darwin, Plan 9, QNX, DOS, BeOS,
> > etc.
> > 
> 
> So, I think we shouldn't dismiss the possibility of a special Qemu
> graphics card (and driver). The Cirrus card (and -std-vga) should still
> be available for those systems where the Qemu graphics driver is not
> available, while the users who run a wide-spread, recent system as guest
> can have faster graphics.
> 
> Just my two cents,
> Oliver Gerlich

There is (or was) work on a qemu-specific opengl library. It didn't require
any special hardware - just a guest-side driver and some patches to qemu.

It'd accomplish the same effect as a custom driver, but perhaps more easily.

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-30  4:43 ` Mike Swanson
  2005-10-30 12:02   ` Oliver Gerlich
@ 2005-10-31  9:58   ` Ricardo Almeida
  2005-10-31 13:35     ` Jim C. Brown
  1 sibling, 1 reply; 11+ messages in thread
From: Ricardo Almeida @ 2005-10-31  9:58 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 2648 bytes --]

On 10/30/05, Mike Swanson <mikeonthecomputer@gmail.com> wrote:
>
>
> 3. Perhaps, but there's two things here. First of all, the card would
> have to be documented in a fair amount of low-level detail, something
> that big video card companies rarely or never do.


What about the Via/S3 Unichrome? Via allows access to the Linux Video
Interface (http://www.viaarena.com/default.aspx?PageID=151) and there are
open source drivers (http://sourceforge.net/projects/unichrome/) from where,
to my believe, it's possible to understand the graphic card.
I'm just a java developer so I really can't help in any of the hard work.
Just trying to make some suggestions to improve this great software :)

Secondly, the
> complexity of the card might make its emulated implementation even
> slower than the Cirrus one used currently


This is something I tend to dissagree... People aren't going to emulate a
full pc in a slow one. The worst graphic card sold today (picked a random
online shop here in Portugal) is a GeForce FX5200, with DirectX 9.0 and
OpenGL 1.4 hardware accelaration. I'm sure most calls to the emulated
graphic card can have an almost direct call.
Cirrus card can still be emulated, but I don't see nothing wrong in having
an emulated card that requires a 60€ graphic card to work...

4. It sounds reasonable, but it undermines one of QEMU's goals:
> running guest operating system without modification (and drivers
> certainly count as one). Also, it'll possibly limit the number of
> operating systems you'd run in QEMU with fancy graphics...
> implementing Cirrus makes it possible to run many OSes with no (or
> few) video problems, including Windows 95, Win NT 4, almost every
> GNU/Linux, almost every BSD, Solaris, Darwin, Plan 9, QNX, DOS, BeOS,
> etc.


What I meant in 4 was to keep the Cirrus emulated but have a Cirrus++ driver
made to take advantages of knowing it's not really a Cirrus card but an
emulated one... But as I said, it's probably more work done than advantages
get.

On 10/29/05, Ricardo Almeida <ric.almeida@gmail.com> wrote:
> > I'm sure you got this asked over and over again, but I joined the list
> > recently :o)
> >
> > I've installed qemu+kemu on linux and installed windows XP on it. The
> > graphic card is slow :( and it's not possible to see videos :(
> >
> > 3- Why not implement some betther graphic card with 3d support like 3DFX
> > Voodoo3 (I believe it was the first 3DFX that was also a graphic card
> and
> > not just a 3d accelarator)?
> > 4- Why not implement some Qemu special driver for common installed
> systems
> > that names itself as a Cirrus driver but it's a vmware-like driver.
>

[-- Attachment #2: Type: text/html, Size: 3727 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-30 13:42     ` Henrik Nordstrom
@ 2005-10-31 10:01       ` Ricardo Almeida
  2005-10-31 13:39         ` Jim C. Brown
  0 siblings, 1 reply; 11+ messages in thread
From: Ricardo Almeida @ 2005-10-31 10:01 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 548 bytes --]

>
> Fast 3d and emultion does not mix that well.. the more advanced graphics
> card you try to emulate the more complex (and also slower) the emulation
> of that graphics card is.
>

As I said in my previous reply, 3D calls probably don't need to be emulated.
Just as you don't have to emulate a x86 processor if you're running in one,
you can specify that you can only emulate some 3D card if the real hardware
have some OpenGL driver. That way you wouldn't be emulating them, just
redirecting the calls..,

Regards,
Ricardo Almeida

[-- Attachment #2: Type: text/html, Size: 717 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-31  9:58   ` Ricardo Almeida
@ 2005-10-31 13:35     ` Jim C. Brown
  0 siblings, 0 replies; 11+ messages in thread
From: Jim C. Brown @ 2005-10-31 13:35 UTC (permalink / raw)
  To: Ricardo Almeida; +Cc: qemu-devel

On Mon, Oct 31, 2005 at 09:58:45AM +0000, Ricardo Almeida wrote:
> On 10/30/05, Mike Swanson <mikeonthecomputer@gmail.com> wrote:
> >
> >
> > 3. Perhaps, but there's two things here. First of all, the card would
> > have to be documented in a fair amount of low-level detail, something
> > that big video card companies rarely or never do.
> 
> 
> What about the Via/S3 Unichrome? Via allows access to the Linux Video
> Interface (http://www.viaarena.com/default.aspx?PageID=151) and there are
> open source drivers (http://sourceforge.net/projects/unichrome/) from where,
> to my believe, it's possible to understand the graphic card.
> I'm just a java developer so I really can't help in any of the hard work.
> Just trying to make some suggestions to improve this great software :)
> 

It will still be fairly hard to do, even if its completely open.

Since Via S3/Unichrome is supported by DRI, I'd say that it looks doable
(at least on a first glance). Better than say a Nvidia or ATI card. Since
those aren't open, we can't implement them without careful reverse engineering
(even their open source drivers don't handle 3d).

> Secondly, the
> > complexity of the card might make its emulated implementation even
> > slower than the Cirrus one used currently
> 
> 
> This is something I tend to dissagree... People aren't going to emulate a
> full pc in a slow one. The worst graphic card sold today (picked a random
> online shop here in Portugal) is a GeForce FX5200, with DirectX 9.0 and
> OpenGL 1.4 hardware accelaration. I'm sure most calls to the emulated
> graphic card can have an almost direct call.
> Cirrus card can still be emulated, but I don't see nothing wrong in having
> an emulated card that requires a 60? graphic card to work...
> 

See above. It is only plausible if the card's specs are completely open with
respect to 3d acceleration.

Even then, "directly" rerouting calls only works if the host happens to have the
same hardware. And that would probably require exclusive use of the video card.

It may be possible to route the low level calls from the emulated card to a
higher level api on the host, such as OpenGL.

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-31 10:01       ` Ricardo Almeida
@ 2005-10-31 13:39         ` Jim C. Brown
  2005-10-31 14:58           ` Paul Brook
  2005-10-31 17:01           ` Henrik Nordstrom
  0 siblings, 2 replies; 11+ messages in thread
From: Jim C. Brown @ 2005-10-31 13:39 UTC (permalink / raw)
  To: Ricardo Almeida; +Cc: qemu-devel

On Mon, Oct 31, 2005 at 10:01:45AM +0000, Ricardo Almeida wrote:
> >
> > Fast 3d and emultion does not mix that well.. the more advanced graphics
> > card you try to emulate the more complex (and also slower) the emulation
> > of that graphics card is.
> >
> 
> As I said in my previous reply, 3D calls probably don't need to be emulated.
> Just as you don't have to emulate a x86 processor if you're running in one,
> you can specify that you can only emulate some 3D card if the real hardware
> have some OpenGL driver. That way you wouldn't be emulating them, just
> redirecting the calls..,
> 
> Regards,
> Ricardo Almeida

Agreed.

One strategy that was being done is to use a custom OpenGL library (note, library
not a driver) for the qemu guest. OpenGL calls get passed to qemu directly,
which then does the 3d by calling OpenGL on the host.

Passing direct calls is doable, and takes far less of a hit. Of course there is
the cost of requiring qemu to be linked to an OpenGL library. (I suppose Mesa
is good enough for those who lack 3d cards.)

-- 
Infinite complexity begets infinite beauty.
Infinite precision begets infinite perfection.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-31 13:39         ` Jim C. Brown
@ 2005-10-31 14:58           ` Paul Brook
  2005-10-31 17:01           ` Henrik Nordstrom
  1 sibling, 0 replies; 11+ messages in thread
From: Paul Brook @ 2005-10-31 14:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Jim C. Brown

> One strategy that was being done is to use a custom OpenGL library (note,
> library not a driver) for the qemu guest. OpenGL calls get passed to qemu
> directly, which then does the 3d by calling OpenGL on the host.

There was someone implemented a prototype version of this, so it's definitely 
possible.

> Passing direct calls is doable, and takes far less of a hit. Of course
> there is the cost of requiring qemu to be linked to an OpenGL library. (I
> suppose Mesa is good enough for those who lack 3d cards.)

OpenGL is relatively easy to link against dynamically (ie. 
LoadLibrary/dlopen), so it could be a commandline option.

Paul

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] Graphic card
  2005-10-31 13:39         ` Jim C. Brown
  2005-10-31 14:58           ` Paul Brook
@ 2005-10-31 17:01           ` Henrik Nordstrom
  1 sibling, 0 replies; 11+ messages in thread
From: Henrik Nordstrom @ 2005-10-31 17:01 UTC (permalink / raw)
  To: qemu-devel

On Mon, 31 Oct 2005, Jim C. Brown wrote:

> One strategy that was being done is to use a custom OpenGL library (note, library
> not a driver) for the qemu guest. OpenGL calls get passed to qemu directly,
> which then does the 3d by calling OpenGL on the host.

This makes much more sense than asking for emulation of a 3D card.

Passing direct hardware calls from QEMU to the host graphics card is 
basically a no-option thing. It would both be technically very difficult, 
and extremely tied to a single host card model (specific model, not only 
vendor).

But providing OpenGL calabilities to the guest, mapped to OpenGL on the 
host is manageable, and not host hardware dependent.

Regards
Henrik

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2005-10-31 17:02 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-30  0:35 [Qemu-devel] Graphic card Ricardo Almeida
2005-10-30  4:43 ` Mike Swanson
2005-10-30 12:02   ` Oliver Gerlich
2005-10-30 13:42     ` Henrik Nordstrom
2005-10-31 10:01       ` Ricardo Almeida
2005-10-31 13:39         ` Jim C. Brown
2005-10-31 14:58           ` Paul Brook
2005-10-31 17:01           ` Henrik Nordstrom
2005-10-30 14:31     ` Jim C. Brown
2005-10-31  9:58   ` Ricardo Almeida
2005-10-31 13:35     ` Jim C. Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).