QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Schedules and announcements about program releases.

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-15 @ 18:50

nah, it's just a new thing on windows. notice that haxm is intel only and whpx is not even one year old. mac hvf is a new thing too.
And adding virtualisation just for linux kvm would have even less users.
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby ruthan » 2019-2-16 @ 17:22

Hmm not good answers, so i assume that such solution simply sucks.. i also not understand how it is related to virtualization, i always thought about Dosbox as about classic emulator.. I dont believe that someone could/would simply change it to some virtualization based solution.
Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough HW.
User avatar
ruthan
Oldbie
 
Posts: 1094
Joined: 2013-3-07 @ 04:01
Location: Schwarz Wald-from France to Ukraine, from Denmark to Austria. Celts+German+Slavs melting pot.

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-16 @ 18:39

3dfx is already virtualised in dosbox.
you already know guilikoza's build so you know what performance to expect. Shouldn't be slower.
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby ruthan » 2019-2-17 @ 15:20

I dont thing that Gulikoza 3dfx is virtualized, or at leats dont i classic means of Hw assisted virtualization, its justbpure software emulatio and it is 2011 thing.. if there is not big progress its not big deal, its too slow.
Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough HW.
User avatar
ruthan
Oldbie
 
Posts: 1094
Joined: 2013-3-07 @ 04:01
Location: Schwarz Wald-from France to Ukraine, from Denmark to Austria. Celts+German+Slavs melting pot.

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby digger » 2019-2-17 @ 15:23

kjliew wrote:
digger wrote:By the way, I tried installing the older VMWare SVGA 2 guest driver in a Windows 98 SE installation in a VM, under both VirtualBox and QEMU+KVM, but it didn't work. Both VirtualBox and QEMU advertise compatibility with the VMWare guest video drivers, but apparently this only works with either newer versions of the driver that no longer support Win9x or the Linux guest driver, or possibly both.

VMWare SVGA support in QEMU was reversed engineered from X11 driver source code in Linux. It works for me for Win98SE/Win2k/WinXP/Debian/Ubuntu guests, but on Windows guests QEMU would spit out warning message for particular types of region update. For Windows, you want to extract the drivers from VMWare-tools-windows ISO. I used the one from 8.3.19. There is no 3D or video decoding acceleration. It only does "host" acceleration, ie. using the host CPU for drawing primitives and cursors support.


I was unable to extract the video guest driver from the VMWare Tools ISO verison 8.3.19. The setup.exe wouldn't execute on the Windows 98 VM I was running it on. And the ISO contains many CAB files and extractable EXEs, but so far, I have been unable to locate the video drivers manually. FYI, this is the ISO I tried: https://packages.vmware.com/tools/esx/4 ... 310361.iso

I also tried extracting the driver by running the setup.exe executable with the /A and /P arguments, as instructed at https://kb.vmware.com/s/article/2032184

Unfortunately, the setup.exe file in that ISO would refuse to run, even with those arguments, both inside the Win98 SE VM and under Wine. I don't know what I'm doing wrong. Perhaps the ISO is corrupted?

Using SPEEDY20 Windows GUI benchmark, the VESA VBE driver is much faster than VMWare SVGA in both the standard benchmark and the multimedia benchmark. In fact for VM, "host" acceleration matters a lot. I believe QEMU uses BOCHS dispi as its VESA VBE backend for "host" acceleration. Even the best year 2000-ish CPU/PCI graphics cannot match the speed of QEMU VESA VBE on today over 3GHz CPU and high-speed DDR4 memory.


Interesting. Have you by any chance also included Scitech Display Doctor 7.0 beta in those SPEEDY20 tests? I wonder how well that solution compares in performance to the latest VBEMP 9x driver.

