Skip to content

Commit 64c8687

Browse files
committed
new release
1 parent 607adb5 commit 64c8687

19 files changed

Lines changed: 318 additions & 41 deletions

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ Not all renderers supporting all application/games, performance expectation is i
4747
| softpipe | - ||||||| 3.3 ||||| 1-3 |
4848
| llvmlipe (128 bits) | SSE ||||||| 3.3 ||||| 10-15 |
4949
| llvmlipe (256 bits) | SSE, AVX ||||||| 3.3 ||||| 12-20 |
50-
| SVGA3D | SVGA-II (gen9) ||||||| 2.1 ||||| 30-60 |
51-
| SVGA3D | SVGA-II (gen10)||||||| 4.1 ||||| 35-80 |
50+
| SVGA3D | SVGA-II (gen9) ||||||| 2.1 ||||| 30-100 |
51+
| SVGA3D | SVGA-II (gen10)||||||| 3.3 ||||| 30-80 |
5252
| qemu-3dfx | [qemu-3dfx](https://github.com/kjliew/qemu-3dfx) ||||||| native ||| ✔ * | ✔ * | native/2 * |
5353

5454
(*) Note for qemu-3dfx: performance depends on CPU emulation - you can reach about 1/2 of native GPU performance when using KVM acceleration on x86-64 host, about 1/5 when using Hyper-V, and about from 1/100 when is using accelerated emulation and about 1/1000 when using full emulation. DOS Glide and *native* Glide wrapper isn't part of SoftGPU. You have to compile it from source or you can [donate qemu-3dfx author](https://github.com/kjliew/qemu-3dfx#donation).
@@ -86,6 +86,10 @@ General instruction for most machines:
8686
## Update
8787
If you have an older version of SoftGPU installed, you can update without any problem: insert the CD with the latest version into the VM and click install. The installer will take care of all the necessary modifications, only to increase compatibility it is necessary to do some steps manually:
8888

89+
**Update to version v0.5.2024.27**
90+
91+
SVGA3D (especially vGPU10) is very memory consuming. Please consider to apply additional patches and set RAM to 1024 MB. Driver itself can cache memory allocation and it is faster when you have 1 GB RAM and more.
92+
8993
**Update to version v0.5.2024.24**
9094
- *VirtualBox 7.0.x*: it is possible to turn on vGPU10:
9195
```
@@ -163,7 +167,7 @@ There are 2 variant of graphical HW acceleration in VirtualBox 7:
163167

164168
**vGPU9** (9 from DirectX 9) is older variant used usually to accelerate Windows Vista/7 aero and some desktop application. On host system is drawing by DirectX 9 (Windows) or OpenGL (Linux/Mac OS). Problem is very low pixel/vertex shader support, so DirectX 8 and DirectX 9 games can't use shaders. Keep on mind that DirectX in SoftGPU is emulated by Wine, so some non-shaders applications can have problems, because some behaviour is emulated by shaders.
165169

166-
**vGPU10** (10 from Windows 10) is newer variant and is intended for acceleration of DirectX 12 (and DirectX 12 can emulate all older DirectX API). On host system is drawing by DirectX 12 (on Linux is translated by **dxvk** to Vulkan). Main problem is a relatively large amount of bugs ([see summary here](https://www.virtualbox.org/ticket/21515)). vGPU10 don't work well with SoftGPU 0.4.x releases, but SoftGPU 0.5.x solved most of problem and now this is preferred variant.
170+
**vGPU10** (10 from Windows 10) is newer variant and is intended for acceleration of DirectX 12 (and DirectX 12 can emulate all older DirectX API). On host system is drawing by DirectX 12 (on Linux is translated by **dxvk** to Vulkan). Main problem is a relatively large amount of bugs ([see summary here](https://www.virtualbox.org/ticket/21515)). vGPU10 don't work well with SoftGPU 0.4.x releases, but SoftGPU 0.5.x solved most of problems ~and now this is preferred variant.~ vGPU9 is usually faster in DX6-8 application and width Quake 2 engine games (paradoxically vGPU10 is faster width Quake 3 engine games).
167171

168172
Switch between vGPU9 and vGPU10:
169173

@@ -182,7 +186,7 @@ VBoxManage setextradata "My Windows 98" "VBoxInternal/Devices/vga/0/Config/VMSVG
182186
VBoxManage setextradata "My Windows 98" "VBoxInternal/Devices/vga/0/Config/VMSVGA10" ""
183187
```
184188

185-
[^2]: OK, and there some bugs, so VirtualBox is using vGPU10 event on DX10 only GPUs, so result is usually nice black screen...
189+
[^2]: OK, and there some bugs, so VirtualBox is using vGPU10 even on DX10 only GPUs, so result is usually nice black screen...
186190

187191

188192
### VMware Workstation setup with HW acceleration
@@ -339,7 +343,7 @@ Binaries in SoftGPU allows to override build signature registry keys. To check t
339343
Currently there are known these limitations:
340344

341345
### Vertex Shaders
342-
**Update for 0.5.x versions**: Vertex Shaders works on vGPUv10 (VirtualBox 7) and for qemu-3dfx. For vGPU9 (VMware, VirtualBox 6.1) are DirectX shaders disabled, so most of applications can use shader alternative (most of DX8 games and lost of DX9).
346+
**Update for 0.5.x versions**: Vertex Shaders works on vGPUv10 (VirtualBox 7) and for qemu-3dfx. For vGPU9 (VMware, VirtualBox 6.1) are DirectX shaders disabled, so most of applications can use shader alternative (most of DX8 games lots of DX9).
343347

344348
### Windows 95 support
345349
Windows 95 support is limited - SoftGPU works, but there lots of extra bugs will appear and if you haven't any special reasons for using Windows 95 use recommended Windows 98 Second edition instead.

actions.c

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,8 +604,48 @@ void backup_sysfiles()
604604
}
605605
}
606606
}
607+
}
608+
609+
BOOL voodoo_copy(HWND hwnd)
610+
{
611+
(void)hwnd;
612+
613+
char srcpath[MAX_PATH];
614+
char dstpath[MAX_PATH];
615+
const char *drv_voodoo = iniValue("[softgpu]", "voodoo2path");
616+
const char *f;
617+
int i;
618+
619+
const char *voodoo_files[] = {
620+
"\\3dfxSpl2.dll",
621+
"\\3dfxSpl3.dll",
622+
"\\3dfxVGL.dll",
623+
NULL
624+
};
625+
626+
if(drv_voodoo == NULL)
627+
{
628+
REPORT("Failed to get source path to Voodoo driver");
629+
return FALSE;
630+
}
607631

632+
strcpy(dstpath, install_path);
633+
strcat(dstpath, "\\3dfx");
634+
mkdir_recrusive(dstpath);
635+
636+
for(i = 0; (f = voodoo_files[i]) != NULL; i++)
637+
{
638+
strcpy(dstpath, install_path);
639+
strcat(dstpath, "\\3dfx");
640+
strcat(dstpath, f);
641+
642+
strcpy(srcpath, drv_voodoo);
643+
strcat(srcpath, f);
644+
645+
CopyFileA(srcpath, dstpath, FALSE);
646+
}
608647

648+
return TRUE;
609649
}
610650

