{"id":17011332,"url":"https://github.com/jigoku/acer-gn246hl-linux","last_synced_at":"2025-03-22T13:22:08.387Z","repository":{"id":81554163,"uuid":"135494267","full_name":"Jigoku/Acer-GN246HL-linux","owner":"Jigoku","description":"Some information about using an Acer GN246HL monitor on Linux with nVidia lightboost.","archived":false,"fork":false,"pushed_at":"2018-06-03T19:27:46.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-27T12:48:52.906Z","etag":null,"topics":["acer","blur","edid","firefox","ghosting","gn246hl","lightboost","linux","monitor","refresh-rates","xorg"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jigoku.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-30T20:29:04.000Z","updated_at":"2018-06-03T19:27:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"298981c1-4f03-4cf4-9d84-fe49f8c9a192","html_url":"https://github.com/Jigoku/Acer-GN246HL-linux","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jigoku%2FAcer-GN246HL-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jigoku%2FAcer-GN246HL-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jigoku%2FAcer-GN246HL-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jigoku%2FAcer-GN246HL-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jigoku","download_url":"https://codeload.github.com/Jigoku/Acer-GN246HL-linux/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244960068,"owners_count":20538746,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acer","blur","edid","firefox","ghosting","gn246hl","lightboost","linux","monitor","refresh-rates","xorg"],"created_at":"2024-10-14T06:06:47.684Z","updated_at":"2025-03-22T13:22:08.377Z","avatar_url":"https://github.com/Jigoku.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Acer-GN246HL-linux\nSome information about using an Acer GN246HL monitor on Linux with nVidia lightboost.\nI have spent hours searching the web in order to setup this monitor within Linux, and hope that i can save some other peoples time by writing up my findings, and solutions.\n\n## Background\nOh boy, was this a hassle. \n\nThe Acer GN246HL monitor is advertised as here: https://www.acer.com/ac/en/US/content/model/UM.FG6AA.B01\n\nThe features that stood out to me:\n\n* 1 ms Response Time\n* upto 144 Hz refresh rate\n* nVidia lightboost\n\nI ended up getting one of these on a whim, as my previous monitor decided to die.\n\nInitially, i had some problems figuring out lightboost. I could not seem to enable it, and the OSD display within the monitor had this option greyed out. \n\nAfter countless hours of searching online, i came across some useful information from here: http://forums3.armagetronad.net/viewtopic.php?f=1\u0026t=23173\nFollowing this guide enabled lightboost on my monitor and also gave access to 100 / 120 / 144hz refresh rates within `nvidia-settings`.\n\nNow whilst this worked, i had also connected a Windows10 HDD, to see how it \"should\" be performing as a monitor. I followed the guides here relating to windows https://www.blurbusters.com/zero-motion-blur/lightboost/\n(see \"Alternate LightBoost HOWTO #3: ToastyX Custom Resolution Utility\")\n\nOnce i had followed this, i decided to dump the EDID.bin from within Windows after configuring lightboost so that i could use it within X11 on Linux, so things are \"like for like\". \n\n## Custom Modelines relating to lightboost\n\nSkip this part if you want to, as it's not neccesary to configure the monitor in X11 if you wish to use the EDID file contained in this repository.\n\nAs for the previous paragraphs, with the link to custom modelines; as example for 120hz;\n```\nModeline \"1920x1080_120lb\" 286.7 1920 1968 2000 2080 1080 1083 1088 1149 +HSync -VSync\n```\n\nThis is an invalid modeline, hence you have to allow non edid modes. The reason for this, is that the last paramater for the vertical trace, should in fact be 1144. However, for the sake of enabling lightboost, this needs to be within the range of 1149-1180. I'm not fluent in the reasons for this, but thought i'd mention it for the sake of using `cvt` to generate a modeline.\n\n```\n$ cvt -r 1920 1080 120\n# 1920x1080 119.88 Hz (CVT) hsync: 137.14 kHz; pclk: 285.25 MHz\nModeline \"1920x1080R\"  285.25  1920 1968 2000 2080  1080 1083 1088 1144 +hsync -vsync\n```\nAs you can see, for 1920x1080 @ 120hz, this tells us the last value is 1144. When you increase this to 1149 (as to enable lightboost), the pixel clock has to also increase to reflect that. So 285.25 becomes 286.7. \n\n## Setting up X11\n\nHere's how to configure this monitor on X11 in Linux (possibly with other *nixes too).\n\nYou can download my EDID.bin from [here](https://github.com/Jigoku/Acer-GN246HL-linux/blob/master/EDID.bin), just place this at */etc/X11/EDID.bin*, then use the following xorg related config to load it;\n\n*/etc/X11/xorg.conf.d/10-nvidia.conf*\n```\nSection \"Screen\"\n    Identifier     \"Screen0\"\n    Device         \"Device0\"\n    Monitor        \"Monitor0\"\n    DefaultDepth    24\n    Option         \"metamodes\" \"1920x1080_120 +0+0 { ForceFullCompositionPipeline = On }\" \n    Option         \"TripleBuffer\" \"on\" \n    Option         \"AllowIndirectGLXProtocol\" \"off\" \n    SubSection     \"Display\"\n        Depth       24\n    EndSubSection\nEndSection\n\nSection \"Device\"\n    Identifier     \"Device0\"\n    Driver         \"nvidia\"\n    Option         \"NoLogo\" \"1\"\n    Option         \"CustomEDID\" \"DVI-D-0:/etc/X11/EDID.bin\"\nEndSection\n```\n\nNote the last few lines; where it states *DVI-D-0*, you may have to change this to whatever your monitor is labelled as, this will depend on the type of cable you are using, but should be at least a DVI name when wanting to use lightboost.\n\nMake sure you don't have any other *.conf files in /etc/X11/xorg.conf.d/ and neither an /etc/X11/xorg.conf, as this single nvidia related file is all that is needed to get lightboost working with nvidia's proprietary driver.\nYou should now be able to launch nvidia-settings, and see these refresh rates:\n\n* 60hz\n* 100hz\n* 120hz\n* 144hz\n\nNote, that only 100hz and 120hz are supported by lightboost.\n\nRun ` glxgears` to confirm this is working;\n\nEg: \n```\n602 frames in 5.0 seconds = 120.384 FPS\n```\n\n## ddcutil\n\nSee the problem here: http://www.ddcutil.com/nvidia/\n\nCreate */etc/modprobe.d/nvidia-ddcutil-fix.conf* containing:\n```\noptions nvidia NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100\n```\n\nThis should allow detection of the ddc capabilities\n```\n# ddcutil detect\nDisplay 1\n   I2C bus:             /dev/i2c-7\n   Supports DDC:        true\n   EDID synopsis:\n      Mfg id:           ACR\n      Model:            GN246HL\n      Serial number:    LW3EE0058533\n      Manufacture year: 2017\n      EDID version:     1.3\n   VCP version:         2.1\n```\n\n#### Controlling the lightboost value over ddc\n\nThe VCP code 0xfa is responsible for setting the lightboost value in increments of 10.\n``` \nVCP code 0xfa (Manufacturer Specific         ): mh=0x00, ml=0x0a, sh=0x00, sl=0x00, max value =    10, cur value =     0\n```\n\n* set lightboost to maximum\n```\n$ ddcutil setvcp 0xfa 10\n```\n* set lightboost to 50%\n```\n$ ddcutil setvcp 0xfa 5\n```\n\nYou can extract the values for the ddc lightboost setting using these comands:\n\n* current value \n```\n$ ddcutil getvcp 0xfa -t | awk {'print $4'}\n```\n\n* maximum value\n```\n$ ddcutil getvcp 0xfa -t | awk {'print $5'}\n\n```\n\n#### ddc features not advertised as capabilities\n\nI am tempted to believe 0xe0, 0xe1, 0xe7, 0xe9 and 0xeb have something to do with configuring lightboost, i may be wrong here, but most of the values don't update when you try to change them. One thing that is true, is that 0xfa is responsible for setting the brightness of lightboost (the setting that is also on the OSD).\nThe features labelled as \"phase\" could have something to do with configuring the strobing, but these values cannot be changed either.\n\nIf anyone else with this monitor can crack this and finds out anything else...\n\n```\n   Feature x03 - Soft controls\n   Feature x0b - Color temperature increment\n   Feature x0c - Color temperature request\n   Feature x0e - Clock\n   Feature x1e - Auto setup\n   Feature x1f - Auto color setup\n   Feature x20 - Horizontal Position (Phase)\n   Feature x30 - Vertical Position (Phase)\n   Feature x3e - Clock phase\n   Feature x62 - Audio speaker volume\n   Feature xa8 - Unknown feature\n   Feature xc0 - Display usage time\n   Feature xca - OSD\n   Feature xcb - Unknown feature\n   Feature xdc - Display Mode\n   Feature xe0 - Manufacturer Specific\n   Feature xe1 - Manufacturer Specific\n   Feature xe7 - Manufacturer Specific\n   Feature xe9 - Manufacturer Specific\n   Feature xeb - Manufacturer Specific\n   Feature xfa - Manufacturer Specific\n```\n\n## Firefox tweaking\n\nNow there are some other tweaks you will have to make. One notable one is firefox. I was getting horrific blur/ghosting when scrolling any web page, and found a solution by forcing the refresh rate.\nHead to \"about:config\" in your browser. Search for \"layout.frame_rate\". \n\nForce this setting to whatever your chosen refresh rate is. In my case, as i wanted to use the lightboost feature with 120hz, i set this value to 120.\n\nAfter restarting firefox, this should give you the crystal clear sharpness that is present on Windows when scrolling documents. This setting over ride should also make the ghosting/blur tests available at https://www.testufo.com/ work just as perfectly as in Windows. Despite vsync not being supported, you may get a slight stutter once in a while, but over all this should look sharp without any ghosting or blurring.\n\nthe default value of \"-1\" is supposed to represent vsync, but for some reason this does not sync to the current refresh rate under Linux, i believe this may be a bug within firefox. But for now, forcing the refresh rate on this setting seems to be acceptable for ghosting-free and blur-free scrolling.\n\n## KDE5\n\nOne thing specific to KDE5 is that you can also force the framerate to match the refresh rate, by editing *~/.config/kwinrc*\n\nIn the [Compositing] section, add/adjust these values;\n\n```\nRefreshRate=120\nMaxFPS=120\n\n```\n\nThis will improve everything within KDE5 whilst using the plasma desktop, so that it actually uses 120hz. I typically run AwesomeWM, along with xcompmgr, but have not found a solution to this yet. I am also unaware of any other window managers/compositors that can be forced to render at anything higher than 60fps.\n\n\n## TODO \nWhen i find more information, for any troublesome software relating to high refresh rates, i will try to update this and add them here.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjigoku%2Facer-gn246hl-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjigoku%2Facer-gn246hl-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjigoku%2Facer-gn246hl-linux/lists"}