qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] GSoC 2011: S3 Trio, AHCI


From: Natalia Portillo
Subject: Re: [Qemu-devel] GSoC 2011: S3 Trio, AHCI
Date: Thu, 7 Apr 2011 11:57:42 +0100

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi Roland,

El 05/04/2011, a las 14:36, Roland Elek escribió:

> Dear Qemu developers,
> 
> First, I'd like to reintroduce myself, as my university and official duties 
> prevented me from being active in the community since last year. I am Roland 
> Elek, a student from Hungary, and a successful student participant of Google 
> Summer of Code 2010. This year, I would like to participate again. I know I'm 
> a bit late, but I'm still hoping to get things arranged before the deadline.
> 
> Last year, I worked on AHCI emulation with Alex as my mentor. Do you think a 
> proper summer project could be proposed from what is still missing? If so, 
> can I kindly ask someone to give me some pointers to what the project needs 
> the most, and where I should look first for things to include in my proposal? 
> Also, if the idea is feasible, would there be someone who could be my mentor?

You should ask Alex himself directly.

> Last year, I was also interested in working on S3 Trio emulation. This year, 
> the same idea is on the ideas list. The hardware is pretty thoroughly 
> documented through source code and textual documentation, and I'm already 
> familiar with adding PCI devices to Qemu, so I do see a rough outline of how 
> I would implement it.
> 
> However, last year, Paul Brook commented [1] that he wasn't convinced about 
> the usefulness of emulating an S3 Trio or Virge card, because of performance 
> reasons. He suggested that accelerating the 2D engine would be tricky because 
> the framebuffer is exposed to the guest. This might be just me not fully 
> understanding his point, but isn't this also the case with the Cirrus Logic 
> GD5446 card?

The 2D accelenration engine of that cards were merely an implementation of 
Windows 3.1 GDI calls, a bitblt, draw a circle, so on, over a framebuffer.
They are pretty simple and easily converted to GDI+, SDL or Cocoa, whatever 
QEMU is needing in the host to draw the framebuffer.

The idea of emulating a S3 Trio however is not to give 2D acceleration to 
guests but to have a hardware with wider support from guests.
The S3 Trio is supported by almost all known x86 guests and a good couple of 
non-x86 ones (including BeOS, Windows NT, NeXTStep).

The GDI accelerated functions were used only by Windows and only in some 
resolutions (640x480 at 16 colors mostly). The card's VESA implementation was 
2.0 (without 2D acceleration) and buggy enough to have made the manufacturer 
itself include a software implementation of VESA 3.0.

Anyway just digging again on Google shows me that the trio also accelerated YUV 
to RGB conversion (easily done, I have it in my webcam emulation) and that it 
is fully emulated by DOSBox (so their source can be used as a start) and of 
course, like past year, for VirtualPC (so emulation is possible and performance 
is not bad).

> He also suggested paravirtualization for 3D acceleration. Do you think it 
> would make a good summer project?

For this you would need to implement some kind of MPI between guest and host 
and trap the WGL/GLX/AGL calls and pass them as host WGL/GLX/AGL calls.
It is feasible but you should provide your own drivers for the guests because 
emulating the registers of a real 3D call will be simply performance-nulling.

Whatever you think is best for your abilities, apply for it on GSoC webpage.

However personally there are already two students applying for S3 and I would 
prefer everyone to have a choice so I recommend you to apply for the AHCI 
finishing or 3D virtualization, as you see fit.

Regards,
Natalia Portillo

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org

iF4EAREIAAYFAk2dmKcACgkQv/wfOsykIRTxTQD/QM1nKJGpLMRuCokKaoVBUYmK
94xs4L1rcbIXsxYoifwBALLZtuWZI29eP4Nz/DE55E5uX4AV3RHrcWw/ngvOPhD0
=46Q8
-----END PGP SIGNATURE-----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]