611651
DWORD WINAPI filescopy_proc(LPVOID lpParameter)
@@ -935,7 +975,24 @@ BOOL setLineSyscopy(char *buf, size_t bufs)
935975
return TRUE;
936976
}
937977

938-
978+
BOOL setLine3DFX(char *buf, size_t bufs)
979+
{
980+
(void)bufs;
981+
982+
if(install_settings.install_3dfx)
983+
{
984+
int line_start = sizeof(";3dfx:")-1;
985+
int line_len = strlen(buf);
986+
int i;
987+
988+
for(i = 0; i < line_len - line_start + 1; i++)
989+
{
990+
buf[i] = buf[i + line_start];
991+
}
992+
}
993+
994+
return TRUE;
995+
}
939996

940997
linerRule_t infFixRules[] = {
941998
{"CopyFiles=VBox.Copy,Dx.Copy,DX.CopyBackup,Voodoo.Copy", TRUE, TRUE, setLineVbox},
@@ -951,6 +1008,7 @@ linerRule_t infFixRules[] = {
9511008
{"HKLM,Software\\VMWSVGA,VRAMLimit,,128", TRUE, TRUE, setLimitVRAM},
9521009
{";mefix:", FALSE, TRUE, setLineMeFix},
9531010
{";syscopy:", FALSE, TRUE, setLineSyscopy},
1011+
{";3dfx:", FALSE, TRUE, setLine3DFX},
9541012
{NULL, FALSE, FALSE, NULL}
9551013
};
9561014

actions.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ BOOL setup_end(HWND hwnd);
6161
BOOL driver_install(HWND hwnd);
6262
void setInstallPath(HWND input);
6363
void setInstallSrc(const char *path);
64+
BOOL voodoo_copy(HWND hwnd);
6465

6566
BOOL gl95_start(HWND hwnd);
6667

@@ -87,6 +88,7 @@ typedef struct _install_settings_t
8788
BOOL has_sys_ddraw;
8889
BOOL has_sys_d3d8;
8990
BOOL has_sys_d3d9;
91+
BOOL install_3dfx;
9092
} install_settings_t;
9193

