[$2000 bounty] Calling 120Hz+ Linux Users: TestUFO Work/Fail

NEW for 2017: Discussion about the testufo.com Blur Busters Motion Tests. Widely used by enthusiasts, display tweakers, YouTubers reviewers, monitor manufacturers and VR headset makers!
User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

[$2000 bounty] Calling 120Hz+ Linux Users: TestUFO Work/Fail

Post by Chief Blur Buster » 31 Jan 2018, 13:58

EDIT 2021: Bounty is now expired, although some distros finally are falling in line

_______

Linux Users:

There are very spotty reliability of getting >60fps on Linux systems in TestUFO.

I have no control over this, but you can help by sending bug reports to the software vendors of all the Linux subsystems, or all the configuration settings that you used to get things working. Also, browsers must be compliant with Section 7.1.4.2 of the W3C HTML 5.2 Standard or it's guaranteed impossible for TestUFO (or any browser app) to sync.

All three must simultaneously support VSYNC, in order for TestUFO to successfully run smoothly at full refresh rate:
  • Graphics drivers
    Try switching drivers; test the proprietary NVIDIA drivers; there has been more success with those
    .
    Window manager
    Temporarily switch window managers to see if you can solve the problem
    .
  • Web browser
    Chrome and FireFox both support 120Hz, but only if the subsystem lets it.
    If using chrome, try forcing settings in chrome://flags
If you get 120Hz+ working (looks smooth even with error message at bottom)...
then please let me know the following:
- Your graphics driver version
- Your window manager version
- Your browser version:
Please copy and paste the UserAgent string at the very bottom of http://www.testufo.com/browser.html

Also, if you made any modifications you made to chrome://flags to get it to work, let me know too!
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
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!

User avatar
lexlazootin
Posts: 1251
Joined: 16 Dec 2014, 02:57

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by lexlazootin » 01 Feb 2018, 09:24

Chief Blur Buster wrote: Window manager
Temporarily switch window managers to see if you can solve the problem
You may or may not know but if i recall correctly it's the compositor that enables v-syncing on the desktop, desktop enviroments like Openbox/LXDE/XFCE can have their compositors turned off and on as well as their V-Sync settings. Some even let you swap out their default ones with Compton or Compiz which might have better results.

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by RealNC » 01 Feb 2018, 14:39

It works under none of them. KDE, Gnome, XFCE, doesn't matter. Once you go above 75Hz or or, Chrome reverts back to 60FPS.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by Chief Blur Buster » 01 Feb 2018, 16:35

Yes, the VSYNC support of the desktop manager must be enabled -- it's mandatory for Chrome to work with TestUFO.

Try to override the "Software rendering blacklist".
chrome://flags/#ignore-gpu-blacklist

Please paste the entire contents of chrome://flags into a

Code: Select all

 quote
-- I need to know what flags are available on Linux

Also, please paste the entire contents of chrome://gpu into a [code] quote.
-- I need to know what your GPU is letting you do under Linux

Bonus exercise: See if any setting in chrome://gpu is automatically changing once you go above 75Hz.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
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!

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by RealNC » 03 Feb 2018, 06:47

Chief Blur Buster wrote:Try to override the "Software rendering blacklist".
chrome://flags/#ignore-gpu-blacklist
Hardware acceleration is enabled by default on my system. I enabled the override anyway, but predictably, it doesn't change anything.
Please paste the entire contents of chrome://flags into a code quote
-- I need to know what flags are available on Linux

Code: Select all

Override software rendering list
Overrides the built-in software rendering list and enables GPU-acceleration on unsupported system configurations. – Mac, Windows, Linux, Chrome OS, Android

#ignore-gpu-blacklist

Experimental canvas features
Enables the use of experimental canvas features which are still in development. – Mac, Windows, Linux, Chrome OS, Android

#enable-experimental-canvas-features

Accelerated 2D canvas
Enables the use of the GPU to perform 2d canvas rendering instead of using software rendering. – Mac, Windows, Linux, Chrome OS, Android

#disable-accelerated-2d-canvas

Display list 2D canvas
Enables the use of display lists to record 2D canvas commands. This allows 2D canvas rasterization to be performed on separate thread. – Mac, Windows, Linux, Chrome OS, Android

#enable-display-list-2d-canvas

Composited render layer borders
Renders a border around composited Render Layers to help debug and study layer compositing. – Mac, Windows, Linux, Chrome OS, Android

#composited-layer-borders

GL composited overlay candidate quad borders
Renders a border around GL composited overlay candidate quads to help debug and study overlay support. – Mac, Windows, Linux, Chrome OS, Android

#gl-composited-overlay-candidate-quad-borders

Show overdraw feedback
Visualize overdraw by color-coding elements based on if they have other elements drawn underneath. – Mac, Windows, Linux, Chrome OS, Android

#show-overdraw-feedback

Enable draw occlusion
Enable the system to use draw occlusion to skip draw quads when they are not shown on the screen. – Mac, Windows, Linux, Chrome OS, Android

#enable-draw-occlusion

Partial swap
Sets partial swap behavior. – Mac, Windows, Linux, Chrome OS, Android

#ui-disable-partial-swap

Prevent layer squashing
When enabled, the compositor will avoid combining composited layers in more situations. – Mac, Windows, Linux, Chrome OS, Android

#enable-prevent-layer-squashing

Negotiation with GCM cipher suites for SRTP in WebRTC
When enabled, WebRTC will try to negotiate GCM cipher suites for SRTP. – Mac, Windows, Linux, Chrome OS, Android

#enable-webrtc-srtp-aes-gcm

Negotiation with encrypted header extensions for SRTP in WebRTC
When enabled, WebRTC will try to negotiate encrypted header extensions for SRTP. – Mac, Windows, Linux, Chrome OS, Android

#enable-webrtc-srtp-encrypted-headers

WebRTC Stun origin header
When enabled, Stun messages generated by WebRTC will contain the Origin header. – Mac, Windows, Linux, Chrome OS, Android

#enable-webrtc-stun-origin

WebRTC Echo Canceller 3.
Experimental WebRTC echo canceller (AEC3). – Mac, Windows, Linux, Chrome OS, Android

#WebRtcUseEchoCanceller3

Native Client
Support Native Client for all web applications, even those that were not installed from the Chrome Web Store. – Mac, Windows, Linux, Chrome OS, Android

#enable-nacl

Native Client GDB-based debugging
Enable GDB debug stub. This will stop a Native Client application on startup and wait for nacl-gdb (from the NaCl SDK) to attach to it. – Mac, Windows, Linux, Chrome OS

#enable-nacl-debug

Force PNaCl Subzero
Force the use of PNaCl's fast Subzero translator for all pexe files. – Mac, Windows, Linux, Chrome OS

#force-pnacl-subzero

Restrict Native Client GDB-based debugging by pattern
Restricts Native Client application GDB-based debugging by URL of manifest file. Native Client GDB-based debugging must be enabled for this option to work. – Mac, Windows, Linux, Chrome OS

#nacl-debug-mask

Experimental Extension APIs
Enables experimental extension APIs. Note that the extension gallery doesn't allow you to upload extensions that use experimental APIs. – Mac, Windows, Linux, Chrome OS

#extension-apis

Extensions on chrome:// URLs
Enables running extensions on chrome:// URLs, where extensions explicitly request this permission. – Mac, Windows, Linux, Chrome OS, Android

#extensions-on-chrome-urls

Fast tab/window close
Enables fast tab/window closing - runs a tab's onunload js handler independently of the GUI. – Mac, Windows, Linux, Chrome OS, Android

#enable-fast-unload

New history entries require a user gesture.
Require a user gesture to add a history entry. – Mac, Windows, Linux, Chrome OS, Android

#enable-history-entry-requires-user-gesture

Hyperlink auditing
Sends hyperlink auditing pings. – Mac, Windows, Linux, Chrome OS, Android

#disable-hyperlink-auditing

