Skip to content

Commit 9637473

Browse files
liam-middlebrookivyl
authored andcommitted
win32u: Move D3DKMTQueryAdapterInfo into gdi_dc_funcs
Signed-off-by: Liam Middlebrook <lmiddlebrook@nvidia.com> Note: This commit is specifically targeted towards ValveSoftware/wine experimental_9.0 branch. Upstream wine contains commits which already implement this, but are part of a larger series of changes inter-twined with WoW64 and unification of GDI backends. Link: #259
1 parent 5207004 commit 9637473

File tree

10 files changed

+40
-3
lines changed

10 files changed

+40
-3
lines changed

dlls/win32u/dibdrv/dc.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,7 @@ const struct gdi_dc_funcs dib_driver =
710710
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
711711
NULL, /* pD3DKMTCloseAdapter */
712712
NULL, /* pD3DKMTOpenAdapterFromLuid */
713+
NULL, /* pD3DKMTQueryAdapterInfo */
713714
NULL, /* pD3DKMTQueryVideoMemoryInfo */
714715
NULL, /* pD3DKMTSetVidPnSourceOwner */
715716
GDI_PRIORITY_DIB_DRV /* priority */
@@ -1271,6 +1272,7 @@ static const struct gdi_dc_funcs window_driver =
12711272
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
12721273
NULL, /* pD3DKMTCloseAdapter */
12731274
NULL, /* pD3DKMTOpenAdapterFromLuid */
1275+
NULL, /* pD3DKMTQueryAdapterInfo */
12741276
NULL, /* pD3DKMTQueryVideoMemoryInfo */
12751277
NULL, /* pD3DKMTSetVidPnSourceOwner */
12761278
GDI_PRIORITY_DIB_DRV + 10 /* priority */

dlls/win32u/driver.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,11 @@ static NTSTATUS nulldrv_D3DKMTOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID *d
554554
return STATUS_PROCEDURE_NOT_FOUND;
555555
}
556556

557+
static NTSTATUS nulldrv_D3DKMTQueryAdapterInfo( D3DKMT_QUERYADAPTERINFO *desc )
558+
{
559+
return STATUS_PROCEDURE_NOT_FOUND;
560+
}
561+
557562
static NTSTATUS nulldrv_D3DKMTQueryVideoMemoryInfo( D3DKMT_QUERYVIDEOMEMORYINFO *desc )
558563
{
559564
return STATUS_PROCEDURE_NOT_FOUND;
@@ -658,6 +663,7 @@ const struct gdi_dc_funcs null_driver =
658663
nulldrv_D3DKMTCheckVidPnExclusiveOwnership, /* pD3DKMTCheckVidPnExclusiveOwnership */
659664
nulldrv_D3DKMTCloseAdapter, /* pD3DKMTCloseAdapter */
660665
nulldrv_D3DKMTOpenAdapterFromLuid, /* pD3DKMTOpenAdapterFromLuid */
666+
nulldrv_D3DKMTQueryAdapterInfo, /* pD3DKMTQueryAdapterInfo */
661667
nulldrv_D3DKMTQueryVideoMemoryInfo, /* pD3DKMTQueryVideoMemoryInfo */
662668
nulldrv_D3DKMTSetVidPnSourceOwner, /* pD3DKMTSetVidPnSourceOwner */
663669

@@ -1637,11 +1643,14 @@ NTSTATUS WINAPI NtGdiDdDDIDestroyDevice( const D3DKMT_DESTROYDEVICE *desc )
16371643
*/
16381644
NTSTATUS WINAPI NtGdiDdDDIQueryAdapterInfo( D3DKMT_QUERYADAPTERINFO *desc )
16391645
{
1640-
if (!desc)
1646+
TRACE("(%p)\n", desc);
1647+
1648+
if (!desc || !desc->hAdapter)
16411649
return STATUS_INVALID_PARAMETER;
16421650

1643-
FIXME("desc %p, type %d stub\n", desc, desc->Type);
1644-
return STATUS_NOT_IMPLEMENTED;
1651+
if (!get_display_driver()->pD3DKMTQueryAdapterInfo)
1652+
return STATUS_PROCEDURE_NOT_FOUND;
1653+
return get_display_driver()->pD3DKMTQueryAdapterInfo(desc);
16451654
}
16461655

16471656
/******************************************************************************

dlls/win32u/emfdrv.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
522522
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
523523
NULL, /* pD3DKMTCloseAdapter */
524524
NULL, /* pD3DKMTOpenAdapterFromLuid */
525+
NULL, /* pD3DKMTQueryAdapterInfo */
525526
NULL, /* pD3DKMTQueryVideoMemoryInfo */
526527
NULL, /* pD3DKMTSetVidPnSourceOwner */
527528
GDI_PRIORITY_GRAPHICS_DRV /* priority */

dlls/win32u/font.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4814,6 +4814,7 @@ const struct gdi_dc_funcs font_driver =
48144814
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
48154815
NULL, /* pD3DKMTCloseAdapter */
48164816
NULL, /* pD3DKMTOpenAdapterFromLuid */
4817+
NULL, /* pD3DKMTQueryAdapterInfo */
48174818
NULL, /* pD3DKMTQueryVideoMemoryInfo */
48184819
NULL, /* pD3DKMTSetVidPnSourceOwner */
48194820
GDI_PRIORITY_FONT_DRV /* priority */

dlls/win32u/path.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2121,6 +2121,7 @@ const struct gdi_dc_funcs path_driver =
21212121
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
21222122
NULL, /* pD3DKMTCloseAdapter */
21232123
NULL, /* pD3DKMTOpenAdapterFromLuid */
2124+
NULL, /* pD3DKMTQueryAdapterInfo */
21242125
NULL, /* pD3DKMTQueryVideoMemoryInfo */
21252126
NULL, /* pD3DKMTSetVidPnSourceOwner */
21262127
GDI_PRIORITY_PATH_DRV /* priority */

dlls/winex11.drv/init.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ static const struct user_driver_funcs x11drv_funcs =
389389
.dc_funcs.pD3DKMTCheckVidPnExclusiveOwnership = X11DRV_D3DKMTCheckVidPnExclusiveOwnership,
390390
.dc_funcs.pD3DKMTCloseAdapter = X11DRV_D3DKMTCloseAdapter,
391391
.dc_funcs.pD3DKMTOpenAdapterFromLuid = X11DRV_D3DKMTOpenAdapterFromLuid,
392+
.dc_funcs.pD3DKMTQueryAdapterInfo = X11DRV_D3DKMTQueryAdapterInfo,
392393
.dc_funcs.pD3DKMTQueryVideoMemoryInfo = X11DRV_D3DKMTQueryVideoMemoryInfo,
393394
.dc_funcs.pD3DKMTSetVidPnSourceOwner = X11DRV_D3DKMTSetVidPnSourceOwner,
394395
.dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,

dlls/winex11.drv/x11drv.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ extern BOOL X11DRV_Chord( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
163163
extern NTSTATUS X11DRV_D3DKMTCheckVidPnExclusiveOwnership( const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *desc );
164164
extern NTSTATUS X11DRV_D3DKMTCloseAdapter( const D3DKMT_CLOSEADAPTER *desc );
165165
extern NTSTATUS X11DRV_D3DKMTOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID *desc );
166+
extern NTSTATUS X11DRV_D3DKMTQueryAdapterInfo( D3DKMT_QUERYADAPTERINFO *desc );
166167
extern NTSTATUS X11DRV_D3DKMTQueryVideoMemoryInfo( D3DKMT_QUERYVIDEOMEMORYINFO *desc );
167168
extern NTSTATUS X11DRV_D3DKMTSetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER *desc );
168169
extern BOOL X11DRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom );

dlls/winex11.drv/x11drv_main.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,6 +1399,25 @@ NTSTATUS X11DRV_D3DKMTOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID *desc )
13991399
return status;
14001400
}
14011401

1402+
NTSTATUS X11DRV_D3DKMTQueryAdapterInfo( D3DKMT_QUERYADAPTERINFO *desc )
1403+
{
1404+
NTSTATUS status = STATUS_INVALID_PARAMETER;
1405+
struct x11_d3dkmt_adapter *adapter;
1406+
1407+
pthread_mutex_lock(&d3dkmt_mutex);
1408+
LIST_FOR_EACH_ENTRY(adapter, &x11_d3dkmt_adapters, struct x11_d3dkmt_adapter, entry)
1409+
{
1410+
if (adapter->handle != desc->hAdapter)
1411+
continue;
1412+
1413+
FIXME("desc %p, type %d stub\n", desc, desc->Type);
1414+
status = STATUS_NOT_IMPLEMENTED;
1415+
break;
1416+
}
1417+
pthread_mutex_unlock(&d3dkmt_mutex);
1418+
return status;
1419+
}
1420+
14021421
NTSTATUS X11DRV_D3DKMTQueryVideoMemoryInfo( D3DKMT_QUERYVIDEOMEMORYINFO *desc )
14031422
{
14041423
const struct vulkan_funcs *vulkan_funcs = get_vulkan_driver(WINE_VULKAN_DRIVER_VERSION);

dlls/winex11.drv/xrender.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2434,6 +2434,7 @@ static const struct gdi_dc_funcs xrender_funcs =
24342434
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
24352435
NULL, /* pD3DKMTCloseAdapter */
24362436
NULL, /* pD3DKMTOpenAdapterFromLuid */
2437+
NULL, /* pD3DKMTQueryAdapterInfo */
24372438
NULL, /* pD3DKMTQueryVideoMemoryInfo */
24382439
NULL, /* pD3DKMTSetVidPnSourceOwner */
24392440
GDI_PRIORITY_GRAPHICS_DRV + 10 /* priority */

include/wine/gdi_driver.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ struct gdi_dc_funcs
169169
NTSTATUS (*pD3DKMTCheckVidPnExclusiveOwnership)(const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *);
170170
NTSTATUS (*pD3DKMTCloseAdapter)(const D3DKMT_CLOSEADAPTER *);
171171
NTSTATUS (*pD3DKMTOpenAdapterFromLuid)(D3DKMT_OPENADAPTERFROMLUID *);
172+
NTSTATUS (*pD3DKMTQueryAdapterInfo)(D3DKMT_QUERYADAPTERINFO *);
172173
NTSTATUS (*pD3DKMTQueryVideoMemoryInfo)(D3DKMT_QUERYVIDEOMEMORYINFO *);
173174
NTSTATUS (*pD3DKMTSetVidPnSourceOwner)(const D3DKMT_SETVIDPNSOURCEOWNER *);
174175

0 commit comments

Comments
 (0)