By the way, I couldn't get SDD7 beta to work in Windows 98 in a QEMU VM either. I tried each of the supported graphics adapters (std, xql, even cirrus and vmware), but the driver just wouldn't switch to anything higher than standard VGA (640x480 in 16 colors). :( So far, only VBEMP 9x seems to work when running Windows 98 SE in QEMU. In VirtualBox however, both SDD7 beta and VBEMP 9x appear to work fine. In fact, both worked right away on the first try. As a matter of fact, the general performance difference between QEMU and VirtualBox is huge. Particularly the disk I/O performance is very poor in QEMU. The installation speed alone appeared to be several times faster on VitualBox. And yes, I had KVM enabled. I know that QEMU hasn't invested much in the performance of legacy IDE emulation compared to VirtualBox, the idea being that host systems will be running paravirtualized (virtio-blk) disk drivers, but those drivers aren't available for legacy operating systems. I wonder why QEMU doesn't simply copy the well-performing IDE and SATA emulation code from VirtualBox, since both code bases are GPLv2. Heck, the same goes for the sound emulation code from DOSBox and PCEmu. Just steal the best code from those projects instead of trying to reinvent the wheel. All these code bases are GPLv2 licensed!

Alternatively, I wonder why apparently no serious efforts have been made so far to write paravirtualized drivers for Win9x. Technically, it should be perfectly possible to write virtio-blk, virtio-net, QXL and vboxvideo drivers for Win9x, which would allow Win9x OSes to run much more smoothly and seemlessly under modern hypervisors. One wouldn't even have to start entirely from scratch for that. If I'm not mistaken, such open source paravirtualized drivers already exist for NT4. Since NT4 is from the same era, it shouldn't be that hard (at least for someone experienced in Windows driver development) to port the NT4 drivers to Win9x. If only I had more expertise on that field. It seems like such a fun project, but at the same time so overwhelming for someone not experienced with device driver development. :(
User avatar
digger
Member
 
Posts: 220
Joined: 2010-2-12 @ 18:15
Location: Amsterdam, the Netherlands

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-17 @ 17:34

ruthan wrote:I dont thing that Gulikoza 3dfx is virtualized, or at leats dont i classic means of Hw assisted virtualization, its justbpure software emulatio and it is 2011 thing.. if there is not big progress its not big deal, its too slow.

in dosbox you can either choose software which is done by your cpu, or hardware which is done by your gpu.
gulikoza's build uses wrapper of your choice which uses gpu.
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby kjliew » 2019-2-17 @ 18:45

digger wrote:I was unable to extract the video guest driver from the VMWare Tools ISO verison 8.3.19.

My 7-zip is able to extract the SVGA.cab file. It is not a straight forward extraction, one has to extract and rename the files. Or, you can use older VMWare Tools ISO, version 3.5.0 has straight forward extraction.

digger wrote:Have you by any chance also included Scitech Display Doctor 7.0 beta in those SPEEDY20 tests? I wonder how well that solution compares in performance to the latest VBEMP 9x driver.

I tried but I didn't remember if I could get it working. I don't like its bloat, and I don't think it will be faster than VMWare SVGA or VBEMP9x.

digger wrote:Alternatively, I wonder why apparently no serious efforts have been made so far to write paravirtualized drivers for Win9x. One wouldn't even have to start entirely from scratch for that. If I'm not mistaken, such open source paravirtualized drivers already exist for NT4. Since NT4 is from the same era...

The simple fact is because Win9x has no commercial value. And no, NT4 drivers architecture is not the same as Win9x, display, storage and NDIS miniport drivers are very different between Win9x and NT4. The paravirtualized drivers requires at least Windows 2000, I believe.

VirtualBox is not a true open source software "by heart", it open-sourced mostly the part which it leverages heavily from QEMU. Its build process is highly obfuscated. Every software has its own internal architecture. Even if they share the same GPLv2 license, it does not imply that the codes can be used as direct drop-in, especially when the initial authors were not burdened to write reusable codes. There is nothing wrong with this, smart coders are instinctively lazy :happy: What is great about GPLv2 is the concept of implementation. Most people would take the concept and re-implement it to suit the context of their software projects. For eg. gulikoza implemented 3Dfx Glide pass-through for DOSBox many years ago. I had studied his implementation thoroughly but I didn't reuse his codes for QEMU 3Dfx Glide pass-through. DOSBox and QEMU each has very different internal architecture of memory I/O handling and virtual device realization. So all I took from DOSBox was gulikoza's concept of implementation and re-implemented it for QEMU. Along the way, several improvements were made (Glide 2.1.1 and Glide3x support) and paved the way for accelerated VM with guest push model instead of DOSBox host pull model. There is no plan to support CPU virtualization for DOSBox, so there is nothing to gain for guest push model.
kjliew
Member
 
Posts: 479
Joined: 2004-1-08 @ 03:03

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-18 @ 16:36

I have noticed problems with cdrom when using dos 7.1 and haxm.
cdrom works with dos 7.1 and whpx.
cdrom works with dos 6.2 and haxm.
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-18 @ 18:33

robertmo wrote:dos with whpx
(...)
it is just the screen scrolling in text mode that kills qemu.
(...)
In norton commander use pgup/pgdn/home/end.

One more thing I noticed about it. A rather rare case.
When you use file manager and there is one more file than those you see on the screen qemu will quit even if you press pgdn as it will use scrolling in this case. So just create an empty folder and pgdn will work again.
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-19 @ 16:58

DAEMON Tools Lite mounts:
VMware .vmdk
VirtualBox .vdi
VirtualPC .vhd
------------------------------------
Hyper-V is a successor to VirtualPC
------------------------------------
Hyper-V (and WHPX) is not available on Windows Home Editions
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-19 @ 17:05

Setting lowest polling rate and reducing sensitivity helps mouse not to go crazy in dos. Though it still sometimes happens. Dos run from inside windows doesn't have this mouse problem.
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-2-19 @ 17:14

Distorted sound in Pyl is solved by setting all sound settings to max (including 3D) and using 22kH.

If you run pyl inside Win98se, sound is ok even with 44kH but till you make a save game. If you start qemu again and load you get clear sound again.
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby kjliew » 2019-2-19 @ 19:17

robertmo wrote:Setting lowest polling rate and reducing sensitivity helps mouse not to go crazy in dos. Though it still sometimes happens. Dos run from inside windows doesn't have this mouse problem.

Mouse going crazy in DOS seemed to be more likely on QEMU 3.1.0. QEMU 2.12.1 is less prone to the mouse issue, but it is slower than QEMU 3.1.0 due to lock-less synchronization for worker threads in QEMU 3.1.0.

You can also try the latest CuteMouse 2.0-branch, which uses direct hardware access for PS/2 mouse instead of BIOS access. The mouse seems to behave much better in QEMU 3.1.0 compared to CuteMouse 1.9-branch and Microsoft MOUSE 8.20a from my limited testing.
kjliew
Member
 
Posts: 479
Joined: 2004-1-08 @ 03:03

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby ruthan » 2019-2-19 @ 19:42

Cutemouse also have sensivity setting it can help, i think that default is 5, so you can lower it to 1.
Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough HW.
User avatar
ruthan
Oldbie
 
Posts: 1094
Joined: 2013-3-07 @ 04:01
Location: Schwarz Wald-from France to Ukraine, from Denmark to Austria. Celts+German+Slavs melting pot.

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby NightSprinter » 2019-4-23 @ 21:50

Hmm, I'm not able to compile this, which saddens me because I wanna use it for emulating older DOS/Windows and OSX with 3Dfx stuff, but I get this when compiling. Even if I only use i386-softmmu as the target, I get:

Code: Select all
/usr/bin/ld: hw/3dfx/glide2x_impl.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/bin/ld: /usr/lib/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:199: qemu-system-i386] Error 1
make: *** [Makefile:483: subdir-i386-softmmu] Error 2