Show Autofill predictions
Annotates web forms with Autofill field type predictions as placeholder text. – Mac, Windows, Linux, Chrome OS, Android

#show-autofill-type-predictions

Smooth Scrolling
Animate smoothly when scrolling page content. – Windows, Linux, Chrome OS, Android

#smooth-scrolling

Overlay Scrollbars
Enable the experimental overlay scrollbars implementation. You must also enable threaded compositing to have the scrollbars animate. – Windows, Linux, Chrome OS

#overlay-scrollbars

Flash Overlay Scrollbars After Any Scroll Update
Flash Overlay Scrollbars After any scroll update happends in page. You must also enable Overlay Scrollbars. – Windows, Linux, Chrome OS

#overlay-scrollbars-flash-after-scroll-update

Flash Overlay Scrollbars When Mouse Enter
Flash Overlay Scrollbars When Mouse Enter a scrollable area. You must also enable Overlay Scrollbars. – Windows, Linux, Chrome OS

#overlay-scrollbars-flash-when-mouse-enter

Save Page as MHTML
Enables saving pages as MHTML: a single text file containing HTML and all sub-resources. – Mac, Windows, Linux

#save-page-as-mhtml

MHTML Generation Option
Provides experimental options for MHTML file generator. – Mac, Windows, Linux

#mhtml-generator-option

Experimental QUIC protocol
Enable experimental QUIC protocol support. – Mac, Windows, Linux, Chrome OS, Android

#enable-quic

Latest stable JavaScript features
Some web pages use legacy or non-standard JavaScript extensions that may conflict with the latest JavaScript features. This flag allows disabling support of those features for compatibility with such pages. – Mac, Windows, Linux, Chrome OS, Android

#disable-javascript-harmony-shipping

Experimental JavaScript
Enable web pages to use experimental JavaScript features. – Mac, Windows, Linux, Chrome OS, Android

#enable-javascript-harmony

Experimental Validate Asm.js and convert to WebAssembly when valid.
Validate Asm.js when "use asm" is present and then convert to WebAssembly. – Mac, Windows, Linux, Chrome OS, Android

#enable-asm-webassembly

WebAssembly structured cloning support.
Enable web pages to use WebAssembly structured cloning. – Mac, Windows, Linux, Chrome OS, Android

#enable-webassembly

WebAssembly streaming compile/instantiate support.
WebAssembly.{compile|instantiate} taking a Response as parameter. – Mac, Windows, Linux, Chrome OS, Android

#enable-webassembly-streaming

Experimental enabled SharedArrayBuffer support in JavaScript.
Enable SharedArrayBuffer support in JavaScript. – Mac, Windows, Linux, Chrome OS, Android

#shared-array-buffer

Future V8 VM features
This enables upcoming and experimental V8 VM features. This flag does not enable experimental JavaScript features. – Mac, Windows, Linux, Chrome OS, Android

#enable-future-v8-vm-features

3D software rasterizer
Fall back to a 3D software rasterizer when the GPU cannot be used. – Mac, Windows, Linux, Chrome OS, Android

#disable-software-rasterizer

GPU rasterization
Use GPU to rasterize web content. Requires impl-side painting. – Mac, Windows, Linux, Chrome OS, Android

#enable-gpu-rasterization

GPU rasterization MSAA sample count.
Specify the number of MSAA samples for GPU rasterization. – Mac, Windows, Linux, Chrome OS, Android

#gpu-rasterization-msaa-sample-count

Experimental Web Platform features
Enables experimental Web Platform features that are in development. – Mac, Windows, Linux, Chrome OS, Android

#enable-experimental-web-platform-features

Developer Tools experiments
Enables Developer Tools experiments. Use Settings panel in Developer Tools to toggle individual experiments. – Mac, Windows, Linux, Chrome OS

#enable-devtools-experiments

Silent Debugging
Do not show the infobar when an extension attaches to a page via chrome.debugger API. This is required to debug extension background pages. – Mac, Windows, Linux, Chrome OS

#silent-debugger-extension-api

Scroll prediction
Predicts the finger's future position during scrolls allowing time to render the frame before the finger is there. – Mac, Windows, Linux, Chrome OS

#enable-scroll-prediction

UI Layout for the browser's top chrome
Toggles between normal and touch (formerly "hybrid") layouts. – Mac, Windows, Linux, Chrome OS

#top-chrome-md

Site settings with All sites and Site details
Adds new ways of viewing Site settings. – Mac, Windows, Linux, Chrome OS

#enable-site-settings

Material Design in the rest of the browser's native UI
Extends the --top-chrome-md setting to secondary UI (bubbles, dialogs, etc.). On Mac, this enables MacViews, which uses toolkit-views for native browser dialogs. – Mac, Windows, Linux, Chrome OS

#secondary-ui-md

Touch Events API
Force Touch Events API feature detection to always be enabled or disabled, or to be enabled when a touchscreen is detected on startup (Automatic, the default). – Mac, Windows, Linux, Chrome OS

#touch-events

Touch adjustment
Refine the position of a touch gesture in order to compensate for touches having poor resolution compared to a mouse. – Windows, Linux, Chrome OS, Android

#disable-touch-adjustment

NaCl Socket API.
Allows applications to use NaCl Socket API. Use only to test NaCl plugins. – Mac, Windows, Linux, Chrome OS

#allow-nacl-socket-api

Debugging for packed apps
Enables debugging context menu options such as Inspect Element for packed applications. – Mac, Windows, Linux, Chrome OS

#debug-packed-apps

Password generation
Allow the user to have Chrome generate passwords when it detects account creation pages. – Mac, Windows, Linux, Chrome OS, Android

#enable-password-generation

Enable username correction
While on the pending password state, add an edit button to the bubble so that user can edit the username. – Mac, Windows, Linux, Chrome OS

#enable-username-correction

Force-saving of passwords
Allow the user to manually enforce password saving instead of relying on password manager's heuristics. – Mac, Windows, Linux, Chrome OS, Android

#enable-password-force-saving

Manual password generation.
Show a 'Generate Password' option on the context menu for all password fields. – Mac, Windows, Linux, Chrome OS, Android

#enable-manual-password-generation

Show autofill signatures.
Annotates web forms with Autofill signatures as HTML attributes. – Mac, Windows, Linux, Chrome OS, Android

#enable-show-autofill-signatures

Affiliation based matching in password manager
Allow credentials stored for Android applications to be filled into corresponding websites. – Mac, Windows, Linux, Chrome OS, Android

#affiliation-based-matching

Use Google Payments sandbox servers
For developers: use the sandbox service for Google Payments API calls. – Mac, Windows, Linux, Chrome OS, Android

#wallet-service-use-sandbox

Overscroll history navigation
Experimental history navigation in response to horizontal overscroll. – Windows, Linux, Chrome OS

#overscroll-history-navigation

Overscroll start threshold
Changes overscroll start threshold relative to the default value. – Windows, Linux, Chrome OS

#overscroll-start-threshold

Pull-to-refresh gesture
Pull-to-refresh gesture in response to vertical overscroll. – Windows, Linux, Chrome OS

#pull-to-refresh

Enable navigation tracing
This is to be used in conjunction with the trace-upload-url flag. WARNING: When enabled, Chrome will record performance data for every navigation and upload it to the URL specified by the trace-upload-url flag. The trace may include personally identifiable information (PII) such as the titles and URLs of websites you visit. – Mac, Windows, Linux, Chrome OS, Android

#enable-navigation-tracing

Trace label for navigation tracing
This is to be used in conjunction with the enable-navigation-tracing flag. Please select the label that best describes the recorded traces. This will choose the destination the traces are uploaded to. If you are not sure, select other. If left empty, no traces will be uploaded. – Mac, Windows, Linux, Chrome OS, Android

#trace-upload-url

Service worker script streaming.
Installed scripts for a service worker are sent over a dedicated message pipe and data pipes, and that is never be blocked on the main thread. – Mac, Windows, Linux, Chrome OS, Android