9294
extern install_settings_t install_settings;

changelog.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
0.5.2024.27
2+
! Wine works on Windows 95
3+
! OpenGlide works with MiniGL wrappers
4+
- Driver: VIDEOPARAMETERS support
5+
- SVGA/Mesa: added GMR cache (require 1024 MB RAM)
6+
- Wine: fixed creating shader object (even if no shader support)
7+
- Wine: better restore screen after game/app quit
8+
- OpenGlide: disabled fog (and problems with it)
9+
- OpenGlide: restore screen after quit
10+
- OpenGlide: SSE and MMX optimized format conversion
11+
- Increased compatibility list
12+
113
0.5.2024.24
214
! fixed the most of mouse cursor bugs
315
! limited RAM memory usage
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ REGEDIT4
33
[HKEY_LOCAL_MACHINE\Software\Mesa3D\global]
44
"SVGA_DMA_NEED_REREAD"="1"
55
"SVGA_BLIT_SURF_TO_SCREEN"="1"
6+
"SVGA_CLEAR_DX_FLAGS"="1"
67

7-
[HKEY_LOCAL_MACHINE\Software\SVGA]
8-
"hwcursor"=dword:00000000
9-
"rgb565bug"=dword:00000001
8+
[HKEY_LOCAL_MACHINE\Software\VMWSVGA]
9+
"RGB565bug"=dword:00000000

extra/vbox-optimize-7.0.16.reg

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
REGEDIT4
2+
3+
[HKEY_LOCAL_MACHINE\Software\Mesa3D\global]
4+
"SVGA_DMA_NEED_REREAD"="1"
5+
"SVGA_BLIT_SURF_TO_SCREEN"="1"
6+
"SVGA_CLEAR_DX_FLAGS"="0"
7+
8+
[HKEY_LOCAL_MACHINE\Software\VMWSVGA]
9+
"RGB565bug"=dword:00000000

extra/vbox-optimize-7.0.8.reg

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
REGEDIT4
2+
3+
[HKEY_LOCAL_MACHINE\Software\Mesa3D\global]
4+
"SVGA_DMA_NEED_REREAD"="1"
5+
"SVGA_BLIT_SURF_TO_SCREEN"="1"
6+
"SVGA_CLEAR_DX_FLAGS"="1"
7+
8+
[HKEY_LOCAL_MACHINE\Software\VMWSVGA]
9+
"RGB565bug"=dword:00000001

extra/vmware-optimize.reg

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ REGEDIT4
33
[HKEY_LOCAL_MACHINE\Software\Mesa3D\global]
44
"SVGA_DMA_NEED_REREAD"="0"
55
"SVGA_BLIT_SURF_TO_SCREEN"="0"
6+
"SVGA_CLEAR_DX_FLAGS"="0"
67

7-
[HKEY_LOCAL_MACHINE\Software\SVGA]
8-
"hwcursor"=dword:00000001
9-
"rgb565bug"=dword:00000000
8+
[HKEY_LOCAL_MACHINE\Software\VMWSVGA]
9+
"RGB565bug"=dword:00000000

extra/wine-disable-shaders.reg

Lines changed: 0 additions & 4 deletions
This file was deleted.

extra/wine-system-dd-dx7.reg

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)