Hi guys
im new to PC gaming and i bought a benq xl2411p for e sports
the hz is capped to 144
but my PC can easily get 200 fps
i would be happy with anything more than 144hz
but i use an AMD gpu
and i want to play Fortnite (pls don't judge)
does this guide work for me then?
thanks
is it possible to do this with a single monitor?
i only have access to my one
again thanks
BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
if you read the whole topic you will surely be able to do it.RoadToPro wrote: ↑04 Feb 2020, 15:58Hi guys
im new to PC gaming and i bought a benq xl2411p for e sports
the hz is capped to 144
but my PC can easily get 200 fps
i would be happy with anything more than 144hz
but i use an AMD gpu
and i want to play Fortnite (pls don't judge)
does this guide work for me then?
thanks
is it possible to do this with a single monitor?
i only have access to my one
again thanks
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
I have a xl2411P and i have reached 250hz on 1440x810
but i'm wondering if this oc maiby hurt on the long time.
Sorry for the bad english.
but i'm wondering if this oc maiby hurt on the long time.
Sorry for the bad english.
- Chief Blur Buster
- Site Admin
- Posts: 11714
- Joined: 05 Dec 2013, 15:44
- Location: Toronto / Hamilton, Ontario, Canada
- Contact:
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
There is no guarantee about damage but historically, monitor overclocking tends to not have as much risk as CPU overclocking.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter
Forum Rules wrote: 1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
2. Please report rule violations If you see a post that violates forum rules, then report the post.
3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
The link isn't working, Could you reupload the link please!!!
hleV wrote: ↑29 Jan 2020, 12:30(This was posted on the wrong thread, so re-posting this where it belongs.)
In case anyone needs it, here's a slightly updated OOR Buster (V1.4). Been using it for over a week now and it seems to work well. I couldn't be bothered to upload the whole Visual Studio project to GitHub (I'm updating and compiling the code on work PC) but here's the binary:
https://github.com/hleVqq/OorBuster/rel ... Buster.exe
Changelogs:
Code: Select all
1.1 - Alt + Home hotkey added.
Code: Select all
1.2 - Added previous/next picture mode buttons.
Code: Select all
1.3 - Added monitor handle re-check for most scenarios - Reload button now removes the Out of Range notification if present - Removes other "OorBuster.exe" instance(s) upon launch
In order to start OOR Buster upon boot faster, use Windows' Task Scheduler and create a basic task:Code: Select all
1.4 - Fixed current monitor settings not being read before applying fix on app launch - When removing other instances, it will check for current file name rather than hardcoded "OorBuster.exe" - Removed initial delay when using Alt + Home hotkey
C++ code (covers most of the program except resources code generated by Visual Studio):
- Name: OOR Buster
- Trigger: When I log on
- Action: Start a program
- specify path and optional params
Code: Select all
#include <Windows.h> #include <tchar.h> #include <shellapi.h> #include <lowlevelmonitorconfigurationapi.h> #include <string> #include <Tlhelp32.h> #include "resource.h" const BYTE VCP_OSD_LANGUAGE = 0xCC; const BYTE VCP_PICTURE_MODE = 0xDC; const BYTE VCP_AMA = 0xF0; enum { WM_APP_RELOAD = WM_APP + 1, WM_APP_EXIT, WM_APP_NEXT_MODE, WM_APP_PREV_MODE }; DWORD CachedOsdLanguage = 2; DWORD CachedPictureMode = 0; DWORD CachedAma = 1; DWORD OorDelay = 2000; DWORD PicDelay = 500; DWORD AmaDelay = 250; DWORD WakeDelay = 3000; NOTIFYICONDATA TrayIcon; HANDLE Monitor; int GetRefreshRate() { DEVMODE dm; dm.dmSize = sizeof(DEVMODE); EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm); return dm.dmDisplayFrequency; } HANDLE GetPhysicalMonitor() { HMONITOR monitor = MonitorFromWindow(GetActiveWindow(), MONITOR_DEFAULTTOPRIMARY); LPPHYSICAL_MONITOR monitors = (LPPHYSICAL_MONITOR)malloc(sizeof(PHYSICAL_MONITOR)); HANDLE pm = nullptr; if (monitors && GetPhysicalMonitorsFromHMONITOR(monitor, 1, monitors)) pm = monitors[0].hPhysicalMonitor; free(monitors); return pm; } void CachePhysicalMonitor() { Monitor = GetPhysicalMonitor(); } void CacheVcpValues() { GetVCPFeatureAndVCPFeatureReply(Monitor, VCP_OSD_LANGUAGE, NULL, &CachedOsdLanguage, NULL); GetVCPFeatureAndVCPFeatureReply(Monitor, VCP_PICTURE_MODE, NULL, &CachedPictureMode, NULL); GetVCPFeatureAndVCPFeatureReply(Monitor, VCP_AMA, NULL, &CachedAma, NULL); } void ReadLaunchParams() { int argCount; LPWSTR* args = CommandLineToArgvW(GetCommandLine(), &argCount); if (args && argCount > 1) { OorDelay = (DWORD)wcstod(args[1], L'\0'); PicDelay = (DWORD)wcstod(args[2], L'\0'); AmaDelay = (DWORD)wcstod(args[3], L'\0'); WakeDelay = (DWORD)wcstod(args[4], L'\0'); } } inline void FixOor() {SetVCPFeature(Monitor, VCP_OSD_LANGUAGE, CachedOsdLanguage);} inline void FixPic() {SetVCPFeature(Monitor, VCP_PICTURE_MODE, CachedPictureMode);} inline void FixAma() {SetVCPFeature(Monitor, VCP_AMA, CachedAma);} void NextMode() { CachePhysicalMonitor(); CacheVcpValues(); CachedPictureMode++; FixPic(); } void PrevMode() { CachePhysicalMonitor(); CacheVcpValues(); CachedPictureMode--; FixPic(); } void ApplyVcpValues(bool wake = false) { if (GetRefreshRate() <= 144) return; if (wake) Sleep(WakeDelay); Sleep(OorDelay); FixOor(); Sleep(PicDelay); FixPic(); Sleep(AmaDelay); FixAma(); } void ShowTrayMenu(HWND wnd) { POINT pos; GetCursorPos(&pos); HMENU menu = CreatePopupMenu(); InsertMenu(menu, -1, MF_BYPOSITION, WM_APP_RELOAD, L"Reload"); InsertMenu(menu, -1, MF_BYPOSITION, WM_APP_NEXT_MODE, L"Next Mode"); InsertMenu(menu, -1, MF_BYPOSITION, WM_APP_PREV_MODE, L"Prev Mode"); InsertMenu(menu, -1, MF_BYPOSITION, WM_APP_EXIT, L"Exit"); SetForegroundWindow(wnd); TrackPopupMenu(menu, TPM_BOTTOMALIGN, pos.x, pos.y, 0, wnd, NULL); DestroyMenu(menu); } LRESULT CALLBACK WindowProc(_In_ HWND wnd, _In_ UINT msg, _In_ WPARAM wParam, _In_ LPARAM lParam) { switch (msg) { case WM_DISPLAYCHANGE: CachePhysicalMonitor(); ApplyVcpValues(); break; case WM_POWERBROADCAST: if (wParam == PBT_POWERSETTINGCHANGE) { const DWORD DISPLAY_ON = 0x1; POWERBROADCAST_SETTING* pbs = (POWERBROADCAST_SETTING *)lParam; DWORD status = *(DWORD*)(pbs->Data); if (status == DISPLAY_ON) { CachePhysicalMonitor(); ApplyVcpValues(true); } } break; case WM_APP: switch (lParam) { case WM_RBUTTONDOWN: case WM_CONTEXTMENU: ShowTrayMenu(wnd); break; } break; case WM_COMMAND: switch (LOWORD(wParam)) { case WM_APP_RELOAD: CachePhysicalMonitor(); FixOor(); CacheVcpValues(); break; case WM_APP_NEXT_MODE: NextMode(); break; case WM_APP_PREV_MODE: PrevMode(); break; case WM_APP_EXIT: Shell_NotifyIcon(NIM_DELETE, &TrayIcon); PostQuitMessage(0); break; } break; case WM_DESTROY: Shell_NotifyIcon(NIM_DELETE, &TrayIcon); PostQuitMessage(0); break; case WM_HOTKEY: switch (wParam) { case 1000: { OutputDebugString(L"[DEBUG] HOTKEY!\n"); CachePhysicalMonitor(); DWORD origOorDelay = OorDelay; OorDelay = 0; ApplyVcpValues(); OorDelay = origOorDelay; } break; } } return DefWindowProc(wnd, msg, wParam, lParam); } HWND CreateMainWindow(HINSTANCE instance) { WNDCLASS wc = { }; wc.lpfnWndProc = WindowProc; wc.hInstance = instance; wc.lpszClassName = L"Main"; RegisterClass(&wc); HWND wnd = CreateWindow(L"Main", L"OOR Buster", WS_OVERLAPPEDWINDOW & ~WS_SIZEBOX & ~WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, NULL, NULL, instance, NULL); return wnd; } void CreateTrayIcon(HWND wnd, HICON icon) { ZeroMemory(&TrayIcon, sizeof(NOTIFYICONDATA)); TrayIcon.cbSize = sizeof(NOTIFYICONDATA); TrayIcon.uID = 1; TrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; TrayIcon.hIcon = icon; TrayIcon.hWnd = wnd; TrayIcon.uCallbackMessage = WM_APP; wcscpy_s(TrayIcon.szTip, L"OOR Buster"); Shell_NotifyIcon(NIM_ADD, &TrayIcon); } void KillOtherInstances() { DWORD id = GetCurrentProcessId(); WCHAR path[MAX_PATH]; GetModuleFileName(NULL, path, MAX_PATH); WCHAR file[_MAX_FNAME]; _wsplitpath_s(path, NULL, 0, NULL, 0, file, ARRAYSIZE(file), NULL, 0); wcscat_s(file, ARRAYSIZE(file), L".exe"); HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL); PROCESSENTRY32 entry; entry.dwSize = sizeof(entry); for (BOOL res = Process32First(snapshot, &entry); res; res = Process32Next(snapshot, &entry)) { if (wcscmp(entry.szExeFile, file) == 0) { HANDLE process = OpenProcess(PROCESS_TERMINATE, FALSE, entry.th32ProcessID); if (process != nullptr && entry.th32ProcessID != id) { TerminateProcess(process, 9); CloseHandle(process); } } } CloseHandle(snapshot); } int WINAPI WinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE, _In_ LPSTR, _In_ int) { KillOtherInstances(); CachePhysicalMonitor(); CacheVcpValues(); ReadLaunchParams(); HWND wnd = CreateMainWindow(instance); CreateTrayIcon(wnd, LoadIcon(instance, MAKEINTRESOURCE(IDI_ICON1))); RegisterPowerSettingNotification(wnd, &GUID_CONSOLE_DISPLAY_STATE, DEVICE_NOTIFY_WINDOW_HANDLE); RegisterHotKey(wnd, 1000, MOD_ALT, VK_HOME); MSG msg; while (GetMessage(&msg, nullptr, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; }
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
BenQ XL2546K @ 240Hz (DyAC+) • ROCCAT Kone Pro Air @ 1000Hz • HyperX Alloy Origins • CORSAIR MM350 PRO Premium • HyperX Cloud Revolver • NVIDIA GeForce RTX 3070 @ 2130MHz/8000MHz • Intel Core i7-8700K @ 4.8GHz • G.SKILL RipjawsV 16GB (2x8GB) 3000MHz CL15
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
Hey i am new to this topic and read about this overclocking method today but right now i always encounter a crash of softMCCS as soon as i try out a new resolution
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
ok now i discovered the AntiOutOfRange-master but its either not working for me or i use it the wrong way (i change to higher hz, get out of border notification and then start the program and enter 5 seconds)
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
I have a xl2411, looking for a good setup between overclock and blur reduction, i was testing with 160 hz with blur reduction on, 2080 horizontal, 1350 vertial, pixel clock is at 449.2800mhz, but can't find a balanced compromise between clear motion / ghosting / inverse ghosting, has anyone had a go with OC and blur?
-
- Posts: 1
- Joined: 26 Feb 2020, 19:43
Re: BenQ UNIVERSAL 144Hz->220Hz OVERCLOCK for 1080p 144 Hz
Hey, I overclocked my XL2411P to 165hz but whenever I open CSGO it uses 144hz. I tried both CRU and Nvidia control panel. CSGO just doesn't seem to run at 165 in fullscreen mode. Works fine on windowed but not fullscreen. Has anyone found a fix?