#enable-service-worker-script-streaming

Service worker script full code cache.
Generate V8 full code cache of Service Worker scripts while installing. – Mac, Windows, Linux, Chrome OS, Android

#enable-service-worker-script-full-code-cache

Enable PWA full code cache
Generate V8 code cache in Cache Storage while installing Service Worker for PWAs. – Mac, Windows, Linux, Chrome OS, Android

#enable-pwa-full-code-cache

Substring matching for Autofill suggestions
Match Autofill suggestions based on substrings (token prefixes) rather than just prefixes. – Mac, Windows, Linux, Chrome OS, Android

#enable-suggestions-with-substring-match

LCD text antialiasing
If disabled, text is rendered with grayscale antialiasing instead of LCD (subpixel) when doing accelerated compositing. – Mac, Windows, Linux, Chrome OS

#lcd-text-aa

Google Payments card saving checkbox
Show the checkbox to offer local saving of a credit card downloaded from the server. – Mac, Windows, Linux, Chrome OS, Android

#enable-offer-store-unmasked-wallet-cards

Offline Auto-Reload Mode
Pages that fail to load while the browser is offline will be auto-reloaded when the browser is online again. – Mac, Windows, Linux, Chrome OS, Android

#enable-offline-auto-reload

Only Auto-Reload Visible Tabs
Pages that fail to load while the browser is offline will only be auto-reloaded if their tab is visible. – Mac, Windows, Linux, Chrome OS, Android

#enable-offline-auto-reload-visible-only

Show Saved Copy Button
When a page fails to load, if a stale copy of the page exists in the browser cache, a button will be presented to allow the user to load that stale copy. The primary enabling choice puts the button in the most salient position on the error page; the secondary enabling choice puts it secondary to the reload button. – Mac, Windows, Linux, Chrome OS, Android

#show-saved-copy

Default tile width
Specify the default tile width. – Mac, Windows, Linux, Chrome OS, Android

#default-tile-width

Default tile height
Specify the default tile height. – Mac, Windows, Linux, Chrome OS, Android

#default-tile-height

Simple Cache for HTTP
The Simple Cache for HTTP is a new cache. It relies on the filesystem for disk space allocation. – Mac, Windows, Linux, Chrome OS

#enable-simple-cache-backend

TCP Fast Open
Enable the option to send extra authentication information in the initial SYN packet for a previously connected client, allowing faster data send start. – Linux, Chrome OS, Android

#enable-tcp-fast-open

Device Discovery Notifications
Device discovery notifications on local network. – Mac, Windows, Linux, Chrome OS

#device-discovery-notifications

Print Preview Registration Promos
Enable registering unregistered cloud printers from print preview. – Mac, Windows, Linux, Chrome OS

#enable-print-preview-register-promos

Spelling Feedback Field Trial
Enable the field trial for sending user feedback to spelling service. – Mac, Windows, Linux, Chrome OS, Android

#enable-spelling-feedback-field-trial

WebGL Draft Extensions
Enabling this option allows web applications to access the WebGL Extensions that are still in draft status. – Mac, Windows, Linux, Chrome OS, Android

#enable-webgl-draft-extensions

Identity consistency between browser and cookie jar
When enabled, the browser manages signing in and out of Google accounts. – Mac, Windows, Linux, Chrome OS, Android

#account-consistency

Zero-copy rasterizer
Raster threads write directly to GPU memory associated with tiles. – Mac, Windows, Linux, Chrome OS, Android

#enable-zero-copy

Translate 2016Q2 UI
Improved triggering logic and look for Translate Bubble UI – Windows, Linux, Chrome OS

#translate-2016q2-ui

Enforce TranslateRanker decisions
Improved Translate UI triggering logic. TranslateRanker decides whether or not Translate UI should be triggered in a given context. – Mac, Windows, Linux, Chrome OS, Android

#translate-ranker-enforcement

Enable native notifications.
Enable support for using the native notification toasts and notification center on platforms where these are available. – Mac, Linux

#enable-native-notifications

In-Product Help Demo Mode
Selects the In-Product Help demo mode. – Mac, Windows, Linux, Chrome OS, Android

#in-product-help-demo-mode-choice

Number of raster threads
Specify the number of raster threads. – Mac, Windows, Linux, Chrome OS, Android

#num-raster-threads

Permission Action Reporting
Enables permission action reporting to Safe Browsing servers for opted in users. – Mac, Windows, Linux, Chrome OS, Android

#enable-permission-action-reporting

Permissions Blacklist
Enables the Permissions Blacklist, which blocks permissions for blacklisted sites for Safe Browsing users. – Mac, Windows, Linux, Chrome OS, Android

#enable-permissions-blacklist

Single-click autofill
Make autofill suggestions on initial mouse click on a form element. – Mac, Windows, Linux, Chrome OS, Android

#enable-single-click-autofill

Cast Streaming hardware video encoding
This option enables support in Cast Streaming for encoding video streams using platform hardware. – Mac, Windows, Linux, Chrome OS, Android

#disable-cast-streaming-hw-encoding

Threaded scrolling
Threaded handling of scroll-related input events. Disabling this will force all such scroll events to be handled on the main thread. Note that this can dramatically hurt scrolling performance of most websites and is intended for testing purposes only. – Mac, Windows, Linux, Chrome OS, Android

#disable-threaded-scrolling

Distance field text
Text is rendered with signed distance fields rather than bitmap alpha masks. – Mac, Windows, Linux, Chrome OS, Android

#distance-field-text

Extension Content Verification
This flag can be used to turn on verification that the contents of the files on disk for extensions from the webstore match what they're expected to be. This can be used to turn on this feature if it would not otherwise have been turned on, but cannot be used to turn it off (because this setting can be tampered with by malware). – Mac, Windows, Linux, Chrome OS

#extension-content-verification

User consent for extension scripts
Require user consent for an extension running a script on the page, if the extension requested permission to run on all urls. – Mac, Windows, Linux, Chrome OS, Android

#extension-active-script-permission

Embedded extension options
Display extension options as an embedded element in chrome://extensions rather than opening a new tab. – Mac, Windows, Linux, Chrome OS

#enable-embedded-extension-options

New style notification
Enables the experiment style of material-design notification – Mac, Windows, Linux, Chrome OS

#enable-message-center-new-style-notification

Enable policy management page
If enabled, the chrome://policy-tool URL loads a page for managing policies. – Mac, Windows, Linux, Chrome OS

#enable-policy-tool

Memory coordinator
Enable memory coordinator instead of memory pressure listeners. – Windows, Linux, Chrome OS, Android

#enable-memory-coordinator

Tab audio muting UI control
When enabled, the audio indicators in the tab strip double as tab audio mute controls. This also adds commands in the tab context menu for quickly muting multiple selected tabs. – Mac, Windows, Linux, Chrome OS

#enable-tab-audio-muting

Reduce default 'referer' header granularity.
If a page hasn't set an explicit referrer policy, setting this flag will reduce the amount of information in the 'referer' header for cross-origin requests. – Mac, Windows, Linux, Chrome OS, Android

#reduced-referrer-granularity

Mark non-secure origins as non-secure
Change the UI treatment for HTTP pages – Mac, Windows, Linux, Chrome OS, Android

#mark-non-secure-as

Show in-form warnings for sensitive fields when the top-level page is not HTTPS
Attaches a warning UI to any password or credit card fields detected when the top-level page is not HTTPS – Mac, Windows, Linux, Chrome OS, Android

#enable-http-form-warning

Committed Interstitials
Use committed error pages instead of transient navigation entries for interstitial error pages (e.g. certificate errors). – Mac, Windows, Linux, Chrome OS, Android

#committed-interstitials

Strict site isolation
Highly experimental security mode that ensures each renderer process contains pages from at most one site. In this mode, out-of-process iframes will be used whenever an iframe is cross-site. – Mac, Windows, Linux, Chrome OS, Android

#enable-site-per-process

Top document isolation
Highly experimental performance mode where cross-site iframes are kept in a separate process from the top document. In this mode, iframes from different third-party sites will be allowed to share a process. – Mac, Windows, Linux, Chrome OS, Android

#enable-top-document-isolation

Use Blink's zoom for device scale factor.
If enabled, Blink uses its zooming mechanism to scale content for device scale factor. – Mac, Windows, Linux, Chrome OS, Android

#enable-use-zoom-for-dsf

Use an alternative Data Saver back end configuration.
Enable a different approach to saving data by configuring the back end server – Mac, Windows, Linux, Chrome OS, Android

#enable-data-reduction-proxy-server-experiment

Client-side Lo-Fi previews
Enable showing low fidelity images on some pages on slow networks. – Mac, Windows, Linux, Chrome OS, Android

#enable-client-lo-fi

NoScript previews
Enable disabling JavaScript on some pages on slow networks. – Mac, Windows, Linux, Chrome OS, Android

#enable-noscript-previews

Optimization Hints
Enable the Optimization Hints feature which incorporates server hintsinto decisions for what optimizations to perform on some pages on slow networks. – Mac, Windows, Linux, Chrome OS, Android

#enable-optimization-hints

Allow invalid certificates for resources loaded from localhost.
Allows requests to localhost over HTTPS even when an invalid certificate is presented. – Mac, Windows, Linux, Chrome OS, Android

#allow-insecure-localhost

App Banners
Enable the display of Progressive Web App banners, which prompt a user to add a web app to their shelf, or other platform-specific equivalent. – Mac, Windows, Linux, Chrome OS

#enable-app-banners

Experimental app banners
Enables a new experimental app banner flow and UI. Implies #enable-app-banners. – Mac, Windows, Linux, Chrome OS, Android

#enable-experimental-app-banners

Bypass user engagement checks
Bypasses user engagement checks for displaying app banners, such as requiring that users have visited the site before and that the banner hasn't been shown recently. This allows developers to test that other eligibility requirements for showing app banners, such as having a manifest, are met. – Mac, Windows, Linux, Chrome OS, Android

#bypass-app-banner-engagement-checks

Desktop PWAs
Experimental windowing and install banner treatment for Progressive Web Apps on desktop platforms. Implies #enable-experimental-app-banners. – Mac, Windows, Linux, Chrome OS

#enable-desktop-pwas

Use Chrome Sync sandbox
Connects to the testing server for Chrome Sync. – Mac, Windows, Linux, Chrome OS, Android

#use-sync-sandbox

Load Media Router Component Extension
Loads the Media Router component extension at startup. – Mac, Windows, Linux, Chrome OS

#load-media-router-component-extension

Gamepad Extensions
Enabling this option allows web applications to access experimental extensions to the Gamepad APIs. – Mac, Windows, Linux, Chrome OS, Android

#enable-gamepad-extensions

WebVR
Allow web applications to access experimental Virtual Reality APIs. Warning: Enabling this will also allow WebVR content on insecure origins to access these powerful APIs, and may pose a security risk. – Mac, Windows, Linux, Chrome OS, Android

#enable-webvr

WebVR experimental rendering optimizations
Experimental rendering path optimizations for WebVR. – Mac, Windows, Linux, Chrome OS, Android

#webvr-experimental-rendering

V8 caching mode.
Caching mode for the V8 JavaScript engine. – Mac, Windows, Linux, Chrome OS, Android

#v8-cache-options

Simplified full screen / mouse lock UI.
A simplified new user experience when entering page-triggered full screen or mouse pointer lock states. – Windows, Linux, Chrome OS

#simplified-fullscreen-ui

Experimental keyboard lock UI.
An experimental full screen with keyboard lock mode requiring users to hold Esc to exit. – Mac, Windows, Linux, Chrome OS

#experimental-keyboard-lock-ui

Save Previous Document Resources
Saves an old document's cached resources until the specified point in the next document's lifecycle. – Mac, Windows, Linux, Chrome OS, Android

#save-previous-document-resources-until

Block scripts loaded via document.write
Disallows fetches for third-party parser-blocking scripts inserted into the main frame via document.write. – Mac, Windows, Linux, Chrome OS, Android

#disallow-doc-written-script-loads

Enable Push API background mode
Enable background mode for the Push API. This allows Chrome to continue running after the last window is closed, and to launch at OS startup, if the Push API needs it. – Mac, Windows, Linux

#enable-push-api-background-mode

Enable offering upload of Autofilled credit cards
Enables a new option to upload credit cards to Google Payments for sync to all Chrome devices. – Mac, Windows, Linux, Chrome OS, Android

#enable-autofill-credit-card-upload

Enable Material Design bookmarks
If enabled, the chrome://bookmarks/ URL loads the Material Design bookmarks page. – Mac, Windows, Linux, Chrome OS

#enable-md-bookmarks

SafeSearch URLs reporting.
If enabled, inappropriate URLs can be reported back to SafeSearch. – Mac, Windows, Linux, Chrome OS, Android

#safe-search-url-reporting

Force UI direction
Explicitly force the UI to left-to-right (LTR) or right-to-left (RTL) mode, overriding the default direction of the UI language. – Mac, Windows, Linux, Chrome OS, Android

#force-ui-direction

Force text direction
Explicitly force the per-character directionality of UI text to left-to-right (LTR) or right-to-left (RTL) mode, overriding the default direction of the character language. – Mac, Windows, Linux, Chrome OS, Android

#force-text-direction

Enable Material Design extensions
If enabled, the chrome://extensions/ URL loads the Material Design extensions page. – Mac, Windows, Linux, Chrome OS

#enable-md-extensions

Enable Input IME API
Enable the use of chrome.input.ime API. – Windows, Linux

#enable-input-ime-api

Origin Trials
Enables origin trials for controlling access to feature/API experiments. – Mac, Windows, Linux, Chrome OS, Android

#enable-origin-trials

Brotli Content-Encoding.
Enable Brotli Content-Encoding support. – Mac, Windows, Linux, Chrome OS, Android

#enable-brotli

Image Capture API
Enables the Web Platform Image Capture API: takePhoto(), getPhotoCapabilities(), etc. – Mac, Windows, Linux, Chrome OS, Android

#enable-image-capture-api

TLS 1.3
Sets the TLS 1.3 variant used. – Mac, Windows, Linux, Chrome OS, Android

#tls13-variant

Token Binding.
Enable Token Binding support. – Mac, Windows, Linux, Chrome OS, Android

#enable-token-binding

Scroll Anchoring
Adjusts scroll position to prevent visible jumps when offscreen content changes. – Mac, Windows, Linux, Chrome OS, Android

#enable-scroll-anchoring

Disable Audio For Desktop Share
With this flag on, desktop share picker window will not let the user choose whether to share audio. – Mac, Windows, Linux, Chrome OS, Android

#disable-audio-support-for-desktop-share

Disable Desktop Share with tab source
This flag controls whether users can choose a tab for desktop share. – Mac, Windows, Linux, Chrome OS, Android

#tab-for-desktop-share

User Activation v2
Enable simple user activation for APIs that are otherwise controlled by user gesture tokens. – Mac, Windows, Linux, Chrome OS, Android

#user-activation-v2

WebRTC H.264 software video encoder/decoder
When enabled, an H.264 software video encoder/decoder pair is included. If a hardware encoder/decoder is also available it may be used instead of this encoder/decoder. – Mac, Windows, Linux, Chrome OS

#enable-webrtc-h264-with-openh264-ffmpeg

Autofill sync credential
How the password manager handles autofill for the sync credential. – Mac, Windows, Linux, Chrome OS, Android

#protect-sync-credential

Autofill sync credential only for transactional reauth pages
How the password manager handles autofill for the sync credential only for transactional reauth pages. – Mac, Windows, Linux, Chrome OS, Android

#protect-sync-credential-on-reauth

Password export
Export functionality in password settings. – Mac, Windows, Linux, Chrome OS

#password-export

Password import
Import functionality in password settings. – Mac, Windows, Linux, Chrome OS

#password-import

Google branding in the context menu
Shows a Google icon next to context menu items powered by Google services. – Mac, Windows, Linux, Chrome OS

#enable-google-branded-context-menu

Important sites options in clear browsing data dialog
Include the option to whitelist important sites in the clear browsing data dialog. – Mac, Windows, Linux, Chrome OS, Android

#important-sites-in-cbd

Enable tabs for the Clear Browsing Data dialog.
Enables a basic and an advanced tab for the Clear Browsing Data dialog. – Mac, Windows, Linux, Chrome OS

#tabs-in-cbd

Passive Event Listener Override
Forces touchstart, touchmove, mousewheel and wheel event listeners (which haven't requested otherwise) to be treated as passive. This will break touch/wheel behavior on some websites but is useful for demonstrating the potential performance benefits of adopting passive event listeners. – Mac, Windows, Linux, Chrome OS, Android

#passive-listener-default

Document Level Event Listeners Passive Default
Forces touchstart, and touchmove event listeners on document level targets (which haven't requested otherwise) to be treated as passive. – Mac, Windows, Linux, Chrome OS, Android

#document-passive-event-listeners

Touch Event Listeners Passive Default During Fling
Forces touchstart, and first touchmove per scroll event listeners during fling to be treated as passive. – Mac, Windows, Linux, Chrome OS, Android

#passive-event-listeners-due-to-fling

FontCache scaling
Reuse a cached font in the renderer to serve different sizes of font for faster layout. – Mac, Windows, Linux, Chrome OS, Android

#enable-font-cache-scaling

Framebusting requires same-origin or a user gesture
Don't permit an iframe to navigate the top level browsing context unless they are same-origin or the iframe is processing a user gesture. – Mac, Windows, Linux, Chrome OS, Android

#enable-framebusting-needs-sameorigin-or-usergesture

Requiring user gesture for the Vibration API
Block the Vibration API if no user gesture has been received on the frame or any embedded frame. – Mac, Windows, Linux, Chrome OS, Android

#vibrate-requires-user-gesture

Web Payments
Enable Web Payments API integration, a JavaScript API for merchants. – Mac, Windows, Linux, Chrome OS

#web-payments

Enable web payment modifiers
If the website provides modifiers in the payment request, show the custom total for each payment instrument, update the shopping cart when instruments are switched, and send modified payment method specific data to the payment app. – Mac, Windows, Linux, Chrome OS, Android

#web-payments-modifiers

Service Worker payment apps
Enable Service Worker applications to integrate as payment apps – Mac, Windows, Linux, Chrome OS, Android

#service-worker-payment-apps

Fill passwords on account selection
Filling of passwords when an account is explicitly selected by the user rather than autofilling credentials on page load. – Mac, Windows, Linux, Chrome OS, Android

#fill-on-account-select

New audio rendering mixing strategy
Use the new audio rendering mixing strategy. – Mac, Windows, Linux, Android

#new-audio-rendering-mixing-strategy

Optimize background video playback.
Disable video tracks when the video is played in the background to optimize performance. – Mac, Windows, Linux, Chrome OS, Android

#disable-background-video-track

Enable the new remote playback pipeline.
Enable the new pipeline for playing media element remotely via RemotePlayback API or native controls. – Mac, Windows, Linux, Chrome OS, Android

#enable-new-remote-playback-pipeline

Enable the use of SurfaceLayer objects for videos.
Enable compositing onto a Surface instead of a VideoLayer for videos. – Mac, Windows, Linux, Chrome OS, Android

#enable-surfaces-for-videos

Task Scheduler
Enables redirection of some task posting APIs to the task scheduler. – Mac, Windows, Linux, Chrome OS, Android

#browser-task-scheduler

Feature Policy
Enables granting and removing access to features through the Feature-Policy HTTP header. – Mac, Windows, Linux, Chrome OS, Android

#enable-feature-policy

Generic Sensor
Enables motion sensor classes based on Generic Sensor API, i.e. Accelerometer, LinearAccelerationSensor, Gyroscope, AbsoluteOrientationSensor and RelativeOrientationSensor interfaces. – Mac, Windows, Linux, Chrome OS, Android

#enable-generic-sensor

Generic Sensor Extra Classes
Enables an extra set of sensor classes based on Generic Sensor API, which expose previously unavailable platform features, i.e. AmbientLightSensor and Magnetometer interfaces. – Mac, Windows, Linux, Chrome OS, Android

#enable-generic-sensor-extra-classes

Throttle expensive background timers
Enables intervention to limit CPU usage of background timers to 1%. – Mac, Windows, Linux, Chrome OS, Android

#expensive-background-timer-throttling

Manage audio focus across tabs
Manage audio focus across tabs to improve the audio mixing. – Mac, Windows, Linux, Chrome OS

#enable-audio-focus

Enable new Print Preview UI
If enabled, Print Preview will display a newer UI – Mac, Windows, Linux, Chrome OS

#enable-new-print-preview

Print Pdf as Image
If enabled, an option to print PDF files as images will be available in print preview. – Mac, Windows, Linux, Chrome OS

#print-pdf-as-image

Cross process frames for guests
Highly experimental where guests such as <webview> are implemented on the out-of-process iframe infrastructure. – Mac, Windows, Linux, Chrome OS

#cross-process-guests

Media Remoting during Cast Tab Mirroring
When Casting a tab to a remote device, enabling this turns on an optimization that forwards the content bitstream directly to the remote device when a video is fullscreened. – Mac, Windows, Linux, Chrome OS

#media-remoting

No-State Prefetch
"No-State Prefetch" pre-downloads resources to improve load times. "Prerender" does a full pre-rendering of the page, to improve load times even more. "Simple Load" does nothing and is similar to disabling the feature, but collects more metrics for comparison purposes. – Mac, Windows, Linux, Chrome OS, Android

#enable-nostate-prefetch

Display the last used date of a credit card in autofill.
If enabled, display the last used date of a credit card in autofill. – Mac, Windows, Linux, Chrome OS, Android

#enable-autofill-credit-card-last-used-date-display

Enable requesting missing CVC during Autofill credit card upload
If enabled, requests missing CVC when offering to upload credit cards to Google Payments. – Mac, Windows, Linux, Chrome OS

#enable-autofill-credit-card-upload-cvc-prompt

Show Google Logo for Autofill credit card upload
If enabled, displays the Google logo in the save prompt when offering to upload credit cards to Google Payments. – Mac, Windows, Linux, Chrome OS

#enable-autofill-credit-card-upload-google-logo

Enable updated UI for Autofill credit card upload
If enabled, displays a new save card bubble/infobar design when offering to upload credit cards to Google Payments. – Mac, Windows, Linux, Chrome OS

#enable-autofill-credit-card-upload-new-ui

Credit card autofill ablation experiment.
If enabled, credit card autofill suggestions will not display. – Mac, Windows, Linux, Chrome OS, Android

#enable-autofill-credit-card-ablation-experiment

Display the issuer bank name of a credit card in autofill.
If enabled, displays the issuer bank name of a credit card in autofill. – Mac, Windows, Linux, Chrome OS, Android

#enable-autofill-credit-card-bank-name-display

Enable autofill sending billing customer number when calling Google Payments
If enabled, autofill sends billing customer number when calling Google Payments. – Mac, Windows, Linux, Chrome OS, Android

#enable-autofill-send-billing-customer-number

Experimental contextual omnibox suggestion
Change omnibox contextual suggestions to an experimental source. Note that this is not an on/off switch for contextual omnibox and it only applies to suggestions provided before the user starts typing a URL or a search query (i.e. zero suggest). – Mac, Windows, Linux, Chrome OS, Android

#enable-zero-suggest-redirect-to-chrome

Render bidirectional URLs from left to right
An experimental Bidi URL rendering algorithm where the URL components are always shown in order from left to right, regardless of any RTL characters. (The contents of each component are still rendered with the normal Bidi algorithm.) – Mac, Windows, Linux, Chrome OS

#left-to-right-urls

Omnibox entity suggestions
Enable receiving entity suggestions - disambiguation descriptions - for Omnibox suggestions. – Mac, Windows, Linux, Chrome OS

#omnibox-entity-suggestions

Omnibox tail suggestions
Enable receiving tail suggestions, a type of search suggestion based on the last few words in the query, for the Omnibox. – Mac, Windows, Linux, Chrome OS

#omnibox-tail-suggestions

Omnibox tab switch suggestions
Enable suggestions for switching to open tabs within the Omnibox. – Mac, Windows, Linux, Chrome OS

#omnibox-tab-switch-suggestions

Enable the New App Menu Icon
Use the new app menu icon with update notification animations. – Mac, Windows, Linux, Chrome OS

#enable-new-app-menu-icon

Speculative Prefetch
"Speculative Prefetch" fetches likely resources early to improve load times, based on a local database (see chrome://predictors). "Learning" means that only the database construction is enabled, "Prefetching" that learning and prefetching are enabled. – Mac, Windows, Linux, Chrome OS, Android

#enable-resource-prefetch

Off-main-thread fetch for Web Workers
If enabled, the resource fetches from worker threads will not be blocked by the busy main thread. – Mac, Windows, Linux, Chrome OS, Android

#enable-off-main-thread-fetch

Enable speculative start of a service worker when a search is predicted.
If enabled, when the user enters text in the omnibox that looks like a a query, any service worker associated with the search engine the query will be sent to is started early. – Mac, Windows, Linux, Chrome OS, Android

#enable-speculative-service-worker-start-on-query-input

Use Mojo IPC for resource loading
Use Mojo IPC instead of traditional Chrome IPC for resource loading. – Mac, Windows, Linux, Chrome OS, Android

#enable-mojo-loading

Fetch API keepalive timeout setting
This is for setting the timeout value for Fetch API with keepalive option and SendBeacon – Mac, Windows, Linux, Chrome OS, Android

#enable-fetch-keepalive-timeout-setting

Renderer side ResourceScheduler
Migrate some ResourceScheduler functionalities to renderer – Mac, Windows, Linux, Chrome OS, Android

#enable-renderer-side-resource-scheduler

Memory ablation experiment
Allocates extra memory in the browser process. – Mac, Windows, Linux, Chrome OS, Android

#memory-ablation

Pause background tabs
Pause timers in background tabs after 5 minutes on desktop. – Mac, Windows, Linux, Chrome OS

#pause-background-tabs

Include title for the current URL in the omnibox
In the event that the omnibox provides suggestions on-focus, the URL of the current page is provided as the first suggestion without a title. Enabling this flag causes the title to be displayed. – Mac, Windows, Linux, Chrome OS, Android

#omnibox-display-title-for-current-url

Force color profile
Forces Chrome to use a specific color profile instead of the color of the window's current monitor, as specified by the operating system. – Mac, Windows, Linux, Chrome OS, Android

#force-color-profile

Autoplay policy
Policy used when deciding if audio or video is allowed to autoplay. – Mac, Windows, Linux, Chrome OS, Android

#autoplay-policy

Override effective connection type
Overrides the effective connection type of the current connection returned by the network quality estimator. – Mac, Windows, Linux, Chrome OS, Android

#force-effective-connection-type

Heap profiling
Enables heap profiling. – Mac, Windows, Linux, Chrome OS, Android

#enable-heap-profiling

Out of process heap profiling.
Creates a profiling service that records stacktraces for all live, malloced objects. – Mac, Windows, Linux, Chrome OS, Android

#memlog

Omnibox UI Elide Suggestion URL After Host
Elides the path, query, and ref of suggested URLs in the Omnibox dropdown. – Mac, Windows, Linux, Chrome OS, Android

#omnibox-ui-elide-suggestion-url-after-host

Omnibox UI Hide Suggestion URL Scheme
Elides the schemes of suggested URLs in the Omnibox dropdown. – Mac, Windows, Linux, Chrome OS, Android

#omnibox-ui-hide-suggestion-url-scheme

Omnibox UI Hide Suggestion URL Trivial Subdomains
Elides trivially informative subdomains from suggested URLs in the Omnibox dropdown (e.g. www. and m.). – Mac, Windows, Linux, Chrome OS, Android

#omnibox-ui-hide-suggestion-url-trivial-subdomains

Omnibox UI Show Suggestion Favicons
Shows favicons instead of generic vector icons for URL suggestions in the Omnibox dropdown. – Mac, Windows, Linux, Chrome OS

#omnibox-ui-show-suggestion-favicons

Omnibox UI Max Autocomplete Matches
Changes the maximum number of autocomplete matches displayed in the Omnibox UI. – Mac, Windows, Linux, Chrome OS

#omnibox-ui-max-autocomplete-matches

Omnibox UI Vertical Layout
Displays Omnibox sugestions in 2 lines - title over origin. – Mac, Windows, Linux, Chrome OS

#omnibox-ui-vertical-layout

Omnibox UI Narrow Dropdown
Makes the suggestions dropdown width match the omnibox width. – Mac, Windows, Linux, Chrome OS

#omnibox-ui-narrow-dropdown

Omnibox UI Vertical Margin
Changes the vertical margin in the Omnibox UI. – Mac, Windows, Linux, Chrome OS

#omnibox-ui-vertical-margin

Omnibox UI Swap Title and URL
In the omnibox dropdown, shows titles before URLs when both are available. – Mac, Windows, Linux, Chrome OS

#omnibox-ui-swap-title-and-url

Disable minimum for server-side tile suggestions on NTP.
Request server-side suggestions even if there are only very few of them and use them for tiles on the New Tab Page. – Mac, Windows, Linux, Chrome OS, Android

#use-suggestions-even-if-few

Use new Accept-Language header
Adds the base language code after other corresponding language+region codes. This ensures that users receive content in their preferred language. – Mac, Windows, Linux, Chrome OS, Android

#use-new-accept-language-header

Enable using the Google local NTP
Use the local New Tab page if Google is the default search engine. – Mac, Windows, Linux, Chrome OS

#use-google-local-ntp

Enable the OneGoogleBar on the local NTP
Show a OneGoogleBar on the local New Tab page if Google is the default search engine. – Mac, Windows, Linux, Chrome OS

#one-google-bar-on-local-ntp

Enable picture in picture.
Enable the picture in picture feature for videos. – Mac, Windows, Linux, Chrome OS

#enable-picture-in-picture

Navigation response using Mojo
Browser side navigation (aka PlzNavigate) is using blob URLs to deliver the body of the main resource to the renderer process. This flag replaces this mechanism by using a Mojo DataPipe. – Mac, Windows, Linux, Chrome OS, Android

#navigation-mojo-response

Experimental fullscreen exit UI
Displays experimental UI to allow mouse and touch input methods to exit fullscreen mode. – Windows, Linux, Chrome OS

#enable-experimental-fullscreen-exit-ui

Enable network service
Enables the network service, which makes network requests through a separate service. Note: most features don't work with this yet. – Mac, Windows, Linux, Chrome OS, Android

#network-service

Out of blink CORS
CORS handling logic is moved out of blink. – Mac, Windows, Linux, Chrome OS, Android

#out-of-blink-cors

Keep a renderer alive for keepalive fetch requests
Keep a render process alive when the process has a pending fetch request with `keepalive' specified. – Mac, Windows, Linux, Chrome OS, Android

#keep-alive-renderer-for-keepalive-requests

Use new ddljson API for Doodles
Enables the new ddljson API to fetch Doodles for the NTP. – Mac, Windows, Linux, Chrome OS, Android

#use-ddljson-api

Use the resource load scheduler
Uses the resource load scheduler in blink to schedule and throttle resource load requests. – Mac, Windows, Linux, Chrome OS, Android

#enable-resource-load-scheduler

AsyncImageDecoding
Enables asynchronous decoding of images from raster for web content – Mac, Windows, Linux, Chrome OS, Android

#enable-async-image-decoding

Capture page thumbnail on navigating away
Capture a page thumbnail (for use on the New Tab page) when navigating away from the current page, in addition to other times a thumbnail may be captured. – Mac, Windows, Linux, Chrome OS

#capture-thumbnail-on-navigating-away

Manual fallbacks for password manager forms filling
If enabled, then if user clicks on the password field on a form, popup might contain generation fallbacks or 'Show all saved passwords' fallback. – Mac, Windows, Linux, Chrome OS, Android

#enable-manual-fallbacks-filling

Enable Voice Search on the local NTP
Show a microphone for voice search on the local New Tab page if Google is the default search engine. – Mac, Windows, Linux, Chrome OS

#voice-search-on-local-ntp

Click to open embedded PDFs
When the PDF plugin is unavailable, show a click-to-open placeholder for embedded PDFs. – Mac, Windows, Linux, Chrome OS, Android

#click-to-open-pdf

Manual password saving.
Show the password manager icon when typing into a password filed. Clicking it allows to save the password without submitting the form. – Mac, Windows, Linux, Chrome OS

#enable-manual-password-saving

Remove usage of the deprecated GAIA sign-in endpoint
The Gaia sign-in endpoint used for full-tab sign-in page is deprecated. This flags controls wheter it should no longer be used during a sign-in flow. – Mac, Windows, Linux

#remove-deprecared-gaia-signin-endpoint

Enable doodles on the local NTP
Show doodles on the local New Tab page if Google is the default search engine. – Mac, Windows, Linux, Chrome OS

#doodles-on-local-ntp

Sound content setting
Enable site-wide muting in content settings and tab strip context menu. – Mac, Windows, Linux, Chrome OS, Android

#sound-content-setting

Enable ECMAScript 6 modules dynamic import
Enables ECMAScript 6 modules dynamic "import" syntax support in V8 and Blink. – Mac, Windows, Linux, Chrome OS, Android

#enable-module-scripts-dynamic-import

Use a snapshot to create V8 contexts.
Sets to use a snapshot to create V8 contexts in frame creation. – Mac, Windows, Linux, Chrome OS

#enable-v8-context-snapshot

Parallel downloading
Enable parallel downloading to accelerate download speed. – Mac, Windows, Linux, Chrome OS, Android

#enable-parallel-downloading

Password selection and eye icon in prompt
Show a password selector and an eye icon in prompt – Mac, Windows, Linux, Chrome OS

#enable-password-selection

HTML-based username detector
Use HTML-based username detector for the password manager. – Mac, Windows, Linux, Chrome OS, Android

#enable-html-base-username-detector

Enable new preconnect predictor
Enable the new implementation of preconnect and DNS preresolve. "Learning" means that only database construction is enabled, "Preconnect" enables both learning and preconnect and disables the existing implementation. "No preconnect" disables both implementations. – Mac, Windows, Linux, Chrome OS, Android

#enable-new-preconnect

Icons on Media Controls Overflow Menu
Displays icons on the overflow menu of the native media controls – Mac, Windows, Linux, Chrome OS, Android

#enable-overflow-icons-for-media-controls

Top Sites from Site Engagement
Enable Top Sites on the New Tab Page to be sourced and sorted using site engagement. – Mac, Windows, Linux, Chrome OS, Android

#top-sites-from-site-engagement

Enable NTLMv2 Authentication
Enable NTLMv2 HTTP Authentication. This disables NTLMv1 support. – Mac, Linux, Chrome OS, Android

#enable-ntlm-v2

Enable ECMAScript 6 modules import.meta.url
Enables ECMAScript 6 modules import.meta.url syntax support in V8 and Blink. – Mac, Windows, Linux, Chrome OS, Android

#enable-module-scripts-import-meta-url

Experimental tab controller.
Enable controller for highly experimental tab policies. – Windows, Linux

#experimental-tab-controller

Clipboard content setting
Enables a site-wide permission in the UI which controls access to the asynchronous clipboard web API – Mac, Windows, Linux, Chrome OS, Android

#clipboard-content-setting

New Media Controls
Enables the new style native media controls. – Mac, Windows, Linux, Chrome OS, Android

#enable-modern-media-controls

Enable network logging to file
Enables network logging to a file named netlog.json in the user data directory. The file can be imported into chrome://net-internals. – Mac, Windows, Linux, Chrome OS, Android

#enable-network-logging-to-file

Wheel Scroll Latching.
Wheel scroll latching enforces latching to a single element for the duration of a scroll sequence. – Mac, Windows, Linux, Chrome OS, Android

#enable-wheel-scroll-latching
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by RealNC » 03 Feb 2018, 06:48

(Split into new post because of the max character post limit.)
Also, please paste the entire contents of chrome://gpu into a code quote.
-- I need to know what your GPU is letting you do under Linux

Code: Select all

Note: To properly save this page, select the "Webpage, Complete" option in the Save File dialog.
Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Disabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Software only. Hardware acceleration disabled
Video Decode: Software only, hardware acceleration unavailable
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
disable_discard_framebuffer
disable_framebuffer_cmaa
force_cube_complete
init_gl_position_in_vertex_shader
init_vertex_attributes
pack_parameters_workaround_with_pack_buffer
scalarize_vec_and_mat_constructor_args
unpack_alignment_workaround_with_unpack_buffer
unpack_overlapping_rows_separately_unpack_buffer
use_virtualized_gl_contexts
Problems Detected
Accelerated video decode is unavailable on Linux: 137247
Disabled Features: accelerated_video_decode
Program link fails in NVIDIA Linux if gl_Position is not set: 286468
Applied Workarounds: init_gl_position_in_vertex_shader
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Linux NVIDIA drivers don't have the correct defaults for vertex attributes: 351528
Applied Workarounds: init_vertex_attributes
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
MakeCurrent is slow on Linux with NVIDIA drivers: 449150, 514510
Applied Workarounds: use_virtualized_gl_contexts
NVIDIA fails glReadPixels from incomplete cube map texture: 518889
Applied Workarounds: force_cube_complete
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
Framebuffer discarding can hurt performance on non-tilers: 570897
Applied Workarounds: disable_discard_framebuffer
Unpacking overlapping rows from unpack buffers is unstable on NVIDIA GL driver: 596774
Applied Workarounds: unpack_overlapping_rows_separately_unpack_buffer
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: rasterization
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Checker-imaging has been disabled via finch trial or the command line.
Disabled Features: checker_imaging
Version Information
Data exported	2/3/2018, 1:39:57 PM
Chrome version	Chrome/64.0.3282.119
Operating system	Linux 4.14.16-gentoo
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/5e944b2d79bce5f96dc35a05a76b03d65a6e9a0a/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/5e944b2d79bce5f96dc35a05a76b03d65a6e9a0a/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	2987f0fde973
2D graphics backend	Skia/64 713571f9afcf4b673812cd3b52bb5b17c107038b-
Command Line	/usr/bin/google-chrome-stable --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --flag-switches-begin --flag-switches-end
Driver Information
Initialization time	94
In-process GPU	false
Passthrough Command Decoder	false
Supports overlays	false
Sandboxed	true
GPU0	VENDOR = 0x10de, DEVICE= 0x17c8
Optimus	false
Optimus	false
AMD switchable	false
Driver vendor	Nvidia
Driver version	390.25
Driver date	
Pixel shader version	4.60
Vertex shader version	4.60
Max. MSAA samples	32
Machine model name	
Machine model version	
GL_VENDOR	NVIDIA Corporation
GL_RENDERER	GeForce GTX 980 Ti/PCIe/SSE2
GL_VERSION	4.6.0 NVIDIA 390.25
GL_EXTENSIONS	GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum
Disabled Extensions	GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor	NVIDIA Corporation
Window system binding version	1.4
Window system binding extensions	GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_import_context GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_swap_control_tear GLX_EXT_texture_from_pixmap GLX_EXT_buffer_age GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_no_error GLX_ARB_create_context_robustness GLX_NV_delay_before_swap GLX_EXT_stereo_tree GLX_EXT_libglvnd GLX_ARB_context_flush_control GLX_NV_robustness_video_memory_purge GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_NV_copy_image
Window manager	KWin
XDG_CURRENT_DESKTOP	KDE
Compositing manager	Yes
Direct rendering	Yes
Reset notification strategy	0x8261
GPU process crash count	0
System visual ID	33
RGBA visual ID	130
Compositor Information
Tile Update Mode	One-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRX_1010102	Software only
BGRA_8888	Software only
RGBA_F16	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Display(s) Information
Info	Display[25442668300734467] bounds=0,0 2560x1440, workarea=60,0 2500x1440, scale=1, external
Color space information	{primaries:INVALID, transfer:INVALID, matrix:INVALID, range:INVALID}
Bits per color component	8
Bits per pixel	24
Video Acceleration Information
Bonus exercise: See if any setting in chrome://gpu is automatically changing once you go above 75Hz.
I compared them both, and nothing relevant changed:

Code: Select all

$ diff -u gpu-120hz.txt gpu-60hz.txt
--- gpu-120hz.txt       2018-02-03 13:41:24.937117592 +0200
+++ gpu-60hz.txt        2018-02-03 13:42:12.908112913 +0200
@@ -58,7 +58,7 @@
 Checker-imaging has been disabled via finch trial or the command line.
 Disabled Features: checker_imaging
 Version Information
-Data exported  2/3/2018, 1:39:57 PM
+Data exported  2/3/2018, 1:41:54 PM
 Chrome version Chrome/64.0.3282.119
 Operating system       Linux 4.14.16-gentoo
 Software rendering list URL    https://chromium.googlesource.com/chromium/src/+/5e944b2d79bce5f96dc35a05a76b03d65a6e9a0a/gpu/config/software_rendering_list.json
@@ -67,7 +67,7 @@
 2D graphics backend    Skia/64 713571f9afcf4b673812cd3b52bb5b17c107038b-
 Command Line   /usr/bin/google-chrome-stable --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --extra-plugin-dir=/usr/lib64/nsbrowser/plugins --flag-switches-begin --flag-switches-end
 Driver Information
-Initialization time    94
+Initialization time    107
 In-process GPU false
 Passthrough Command Decoder    false
 Supports overlays      false
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by Chief Blur Buster » 03 Feb 2018, 16:00

Thank you!
Here is your problem:

Code: Select all

Rasterization: Software only. Hardware acceleration disabled
That's part of the problem.
Hardware rasterization is a mandatory pre-requisite for TestUFO VSYNC.

From a video signal concept, VSYNC is part of the art of rasterization, as VSYNC is the raster ("scan lines") below the bottom edge of the screen (or above top edge of the screen). Now we know this may be one piece of the problem.

The problem: What do we blame? Browser, window manager, or drivers....That's the question.

I now need to do a little more analysis, and many other projects take priority, but it may take a several weeks before I figure out WHERE in the chain the problem is happening, and then bother the correct people to fix it (or publish end-user instructions).

It's certainly happening outside of TestUFO -- what I don't currently know if it's the browser fault, driver fault, or window manager fault, or a combination of multiple. It takes only one weak link in the chain to make this totally fall apart.

Meanwhile,

--> Can you see if you can force-enable hardware rasterization?
chrome://flags/#enable-gpu-rasterization
Or launch chrome with the command line option: --force-gpu-rasterization

--> Failing that, try some Google-Fu ("Linux Chrome browser Rasterization Software only. Hardware acceleration disabled") and see if any comments or fixes appear. I've already done some basic Google Fu, which has told me how to tell you how to force GPU rasterization under Linux. But what's harder to figure out is why rasterization is disabled, or fixing rasterization bugs.

But first, try forcing GPU rasterization.
You might see your browser performance go up roughly 5x (or see CPU usage drop massively during web page loads) + your movies play much smoother in Chrome + TestUFO becomes silky + also gain VSYNC. Or your browser may just glitch or crash. Let me know what happens.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
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!

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by RealNC » 04 Feb 2018, 06:25

Chief Blur Buster wrote:Thank you!
Here is your problem:

Code: Select all

Rasterization: Software only. Hardware acceleration disabled
That's not it. I enabled it, and it didn't change anything. (Other than making the browser extremely slow to the point of completely freezing for a dozen seconds when trying to view large images.)
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by Chief Blur Buster » 04 Feb 2018, 15:20

Damn, that makes things much harder to trace.
At least, now I know what graphics card you are using.
A pretty popular NVIDIA card.

GL_VENDOR NVIDIA Corporation
GL_RENDERER GeForce GTX 980 Ti/PCIe/SSE2
GL_VERSION 4.6.0 NVIDIA 390.25

And the features that are modified in your Chrome are as follows:

Accelerated video decode is unavailable on Linux: 137247
Disabled Features: accelerated_video_decode
Program link fails in NVIDIA Linux if gl_Position is not set: 286468
Applied Workarounds: init_gl_position_in_vertex_shader
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Linux NVIDIA drivers don't have the correct defaults for vertex attributes: 351528
Applied Workarounds: init_vertex_attributes
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
MakeCurrent is slow on Linux with NVIDIA drivers: 449150, 514510
Applied Workarounds: use_virtualized_gl_contexts
NVIDIA fails glReadPixels from incomplete cube map texture: 518889
Applied Workarounds: force_cube_complete
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
Framebuffer discarding can hurt performance on non-tilers: 570897
Applied Workarounds: disable_discard_framebuffer
Unpacking overlapping rows from unpack buffers is unstable on NVIDIA GL driver: 596774
Applied Workarounds: unpack_overlapping_rows_separately_unpack_buffer
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: rasterization
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Checker-imaging has been disabled via finch trial or the command line.
Disabled Features: checker_imaging

However, none of them reveal anything further related to VSYNC capabilities. So...
I hate to put an extra workload on you, but would it be possible to make 6 screenshots (no rush, can do anytime):

(1) Screenshot of www.testufo.com/animation-time-graph and http://www.vsynctester.com (after a few seconds) at 60Hz
(2) Screenshot of www.testufo.com/animation-time-graph and http://www.vsynctester.com (after a few seconds) at highest stable Hz
(3) Screenshot of www.testufo.com/animation-time-graph and http://www.vsynctester.com (after a few seconds) at max Hz

I want to analyze the graph shapes of both, and I might be able to deduce if an unwanted "different timing mode" is occuring behind the scenes if the graphs changes dramatically in only one of the 3 steps above.

Telltale timing patterns that show up as funny graph waves/patterns that tells me of a subsystem behavior -- like a VSYNC system automatically detaching, or the telltale pattern of a low-resolution timer event instead of vsync event. If a clear unmistakable pattern occurs in one of them -- then this may help me narrow down which Linux subsystem is the culprit.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
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!

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Calling 120Hz+ Linux Users: TestUFO Works/Fail?

Post by RealNC » 05 Feb 2018, 08:31

Unfortunately, I can't test 75Hz anymore, as I don't have my previous monitor around anymore. My current one refuses to work at 75Hz. So I tested 60Hz and 165Hz.

60Hz
ImageImage

165Hz
ImageImage

The only strange thing I can see are the clockwork spikes at 60Hz. They appear at exact intervals. However, the animation is actually perfectly smooth without hiccups.

Other than that, the results actually look pretty much identical in other refresh rates as well (85Hz, 100Hz, 120Hz, 144Hz.) However, at 120Hz, even though the results look like stable 60FPS, there is a lot of stutter and hiccups. But less than previous Chrome versions. In previous versions, these timings were completely off (you'd get 50FPS at one moment, 67FPS at another.) So scrolling and videos at 120Hz is not as bad as it used to be. It's 60FPS, but at least the stuttering is reduced now.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

Post Reply