[PATCH 2/2] wined3d: Remove device_name and device_name_size from struct wined3d_adapter_identifier.

Zhiyi Zhang zzhang at codeweavers.com
Wed Mar 25 04:51:09 CDT 2020


Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 dlls/d3d8/directx.c    |  2 --
 dlls/d3d9/directx.c    | 15 ++++++++++++---
 dlls/ddraw/ddraw.c     |  1 -
 dlls/ddraw/main.c      | 12 ++++++------
 dlls/dxgi/adapter.c    |  3 ---
 dlls/wined3d/directx.c | 15 ---------------
 include/wine/wined3d.h |  2 --
 7 files changed, 18 insertions(+), 32 deletions(-)

diff --git a/dlls/d3d8/directx.c b/dlls/d3d8/directx.c
index 509a76239d..874f9ea047 100644
--- a/dlls/d3d8/directx.c
+++ b/dlls/d3d8/directx.c
@@ -120,8 +120,6 @@ static HRESULT WINAPI d3d8_GetAdapterIdentifier(IDirect3D8 *iface, UINT adapter,
     adapter_id.driver_size = sizeof(identifier->Driver);
     adapter_id.description = identifier->Description;
     adapter_id.description_size = sizeof(identifier->Description);
-    adapter_id.device_name = NULL; /* d3d9 only */
-    adapter_id.device_name_size = 0; /* d3d9 only */
 
     wined3d_adapter = wined3d_output_get_adapter(d3d8->wined3d_outputs[output_idx]);
     if (SUCCEEDED(hr = wined3d_adapter_get_identifier(wined3d_adapter, flags, &adapter_id)))
diff --git a/dlls/d3d9/directx.c b/dlls/d3d9/directx.c
index 070387dde3..6c67be31b4 100644
--- a/dlls/d3d9/directx.c
+++ b/dlls/d3d9/directx.c
@@ -121,6 +121,7 @@ static HRESULT WINAPI d3d9_GetAdapterIdentifier(IDirect3D9Ex *iface, UINT adapte
     struct d3d9 *d3d9 = impl_from_IDirect3D9Ex(iface);
     struct wined3d_adapter_identifier adapter_id;
     struct wined3d_adapter *wined3d_adapter;
+    struct wined3d_output_desc output_desc;
     unsigned int output_idx;
     HRESULT hr;
 
@@ -131,12 +132,20 @@ static HRESULT WINAPI d3d9_GetAdapterIdentifier(IDirect3D9Ex *iface, UINT adapte
     if (output_idx >= d3d9->wined3d_output_count)
         return D3DERR_INVALIDCALL;
 
+    wined3d_mutex_lock();
+    if (FAILED(hr = wined3d_output_get_desc(d3d9->wined3d_outputs[output_idx], &output_desc)))
+    {
+        wined3d_mutex_unlock();
+        WARN("Failed to get output description, hr %#x.\n", hr);
+        return hr;
+    }
+    WideCharToMultiByte(CP_ACP, 0, output_desc.device_name, -1, identifier->DeviceName,
+            sizeof(identifier->DeviceName), NULL, NULL);
+
     adapter_id.driver = identifier->Driver;
     adapter_id.driver_size = sizeof(identifier->Driver);
     adapter_id.description = identifier->Description;
     adapter_id.description_size = sizeof(identifier->Description);
-    adapter_id.device_name = identifier->DeviceName;
-    adapter_id.device_name_size = sizeof(identifier->DeviceName);
 
     wined3d_adapter = wined3d_output_get_adapter(d3d9->wined3d_outputs[output_idx]);
     if (SUCCEEDED(hr = wined3d_adapter_get_identifier(wined3d_adapter, flags, &adapter_id)))
@@ -149,6 +158,7 @@ static HRESULT WINAPI d3d9_GetAdapterIdentifier(IDirect3D9Ex *iface, UINT adapte
         memcpy(&identifier->DeviceIdentifier, &adapter_id.device_identifier, sizeof(identifier->DeviceIdentifier));
         identifier->WHQLLevel = adapter_id.whql_level;
     }
+    wined3d_mutex_unlock();
 
     return hr;
 }
@@ -636,7 +646,6 @@ static HRESULT WINAPI d3d9_GetAdapterLUID(IDirect3D9Ex *iface, UINT adapter, LUI
 
     adapter_id.driver_size = 0;
     adapter_id.description_size = 0;
-    adapter_id.device_name_size = 0;
 
     wined3d_adapter = wined3d_output_get_adapter(d3d9->wined3d_outputs[output_idx]);
     if (SUCCEEDED(hr = wined3d_adapter_get_identifier(wined3d_adapter, 0, &adapter_id)))
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 050f625f71..db7fc2c948 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -2607,7 +2607,6 @@ static HRESULT WINAPI ddraw7_GetDeviceIdentifier(IDirectDraw7 *iface,
     adapter_id.driver_size = sizeof(DDDI->szDriver);
     adapter_id.description = DDDI->szDescription;
     adapter_id.description_size = sizeof(DDDI->szDescription);
-    adapter_id.device_name_size = 0;
     wined3d_mutex_lock();
     hr = wined3d_adapter_get_identifier(ddraw->wined3d_adapter, 0x0, &adapter_id);
     wined3d_mutex_unlock();
diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c
index b9fe6b1e4b..4b00c016ed 100644
--- a/dlls/ddraw/main.c
+++ b/dlls/ddraw/main.c
@@ -68,15 +68,13 @@ static void ddraw_enumerate_secondary_devices(struct wined3d *wined3d, LPDDENUMC
 
     while (cont_enum && (wined3d_adapter = wined3d_get_adapter(wined3d, adapter_idx)))
     {
-        char DriverName[512] = "", DriverDescription[512] = "";
+        char device_name[512] = "", description[512] = "";
 
         /* The Battle.net System Checker expects the GetAdapterIdentifier DeviceName to match the
          * Driver Name, so obtain the DeviceName and GUID from D3D. */
         memset(&adapter_id, 0x0, sizeof(adapter_id));
-        adapter_id.device_name = DriverName;
-        adapter_id.device_name_size = sizeof(DriverName);
-        adapter_id.description = DriverDescription;
-        adapter_id.description_size = sizeof(DriverDescription);
+        adapter_id.description = description;
+        adapter_id.description_size = sizeof(description);
 
         wined3d_mutex_lock();
         if (FAILED(hr = wined3d_adapter_get_identifier(wined3d_adapter, 0x0, &adapter_id)))
@@ -101,8 +99,10 @@ static void ddraw_enumerate_secondary_devices(struct wined3d *wined3d, LPDDENUMC
 
             TRACE("Interface %u: %s\n", interface_count++,
                     wine_dbgstr_guid(&adapter_id.device_identifier));
+            WideCharToMultiByte(CP_ACP, 0, output_desc.device_name, -1, device_name,
+                    sizeof(device_name), NULL, NULL);
             cont_enum = callback(&adapter_id.device_identifier, adapter_id.description,
-                    adapter_id.device_name, context, output_desc.monitor);
+                    device_name, context, output_desc.monitor);
         }
 
         if (FAILED(hr))
diff --git a/dlls/dxgi/adapter.c b/dlls/dxgi/adapter.c
index d48d4755d0..ad4e4b1305 100644
--- a/dlls/dxgi/adapter.c
+++ b/dlls/dxgi/adapter.c
@@ -161,7 +161,6 @@ static HRESULT dxgi_adapter_get_desc(struct dxgi_adapter *adapter, DXGI_ADAPTER_
     adapter_id.driver_size = 0;
     adapter_id.description = description;
     adapter_id.description_size = sizeof(description);
-    adapter_id.device_name_size = 0;
 
     if (FAILED(hr = wined3d_adapter_get_identifier(adapter->wined3d_adapter, 0, &adapter_id)))
         return hr;
@@ -226,7 +225,6 @@ static HRESULT STDMETHODCALLTYPE dxgi_adapter_CheckInterfaceSupport(IWineDXGIAda
 
     adapter_id.driver_size = 0;
     adapter_id.description_size = 0;
-    adapter_id.device_name_size = 0;
 
     wined3d_mutex_lock();
     hr = wined3d_get_device_caps(adapter->wined3d_adapter, WINED3D_DEVICE_TYPE_HAL, &caps);
@@ -312,7 +310,6 @@ static HRESULT STDMETHODCALLTYPE dxgi_adapter_QueryVideoMemoryInfo(IWineDXGIAdap
 
     adapter_id.driver_size = 0;
     adapter_id.description_size = 0;
-    adapter_id.device_name_size = 0;
 
     if (FAILED(hr = wined3d_adapter_get_identifier(adapter->wined3d_adapter, 0, &adapter_id)))
         return hr;
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index a50f594854..3dc3043bce 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1357,17 +1357,6 @@ HRESULT CDECL wined3d_adapter_get_identifier(const struct wined3d_adapter *adapt
     wined3d_copy_name(identifier->driver, adapter->driver_info.name, identifier->driver_size);
     wined3d_copy_name(identifier->description, adapter->driver_info.description, identifier->description_size);
 
-    /* Note that d3d8 doesn't supply a device name. */
-    if (identifier->device_name_size)
-    {
-        if (!WideCharToMultiByte(CP_ACP, 0, adapter->device_name, -1, identifier->device_name,
-                identifier->device_name_size, NULL, NULL))
-        {
-            ERR("Failed to convert device name, last error %#x.\n", GetLastError());
-            goto fail;
-        }
-    }
-
     identifier->driver_version.u.HighPart = adapter->driver_info.version_high;
     identifier->driver_version.u.LowPart = adapter->driver_info.version_low;
     identifier->vendor_id = adapter->driver_info.vendor;
@@ -1385,10 +1374,6 @@ HRESULT CDECL wined3d_adapter_get_identifier(const struct wined3d_adapter *adapt
     wined3d_mutex_unlock();
 
     return WINED3D_OK;
-
-fail:
-    wined3d_mutex_unlock();
-    return WINED3DERR_INVALIDCALL;
 }
 
 HRESULT CDECL wined3d_output_get_raster_status(const struct wined3d_output *output,
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 30b6f9a7e8..0b3b41896e 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -1742,8 +1742,6 @@ struct wined3d_adapter_identifier
     unsigned int driver_size;
     char *description;
     unsigned int description_size;
-    char *device_name;
-    unsigned int device_name_size;
     LARGE_INTEGER driver_version;
     DWORD vendor_id;
     DWORD device_id;
-- 
2.20.1



More information about the wine-devel mailing list