Closed Bug 1333466 Opened 9 years ago Closed 7 years ago

Consider allowing sites to read WEBGL_debug_renderer_info strings

Categories

(Core :: Graphics: CanvasWebGL, defect, P5)

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: michael, Unassigned)

Details

(Keywords: feature, Whiteboard: [gfx-noted])

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 Steps to reproduce: From a search, I see there are a few older tickets about this topic but since they were all dormant I thought it would be OK to re-open the topic. My studio (Active Theory) develops WebGL experiences and we rely on WEBGL_debug_renderer_info in other browsers to detect the user's GPU and determine how to scale the visual fidelity to their hardware. To keep things reliable, we check if the string reports an amd or nvidia GPU. If so, we dial the settings for higher fidelity. If not, we assume an integrated GPU and keep effects and fidelity lighter. There is a bit more nuance in our approach for detecting other cases but this is the naive explanation for brevity. This approach has been a massive success for us compared to a few years ago when we would try to run performance tests. Performance tests failed us for a few reasons: - It adds atleast 500ms to the load time of a site to run semi-reliably - The results could vary wildly on the same machine - Chicken or egg scenario: We need to know what settings we wanted before we could initialize our scenes. For example, how many vertices in a buffer for a particle system. By reading WEBGL_debug_renderer_info we are able to avoid all of these issues and deliver a successful product. A real world example is pottermore.com/patronus which reaches a huge audience. In Firefox, the info is generic so we have to assume users do not have an integrated GPU and deliver a lower quality experience than necessary in the case of a user having adequate hardware. It also works to hurt us in the case where a user is using very old hardware such as Intel HD Graphics 4000 or less. We would normally detect this hardware and dial back fidelity to the maximum. Would love to have an open conversation about this topic. Thanks!
Component: Untriaged → Canvas: WebGL
Product: Firefox → Core
Flags: needinfo?(jgilbert)
As noted in the other ticket https://bugzilla.mozilla.org/show_bug.cgi?id=1245928 I have run a survey among industry participants http://codeflow.org/entries/2016/feb/10/webgl_debug_renderer_info-extension-survey-results of 27 responses. - 44% of the surveyed are currently using this extension. - 74% plan on using this extension - 85% believe browsers should implement this extension 16 replies where given to the [intended] use of this extension (may include multiple uses) are: - 75% diagnostics: assessing issues and their impact - 69% workarounds: using the information to work around bugs - 18% analytics: collecting statistical information what hardware users have - 37% performance: using the information to assess performance and provide alternate renderpaths and reasonable defaults - 6% vram: adjusting ram consumption based on the GPU information The survey includes all participants responses below each statistic. Personally I'm planning on a benchmarking site/statistics, and browsers which neither implement debug_renderer_info nor disjoint_timer_query will be barred from running the benchmark, because any submitted result would be near meaningless.
Also note it appears that Firefox is still not implementing WEBGL_debug_renderer_info on WebGL2 contexts, I consider this a bug.
Keywords: feature
OS: Unspecified → All
Priority: -- → P5
Hardware: Unspecified → All
Whiteboard: [gfx-noted]
Version: 51 Branch → Trunk
(In reply to Florian Bösch from comment #2) > Also note it appears that Firefox is still not implementing > WEBGL_debug_renderer_info on WebGL2 contexts, I consider this a bug. We expose it on WebGL2 everywhere it's exposed for WebGL1.
Flags: needinfo?(jgilbert)
It's not enabled in the FF51 I d/l this morning.
It's disingenuous to flat-out dismiss the opinions of survey taking companies, including the Mozilla WebGL2 partner playcanvas. Developers are a constituent that browser makers serve. Ignore your constituencies at your own peril.
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.