Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebGL Renderer on WebKit Browser #2864

Closed
newohkla opened this issue Jul 7, 2020 · 7 comments · Fixed by #3050
Closed

WebGL Renderer on WebKit Browser #2864

newohkla opened this issue Jul 7, 2020 · 7 comments · Fixed by #3050
Assignees

Comments

@newohkla
Copy link

newohkla commented Jul 7, 2020

Currently the default WebGL unmasked renderer property for each of the browsers is the following:

Chromium: Google SwiftShader
Firefox: null
WebKit: Apple GPU

The Chromium and Firefox values are consistent with that of a headless (non-human operable) browser.
The WebKit result matches the result from iPhones (human-operable) when in headless mode.

WebGL renderer information is routinely used for debugging:
http://codeflow.org/entries/2016/feb/10/webgl_debug_renderer_info-extension-survey-results/

Is the dev team open to replacing the value returned from this extension to something unique to indicate that the browser is operating in headless mode? For example, "Apple Software Renderer" is used by Apple Emulators to distinguish it from a true Apple GPU.

Screenshots from headless mode on webglreport.com are attached.

example-chromium
example-firefox
example-webkit

@aslushnikov
Copy link
Collaborator

(+cc @yury-s who has a better understanding on what's going on here)

@yury-s
Copy link
Member

yury-s commented Jul 8, 2020

@newohkla are you only concerned about headless mode or would like to see a different value in headful browser as well? What do you think would be an appropriate value for headless webkit?

@newohkla
Copy link
Author

newohkla commented Jul 8, 2020

I believe the headful version has access to and uses the GPU, so I am only concerned about the headless browser. I think an appropriate value for the headless webkit browser would be "Playwright Software Renderer" to indicate the true rendering engine of the browser.

@aslushnikov
Copy link
Collaborator

aslushnikov commented Jul 8, 2020

For example, "Apple Software Renderer" is used by Apple Emulators to distinguish it from a true Apple GPU.

Very convincing argument. We'll address this.

@newohkla
Copy link
Author

Is there an update on this issue?

@yury-s
Copy link
Member

yury-s commented Jul 20, 2020

@newohkla sorry for the silence, we'd like to resolve this issue one way or the other. Given that Playwright itself doesn't change the underlying WebGL implementation in WebKit I'm hesitant rewriting current values with something playwright-specific. Would it make sense to return actual underlying strings that we get from the platform (and not override them inside WebKit) in case of Playwright? E.g. on my Linux box it would be

VMware, Inc.
llvmpipe (LLVM 10.0.0, 256 bits)

instead of

Apple Inc.
Apple GPU

@newohkla
Copy link
Author

@yury-s It would make sense to return the underlying string instead of "Apple Inc."/"Apple GPU" in all cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants