[Mesa-dev] [PATCH 5/5] st/nine: Change a few advertised caps

Axel Davy davyaxel0 at gmail.com
Thu Mar 7 22:23:57 UTC 2019


Most hw on the native platform advertise these
caps this way.

D3DCAPS_READ_SCANLINE: We don't really have hardware
support for that, but many games don't even check the
flag, and expect GetRasterStatus to work, which is
why we emulated it with a timer (like wine). So we
may as well advertise the cap.
D3DCURSORCAPS_LOWRES: I don't know what is the status
of this on X11, but I don't know of any dx9 game
running at height < 400 either.
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE: The cap should
correspond to what the current generation of hw is doing.

Signed-off-by: Axel Davy <davyaxel0 at gmail.com>
---
 include/D3D9/d3d9caps.h                    | 3 +++
 src/gallium/state_trackers/nine/adapter9.c | 6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/include/D3D9/d3d9caps.h b/include/D3D9/d3d9caps.h
index 0cce5d3f689..70f9919c53d 100644
--- a/include/D3D9/d3d9caps.h
+++ b/include/D3D9/d3d9caps.h
@@ -26,6 +26,9 @@
 #include "d3d9types.h"
 
 /* Caps flags */
+#define D3DCAPS_OVERLAY       0x00000800
+#define D3DCAPS_READ_SCANLINE 0x00020000
+
 #define D3DCAPS2_FULLSCREENGAMMA   0x00020000
 #define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000
 #define D3DCAPS2_RESERVED          0x02000000
diff --git a/src/gallium/state_trackers/nine/adapter9.c b/src/gallium/state_trackers/nine/adapter9.c
index 94a5d8d2aa3..3aa95b93b2f 100644
--- a/src/gallium/state_trackers/nine/adapter9.c
+++ b/src/gallium/state_trackers/nine/adapter9.c
@@ -545,7 +545,7 @@ NineAdapter9_GetDeviceCaps( struct NineAdapter9 *This,
 
     pCaps->AdapterOrdinal = 0;
 
-    pCaps->Caps = 0;
+    pCaps->Caps = D3DCAPS_READ_SCANLINE;
 
     pCaps->Caps2 = /* D3DCAPS2_CANMANAGERESOURCE | */
                 /* D3DCAPS2_CANSHARERESOURCE | */
@@ -568,7 +568,7 @@ NineAdapter9_GetDeviceCaps( struct NineAdapter9 *This,
                                    D3DPRESENT_INTERVAL_THREE |
                                    D3DPRESENT_INTERVAL_FOUR |
                                    D3DPRESENT_INTERVAL_IMMEDIATE;
-    pCaps->CursorCaps = D3DCURSORCAPS_COLOR | D3DCURSORCAPS_LOWRES;
+    pCaps->CursorCaps = D3DCURSORCAPS_COLOR /* | D3DCURSORCAPS_LOWRES*/;
 
     pCaps->DevCaps = D3DDEVCAPS_CANBLTSYSTONONLOCAL |
                      D3DDEVCAPS_CANRENDERAFTERFLIP |
@@ -678,7 +678,7 @@ NineAdapter9_GetDeviceCaps( struct NineAdapter9 *This,
         D3DPTEXTURECAPS_ALPHAPALETTE |
         D3DPTEXTURECAPS_PERSPECTIVE |
         D3DPTEXTURECAPS_PROJECTED |
-        /*D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE |*/
+        D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE |
         D3DPTEXTURECAPS_CUBEMAP |
         D3DPTEXTURECAPS_VOLUMEMAP |
         D3DNPIPECAP(NPOT_TEXTURES, D3DPTEXTURECAPS_POW2) |
-- 
2.21.0



More information about the mesa-dev mailing list