diff --git a/OptiScaler/hooks/Gdi32_Hooks.h b/OptiScaler/hooks/Gdi32_Hooks.h index 8c4a173f..8bf3ad0e 100644 --- a/OptiScaler/hooks/Gdi32_Hooks.h +++ b/OptiScaler/hooks/Gdi32_Hooks.h @@ -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() { diff --git a/OptiScaler/hooks/Kernel_Hooks.cpp b/OptiScaler/hooks/Kernel_Hooks.cpp index 2e4ce283..f23011d0 100644 --- a/OptiScaler/hooks/Kernel_Hooks.cpp +++ b/OptiScaler/hooks/Kernel_Hooks.cpp @@ -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); }