summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaroslav Hensl <[email protected]>2025-07-07 20:01:12 +0200
committerJaroslav Hensl <[email protected]>2025-07-07 20:01:12 +0200
commit2393d8b45dad8770ad66fe71edaf865871976965 (patch)
tree63c5dfde3881907056d5aade1fed368ed6b1009d
parentd7cdd3f9a3c7fc6071e033e6605ea6541d45d491 (diff)
using screen object every time for define screen if supported + update readme
-rw-r--r--README.md10
-rw-r--r--makefile2
-rw-r--r--vxd_svga.c22
3 files changed, 16 insertions, 18 deletions
diff --git a/README.md b/README.md
index 88f85fe..413c356 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ Driver is based on [Michal Necasek's VirtualBox driver](http://www.os2museum.com
- added access VMWare/VBox SVGA API to support real 3D acceleration from user space driver
- added API to access VRAM/FB directly
- added DirectDraw support
-- added DirectX support (in development)
+- added DirectX support
QEMU support (`-vga std`) is from [Philip Kelley driver modification](https://github.com/phkelley/boxv9x)
@@ -38,7 +38,7 @@ DirectDraw is supported, Ring-3 driver is in separated project [VMHal9x](https:/
## Direct3D support
-DirectDraw is now in development, most of D3D code is in VMHal9x, rasterization is done by Mesa9x. **D3D is not part of releases yet!**
+DirectDraw is now in development, most of D3D code is in VMHal9x, rasterization is done by Mesa9x. Current DDI is 8, this mean support up to DX9 programs and games.
## Glide support
@@ -46,10 +46,10 @@ Glide support has nothing to do with display driver. But when OpenGL is supporte
## VirtualBox
-VirtualBox is supported from version 6.1 (but 5.0 and 6.0 with some limitation works). More on [SoftGPU readme](https://github.com/JHRobotics/softgpu/#virtualbox-vm-setup-with-hw-acceleration).
+VirtualBox is supported from version 6.1 (but 5.0 and 6.0 with some limitation works). More on [SoftGPU readme](https://github.com/JHRobotics/softgpu/blob/main/vbox.md#virtualbox-vm-setup-with-hw-acceleration).
## VMware Workstation and Player
-VMware workstation is supported in current version (17.5.x). In theory, this driver can work from version 9.x, but I don't have enough resources to do complete testing of old closed non-free software. More information also on [SoftGPU readme](https://github.com/JHRobotics/softgpu/?tab=readme-ov-file#vmware-workstation-setup-with-hw-acceleration).
+VMware workstation is supported in current version (17.5.x). In theory, this driver can work from version 9.x, but I don't have enough resources to do complete testing of old closed non-free software. More information also on [SoftGPU readme](https://github.com/JHRobotics/softgpu/blob/main/vmware.md#vmware-workstation-setup-with-hw-acceleration).
## QEMU
@@ -142,7 +142,7 @@ Edit `makefile` to enable addition logging and you can read original [readdev.tx
- Complete recomended mini-VDD function in [minivdd.c](minivdd.c), stubs here and cites from original MSDN are in comments.
- ~Complete GPU10 functions (with synchronization with Mesa)~
- VirGL
-- DDI
+- ~DDI~
- VESA support
## External links
diff --git a/makefile b/makefile
index cd69b71..e897527 100644
--- a/makefile
+++ b/makefile
@@ -13,7 +13,7 @@ OBJS += &
INCS = -I$(%WATCOM)\h\win -Iddk -Ivmware
-VER_BUILD = 107
+VER_BUILD = 108
FLAGS = -DDRV_VER_BUILD=$(VER_BUILD)
diff --git a/vxd_svga.c b/vxd_svga.c
index 4c8e6bd..4faea24 100644
--- a/vxd_svga.c
+++ b/vxd_svga.c
@@ -610,16 +610,16 @@ BOOL SVGA_init_hw()
}
/* Check if screen acceleration is available */
-static BOOL SVGA_hasAccelScreen()
+static BOOL SVGA_hasAccelScreen(BOOL allow_disable)
{
- if(disable_screen_accel == 0)
+ if(!allow_disable || disable_screen_accel == 0)
{
if(SVGA_HasFIFOCap(SVGA_FIFO_CAP_SCREEN_OBJECT | SVGA_FIFO_CAP_SCREEN_OBJECT_2))
{
return TRUE;
}
}
-
+
return FALSE;
}
@@ -821,15 +821,14 @@ static void SVGA_setmode_phy(DWORD w, DWORD h, DWORD bpp)
SVGA_Flush(); /* make sure, that is really set */
/* setting screen by fifo, this method is required in VB 6.1 */
- if(SVGA_hasAccelScreen())
+ if(SVGA_hasAccelScreen(FALSE))
{
SVGA_defineScreen(w, h, bpp, 0);
-
+
/* reenable fifo */
SVGA_Enable();
-
+
SVGA_Flush();
-
/* TODO, not do this on vGPU10 */
}
SVGA_Sync();
@@ -897,7 +896,6 @@ BOOL SVGA_setmode(DWORD w, DWORD h, DWORD bpp)
}
hda->flags &= ~((DWORD)FB_SUPPORT_FLIPING);
-
hda->flags &= ~((DWORD)FB_ACCEL_VMSVGA10_ST);
/*
@@ -941,7 +939,7 @@ BOOL SVGA_setmode(DWORD w, DWORD h, DWORD bpp)
if(hda->system_surface > 0)
{
hda->flags |= FB_SUPPORT_FLIPING;
- if(SVGA_hasAccelScreen())
+ if(SVGA_hasAccelScreen(TRUE))
{
SVGA_DefineGMRFB();
}
@@ -1134,7 +1132,7 @@ BOOL FBHDA_swap(DWORD offset)
if(hda->bpp >= 8)
{
hda->surface = offset;
- if(SVGA_hasAccelScreen())
+ if(SVGA_hasAccelScreen(TRUE))
{
SVGA_DefineGMRFB();
}
@@ -1186,7 +1184,7 @@ static inline void check_dirty()
{
case 32:
{
- if(SVGA_hasAccelScreen())
+ if(SVGA_hasAccelScreen(TRUE))
{
SVGAFifoCmdBlitScreenToGMRFB *gmrblit;
DWORD cmd_offset = 0;
@@ -1372,7 +1370,7 @@ void FBHDA_access_end(DWORD flags)
{
case 32:
{
- if(SVGA_hasAccelScreen())
+ if(SVGA_hasAccelScreen(TRUE))
{
SVGAFifoCmdBlitGMRFBToScreen *gmrblit;
DWORD cmd_offset = 0;