Author: greatlrd
Date: Thu May 1 07:08:02 2008
New Revision: 33210
URL: http://svn.reactos.org/svn/reactos?rev=33210&view=rev
Log:
add regkey HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI\Timeout for dxg.sys it is the second timeout value for a surface lock see url for more informations http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentr… thx irc:stefan100 for the url
remove one hack in intEnableReactXDriver thx to this info.
Modified:
trunk/reactos/boot/bootdata/hivesys.inf
trunk/reactos/include/reactos/drivers/directx/directxint.h
trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c
Modified: trunk/reactos/boot/bootdata/hivesys.inf
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivesys.inf?…
==============================================================================
--- trunk/reactos/boot/bootdata/hivesys.inf [iso-8859-1] (original)
+++ trunk/reactos/boot/bootdata/hivesys.inf [iso-8859-1] Thu May 1 07:08:02 2008
@@ -457,6 +457,9 @@
"PlugPlay", \
"Extended Base"
+; Set the timeout for directx/ReactX graphic surface lock see _EDD_DIRECTDRAW_GLOBAL struct for more info
+HKLM,"SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI","Timeout",0x00010001,0x00000007
+
; Group order, the first DWORD is the count of entries,
; the following dwords are the tag entries for the load order.
HKLM,"SYSTEM\CurrentControlSet\Control\GroupOrderList","Video Save", 0x00000001, \
Modified: trunk/reactos/include/reactos/drivers/directx/directxint.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/drivers/di…
==============================================================================
--- trunk/reactos/include/reactos/drivers/directx/directxint.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/drivers/directx/directxint.h [iso-8859-1] Thu May 1 07:08:02 2008
@@ -106,13 +106,13 @@
typedef struct _EDD_DIRECTDRAW_GLOBAL
{
-/* 0x000 */ PVOID dhpdev;
+/* 0x000 */ PVOID dhpdev; // 0x000 <-- verified to match Windows XP, dhpdev, the drv hPDev -->
/* 0x004 */ DWORD dwReserved1;
/* 0x008 */ DWORD dwReserved2;
/* 0x00C */ ULONG unk_000c[3];
/* 0x018 */ LONG cDriverReferences;
/* 0x01C */ ULONG unk_01c;
-/* 0x020 */ DWORD dwCallbackFlags; /* <-- verified to match Windows XP, dwCallbackFlags
+/* 0x020 */ DWORD dwCallbackFlags; /* 0x020 <-- verified to match Windows XP, dwCallbackFlags
Flags value
0x0002 = ddVideoPortCallback and GUID_VideoPortCaps
0x0004 = GUID_ColorControlCallbacks
@@ -125,7 +125,13 @@
/* 0x024 */ ULONG unk_024;
#ifdef _WIN32
-/* 0x028 */ LARGE_INTEGER llAssertModeTimeout; // 0x028 <-- verified to match Windows XP, llAssertModeTimeout
+/* 0x028 */ LARGE_INTEGER llAssertModeTimeout; /* 0x028 <-- verified to match Windows XP, llAssertModeTimeout, it
+ using regkey
+ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI
+ Specifies how long a DirectDraw application can keep a graphics-device frame-buffer locked
+ in second, if this value are set to 0 it disable directdraw acclatrions.
+ it is normal set to 7 (7 sec in windwos xp/2003)
+ */
#else
/* 0x028 */ DWORD llAssertModeTimeoutLowPart;
/* 0x02C */ DWORD llAssertModeTimeoutHighPart;
Modified: trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c [iso-8859-1] Thu May 1 07:08:02 2008
@@ -54,6 +54,7 @@
success = pfnDdEnableDirectDraw(pDC->pPDev, TRUE);
dump_edd_directdraw_global(pEddgbl);
+ dump_halinfo(&pEddgbl->ddHalInfo);
DPRINT1(" end call to pfnDdEnableDirectDraw \n ");
}
@@ -263,13 +264,6 @@
/* setup missing data in ddHalInfo */
//pEddgbl->ddHalInfo.GetDriverInfo = (PVOID)pDev->DriverFunctions.GetDirectDrawInfo;
-
-
- /* FIXME : hack ? it will let us DxDdQueryDirectDrawObject if the llAssertModeTimeout contain negtive value -1*/
- pEddgbl->llAssertModeTimeout.QuadPart = -1;
-
-
-
/* FIXME : remove this when we are done with debuging of dxg */
dump_edd_directdraw_global(pEddgbl);
Author: greatlrd
Date: Thu May 1 04:24:53 2008
New Revision: 33206
URL: http://svn.reactos.org/svn/reactos?rev=33206&view=rev
Log:
Fixed a smaller bug in intEnableReactXDriver
it was not the drv hPDev that was the frist param it was hdev aka pDC->pPDev
now we see value getting fill in to edd_DdirectDraw_Global from pfnDdEnableDirectDraw fucntion in ms dxg.sys
Modified:
trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c
Modified: trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/nt…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntddraw/ddraw.c [iso-8859-1] Thu May 1 04:24:53 2008
@@ -40,6 +40,9 @@
/*clean up some of the cache entry */
RtlZeroMemory(pEddgbl,sizeof(EDD_DIRECTDRAW_GLOBAL));
+ /* setup EDD_DIRECTDRAW_GLOBAL for pDev xp */
+ pDev->pEDDgpl = pEddgbl;
+
if (pfnDdEnableDirectDraw == NULL)
{
DPRINT1("Warning: no pfnDdEnableDirectDraw\n");
@@ -47,7 +50,10 @@
else
{
DPRINT1(" call to pfnDdEnableDirectDraw \n ");
- success = pfnDdEnableDirectDraw(pDC->PDev, TRUE);
+ /* Note it is the hdev struct it want, not the drv hPDev aka pdc->PDev */
+ success = pfnDdEnableDirectDraw(pDC->pPDev, TRUE);
+
+ dump_edd_directdraw_global(pEddgbl);
DPRINT1(" end call to pfnDdEnableDirectDraw \n ");
}
@@ -55,8 +61,6 @@
edd_DdirectDraw_Global.hDev = pDC->pPDev;
/*FIXME : edd_DdirectDraw_Global.dhpdev = (PVOID)pDC->PDev; */
- /* setup EDD_DIRECTDRAW_GLOBAL for pDev xp */
- pDev->pEDDgpl = pEddgbl;
/* test see if drv got a dx interface or not */
if ( ( pDev->DriverFunctions.DisableDirectDraw == NULL) ||