Am I doing something wrong?
NightSprinter
Member
 
Posts: 102
Joined: 2006-12-03 @ 04:59

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby robertmo » 2019-4-23 @ 22:57

qemu-4.0.0 has just been released. What version have you tried?
User avatar
robertmo
l33t
 
Posts: 4757
Joined: 2003-6-18 @ 10:35

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby NightSprinter » 2019-4-24 @ 16:02

The previous official release, which is 3.1.0
NightSprinter
Member
 
Posts: 102
Joined: 2006-12-03 @ 04:59

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby kjliew » 2019-4-25 @ 00:37

The patch currently does not merge cleanly on 3.1.0. There is one configure.rej which you will have to do it by hand. Version 2.12.1 should merge cleanly. I have no experience on MacOS, this is from my Linux experience that the missing symbols are required for libdl.so for dlopen/dlclose. You may want to add "-ldl" for MacOS in the configure script for MacOS using the Linux case as reference.

I believe OSX is "Darwin" by build name. So, please try the following patch.
Code: Select all
$ diff -u ../orig/qemu-3.1.0/configure ./configure
--- ../orig/qemu-3.1.0/configure        2018-12-11 09:44:34.000000000 -0800
+++ ./configure 2019-04-24 19:21:17.658364483 -0700
@@ -843,6 +843,8 @@
   # won't work when we're compiling with gcc as a C compiler.
   QEMU_CFLAGS="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
   HOST_VARIANT_DIR="darwin"
