From: Amine Khaldi Date: Sun, 20 Apr 2014 00:20:21 +0000 (+0000) Subject: [DXDIAGN] X-Git-Tag: backups/0.3.17@66124~1657 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=56f1ee3f9aaed2dbbd8b102f96af1f3f258ee90f [DXDIAGN] * Sync with Wine 1.7.17. CORE-8080 svn path=/trunk/; revision=62830 --- diff --git a/reactos/dll/directx/wine/dxdiagn/dxdiagn.idl b/reactos/dll/directx/wine/dxdiagn/dxdiagn.idl index 3a6b88fe04b..45828fcbc62 100644 --- a/reactos/dll/directx/wine/dxdiagn/dxdiagn.idl +++ b/reactos/dll/directx/wine/dxdiagn/dxdiagn.idl @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#pragma makedep register + [ helpstring("DxDiagProvider Class"), threading(apartment), diff --git a/reactos/dll/directx/wine/dxdiagn/provider.c b/reactos/dll/directx/wine/dxdiagn/provider.c index 093a34d3365..deac71b06bf 100644 --- a/reactos/dll/directx/wine/dxdiagn/provider.c +++ b/reactos/dll/directx/wine/dxdiagn/provider.c @@ -52,6 +52,9 @@ static const WCHAR szSubSysId[] = {'s','z','S','u','b','S','y','s','I','d',0}; static const WCHAR szRevisionId[] = {'s','z','R','e','v','i','s','i','o','n','I','d',0}; static const WCHAR dwRefreshRate[] = {'d','w','R','e','f','r','e','s','h','R','a','t','e',0}; static const WCHAR szManufacturer[] = {'s','z','M','a','n','u','f','a','c','t','u','r','e','r',0}; +static const WCHAR szChipType[] = {'s','z','C','h','i','p','T','y','p','e',0}; +static const WCHAR szDACType[] = {'s','z','D','A','C','T','y','p','e',0}; +static const WCHAR szRevision[] = {'s','z','R','e','v','i','s','i','o','n',0}; struct IDxDiagProviderImpl { @@ -898,10 +901,15 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node static const WCHAR id_fmtW[] = {'0','x','%','0','4','x',0}; static const WCHAR subsysid_fmtW[] = {'0','x','%','0','8','x',0}; static const WCHAR mem_fmt[] = {'%','.','1','f',' ','M','B',0}; + static const WCHAR b3DAccelerationExists[] = {'b','3','D','A','c','c','e','l','e','r','a','t','i','o','n','E','x','i','s','t','s',0}; + static const WCHAR b3DAccelerationEnabled[] = {'b','3','D','A','c','c','e','l','e','r','a','t','i','o','n','E','n','a','b','l','e','d',0}; + static const WCHAR bDDAccelerationEnabled[] = {'b','D','D','A','c','c','e','l','e','r','a','t','i','o','n','E','n','a','b','l','e','d',0}; D3DADAPTER_IDENTIFIER9 adapter_info; D3DDISPLAYMODE adapter_mode; + D3DCAPS9 device_caps; DWORD available_mem = 0; + BOOL hardware_accel; snprintfW(buffer, sizeof(buffer)/sizeof(WCHAR), adapterid_fmtW, index); display_adapter = allocate_information_node(buffer); @@ -1002,6 +1010,18 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node if (FAILED(hr)) goto cleanup; + hr = add_bstr_property(display_adapter, szChipType, szEmpty); + if (FAILED(hr)) + goto cleanup; + + hr = add_bstr_property(display_adapter, szDACType, szEmpty); + if (FAILED(hr)) + goto cleanup; + + hr = add_bstr_property(display_adapter, szRevision, szEmpty); + if (FAILED(hr)) + goto cleanup; + if (!get_texture_memory(&adapter_info.DeviceIdentifier, &available_mem)) WARN("get_texture_memory helper failed\n"); @@ -1014,6 +1034,21 @@ static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node hr = add_bstr_property(display_adapter, szDisplayMemoryEnglish, buffer); if (FAILED(hr)) goto cleanup; + + hr = IDirect3D9_GetDeviceCaps(pDirect3D9, index, D3DDEVTYPE_HAL, &device_caps); + hardware_accel = SUCCEEDED(hr); + + hr = add_bool_property(display_adapter, b3DAccelerationEnabled, hardware_accel); + if (FAILED(hr)) + goto cleanup; + + hr = add_bool_property(display_adapter, b3DAccelerationExists, hardware_accel); + if (FAILED(hr)) + goto cleanup; + + hr = add_bool_property(display_adapter, bDDAccelerationEnabled, hardware_accel); + if (FAILED(hr)) + goto cleanup; } hr = S_OK; @@ -1028,7 +1063,7 @@ static HRESULT fill_display_information_fallback(IDxDiagContainerImpl_Container static const WCHAR *empty_properties[] = {szDeviceIdentifier, szVendorId, szDeviceId, szKeyDeviceKey, szKeyDeviceID, szDriverName, szDriverVersion, szSubSysId, szRevisionId, - szManufacturer}; + szManufacturer, szChipType, szDACType, szRevision}; IDxDiagContainerImpl_Container *display_adapter; HRESULT hr; @@ -1603,16 +1638,17 @@ static HRESULT build_directshowfilters_tree(IDxDiagContainerImpl_Container *node } hr = fill_filter_container(subcont, pMoniker); + IMoniker_Release(pMoniker); if (FAILED(hr)) { + WARN("Skipping invalid filter\n"); free_information_tree(subcont); - IMoniker_Release(pMoniker); - break; + hr = S_OK; + continue; } add_subcontainer(node, subcont); i++; - IMoniker_Release(pMoniker); } IEnumMoniker_Release(pEnum); diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 8c424c44b19..0e8c14d8071 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -41,7 +41,7 @@ reactos/dll/directx/wine/dmusic # Synced to Wine-1.7.17 reactos/dll/directx/wine/dplay # Synced to Wine-1.7.1 reactos/dll/directx/wine/dplayx # Synced to Wine-1.7.17 reactos/dll/directx/wine/dsound # Synced to Wine-1.5.26 -reactos/dll/directx/wine/dxdiagn # Synced to Wine-1.7.1 +reactos/dll/directx/wine/dxdiagn # Synced to Wine-1.7.17 reactos/dll/directx/wine/dxgi # Synced to Wine-1.7.17 reactos/dll/directx/wine/msdmo # Synced to Wine-1.7.1 reactos/dll/directx/wine/qedit # Synced to Wine-1.7.17