Remove the custom D3DKMTEnumAdapters2 on Linux

Newer Wine already supports it so no need for it
This commit is contained in:
FakeMichau
2026-05-09 13:56:43 +02:00
parent dab84bb4fd
commit ad91096fbc
2 changed files with 0 additions and 71 deletions
-59
View File
@@ -52,65 +52,6 @@ static NTSTATUS hkD3DKMTQueryAdapterInfo(const D3DKMT_QUERYADAPTERINFO* data)
return result;
}
// Only for Linux, Wine doesn't have this function
VALIDATE_HOOK(customD3DKMTEnumAdapters2, PFN_D3DKMTEnumAdapters2)
static NTSTATUS customD3DKMTEnumAdapters2(const D3DKMT_ENUMADAPTERS2* data)
{
LOG_FUNC();
// Try to detect streamline
if (data->pAdapters != nullptr && data->NumAdapters == 8)
{
LOG_INFO("Streamline detected");
static D3DKMT_ADAPTERINFO* adapters = []() -> D3DKMT_ADAPTERINFO*
{
static D3DKMT_ADAPTERINFO pAdapters[8] {};
HRESULT hr = S_OK;
IDXGIFactory* pFactory = nullptr;
hr = CreateDXGIFactory(__uuidof(IDXGIFactory), (void**) &pFactory);
if (FAILED(hr))
{
LOG_DEBUG("Couldn't create a dxgi factory");
return pAdapters;
}
IDXGIAdapter* pAdapter = nullptr;
for (UINT i = 0; pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND; ++i)
{
DXGI_ADAPTER_DESC desc;
pAdapter->GetDesc(&desc);
pAdapters[i].AdapterLuid.HighPart = desc.AdapterLuid.HighPart;
pAdapters[i].AdapterLuid.LowPart = desc.AdapterLuid.LowPart;
pAdapter->Release();
}
pFactory->Release();
return pAdapters;
}();
// Something's not quite right in here
// Can't just send all LUIDs from DXGI as streamline isn't happy
// Can't send a true number of adapters as streamline isn't happy
// 8th adapter sometimes has junk data so sending only 6 to be safe
for (uint32_t i = 0; i < 6; i++)
{
data->pAdapters[i].AdapterLuid.HighPart = adapters[0].AdapterLuid.HighPart;
data->pAdapters[i].AdapterLuid.LowPart = adapters[0].AdapterLuid.LowPart;
LOG_DEBUG("sent {}.{}", data->pAdapters[i].AdapterLuid.HighPart, data->pAdapters[i].AdapterLuid.LowPart);
}
return 0;
}
return 0xFFFFFFFF;
}
// for spoofing HAGS, call early
static void hookGdi32()
{
-12
View File
@@ -113,13 +113,6 @@ FARPROC WINAPI KernelHooks::hk_K32_GetProcAddress(HMODULE hModule, LPCSTR lpProc
return (FARPROC) &hkAmdExtD3DCreateInterface;
}
if (State::Instance().isRunningOnLinux && lpProcName != nullptr &&
hModule == KernelBaseProxy::GetModuleHandleW_()(L"gdi32.dll") &&
lstrcmpA(lpProcName, "D3DKMTEnumAdapters2") == 0)
{
return (FARPROC) &customD3DKMTEnumAdapters2;
}
return o_K32_GetProcAddress(hModule, lpProcName);
}
@@ -189,11 +182,6 @@ FARPROC WINAPI KernelHooks::hk_KB_GetProcAddress(HMODULE hModule, LPCSTR lpProcN
// Util::WhoIsTheCaller(_ReturnAddress()));
// }
if (State::Instance().isRunningOnLinux && lpProcName != nullptr &&
hModule == KernelBaseProxy::GetModuleHandleW_()(L"gdi32.dll") &&
lstrcmpA(lpProcName, "D3DKMTEnumAdapters2") == 0)
return (FARPROC) &customD3DKMTEnumAdapters2;
return o_KB_GetProcAddress(hModule, lpProcName);
}