+# For 3Dfx Glide pass-through ##
+  LIBS="-ldl $LIBS"
   supported_os="yes"
 ;;
 SunOS)

Last edited by kjliew on 2019-4-25 @ 02:23, edited 1 time in total.
kjliew
Member
 
Posts: 479
Joined: 2004-1-08 @ 03:03

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby kjliew » 2019-4-25 @ 00:39

Will check out QEMU 4.0.0 and refresh the patch if required. I am a bit busy now and have no time for hobbyist stuffs.

Update: QEMU 4.0.0 has removed SDL1.2 completely, so in addition to the configure.rej merge failure, patch will ask for missing ui/sdl.c file to patch. So all we need to do is create a dummy, empty ui/sdl.c and let the patch proceed with failure, then delete ui/sdl.c after the patch is done. Everything else just works. MinGW-w64-x86_64 compile had quite a number of warnings, but the simulator ran normally. Tested several Glide2 SDK tests and some DOS Glide games, all were good so far.
kjliew
Member
 
Posts: 479
Joined: 2004-1-08 @ 03:03

Re: QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Postby hyoenmadan » 2019-5-14 @ 00:48

digger wrote:Alternatively, I wonder why apparently no serious efforts have been made so far to write paravirtualized drivers for Win9x. Technically, it should be perfectly possible to write virtio-blk, virtio-net, QXL and vboxvideo drivers for Win9x, which would allow Win9x OSes to run much more smoothly and seemlessly under modern hypervisors. One wouldn't even have to start entirely from scratch for that. If I'm not mistaken, such open source paravirtualized drivers already exist for NT4. Since NT4 is from the same era, it shouldn't be that hard (at least for someone experienced in Windows driver development) to port the NT4 drivers to Win9x. If only I had more expertise on that field. It seems like such a fun project, but at the same time so overwhelming for someone not experienced with device driver development. :(


For video Win9x os-line uses VxD drivers for Accelerated AGP bus, the display driver itself and the DDraw interface, plus a DOSMGR grabber driver for DOS boxes. VxDs for these things are written in ASM, you can't use C on them. No opensource project has been able to ever code properly full display drivers for Win9x (Accelerated GDI, DDraw and the DOS grabber stuff)... Heck, even the VBEMP 9x port you mentioned never past the beta stage... It still is beta. As writting Display code for 9x is as difficult, no VM provider had any incentive to write drivers for 9x video interface. VMware long time lost interest and VPC used S3 made ones.
hyoenmadan
Member
 
Posts: 163
Joined: 2015-5-15 @ 16:44

PreviousNext

Return to Release Announcements

Who is online

Users browsing this forum: No registered users and 3 guests