From: Hieu Le Minh <leminhhieu.opensource@gmail.com> --- dlls/dxcore/dxcore.c | 6 ++++++ dlls/dxcore/tests/dxcore.c | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/dlls/dxcore/dxcore.c b/dlls/dxcore/dxcore.c index a60ad1536a9..52359ddf6ad 100644 --- a/dlls/dxcore/dxcore.c +++ b/dlls/dxcore/dxcore.c @@ -110,6 +110,7 @@ static HRESULT dxcore_adapter_get_property_size(struct dxcore_adapter *adapter, [DriverVersion] = sizeof(LARGE_INTEGER), [HardwareID] = sizeof(DXCoreHardwareID), [DedicatedAdapterMemory] = sizeof(UINT64), + [SharedSystemMemory] = sizeof(UINT64), [IsHardware] = sizeof(BYTE), }; @@ -119,6 +120,7 @@ static HRESULT dxcore_adapter_get_property_size(struct dxcore_adapter *adapter, case DriverVersion: case HardwareID: case DedicatedAdapterMemory: + case SharedSystemMemory: case IsHardware: *size = property_sizes[property]; return S_OK; @@ -180,6 +182,10 @@ static HRESULT STDMETHODCALLTYPE dxcore_adapter_GetProperty(IDXCoreAdapter *ifac *(UINT64 *)buffer = adapter->identifier.video_memory; break; + case SharedSystemMemory: + *(UINT64 *)buffer = adapter->identifier.shared_system_memory; + break; + case IsHardware: FIXME("Returning all adapters as Hardware.\n"); *(BYTE *)buffer = 1; diff --git a/dlls/dxcore/tests/dxcore.c b/dlls/dxcore/tests/dxcore.c index ef322853b12..6ff9ffe8bd8 100644 --- a/dlls/dxcore/tests/dxcore.c +++ b/dlls/dxcore/tests/dxcore.c @@ -246,6 +246,24 @@ static void test_GetProperty(void) hr = IDXCoreAdapter_GetProperty(adapter, DedicatedAdapterMemory, sizeof(memory), &memory); ok(hr == S_OK, "Got hr %#lx.\n", hr); + /* SharedSystemMemory */ + hr = IDXCoreAdapter_GetProperty(adapter, SharedSystemMemory, 0, NULL); + ok(hr == E_POINTER, "Got hr %#lx.\n", hr); + hr = IDXCoreAdapter_GetProperty(adapter, SharedSystemMemory, 0, &memory); + ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr); + hr = IDXCoreAdapter_GetProperty(adapter, SharedSystemMemory, sizeof(memory) - 1, &memory); + ok(hr == E_INVALIDARG, "Got hr %#lx.\n", hr); + + hr = IDXCoreAdapter_GetPropertySize(adapter, SharedSystemMemory, NULL); + ok(hr == E_POINTER, "Got hr %#lx.\n", hr); + + hr = IDXCoreAdapter_GetPropertySize(adapter, SharedSystemMemory, &size); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(size == sizeof(memory), "Got size %Iu.\n", size); + + hr = IDXCoreAdapter_GetProperty(adapter, SharedSystemMemory, sizeof(memory), &memory); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + /* IsHardware */ hr = IDXCoreAdapter_GetProperty(adapter, IsHardware, 0, NULL); ok(hr == E_POINTER, "Got hr %#lx.\n", hr); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11410