Pixelbook / ChromeOS Webgl MSAA Samples (gl.SAMPLES) always 0.
Reported by
dani...@lucidchart.com,
Dec 12
|
|||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; CrOS x86_64 11021.81.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 Platform: 11021.81.0 (Official Build) stable-channel eve Steps to reproduce the problem: This JSFiddle creates a context and reports its MSAA Sample count: https://jsfiddle.net/7hye5poa/1/ Notice that the sample count is always 0, despite changing the gpu-rasterization-msaa-sample-count. What is the expected behavior? MSAA should be enabled. The #gpu-rasterization-msaa-sample-count should be functional. What went wrong? MSAA does not appear to be enabled for WebGL contexts. Did this work before? N/A Does this work in other browsers? N/A Chrome version: 70.0.3538.110 Channel: n/a OS Version: 11021.81.0 Flash Version:
,
Dec 13
,
Dec 13
marcheu / dcastagna: could someone from the ChromeOS team take a look and see if there is a driver issue on this device? Thanks.
,
Dec 13
Isn't that because of CMAA?
,
Dec 13
Ah, that would make sense. My about:gpu doesn't show CMAA though, should it be there? Seems odd to return 0 instead of 1, but with CMAA there is physically only one sample per pixel AFAIK.
,
Dec 13
Thanks marcheu@ and kainino@ for looking at this. CMAA is on by default on Intel GPUs on ChromeOS with only a few exceptions (see src/gpu/config/gpu_driver_bug_list.json). The actual texture is a non-multisampled texture and I think querying GL_SAMPLES returns 0 for those, to distinguish them from multisampled renderbuffers with 1 sample. Submitter: this is basically per spec. What would you like to feature detect about the state of WebGL's back buffer in this case?
,
Dec 13
Thanks for the fast responses! CMAA is definitely what I'm looking at. Given that, I think GL_SAMPLES returning 0 makes sense here, as I can detect this situation and work around it. We can close this bug I think. I don't know much in this area, is CMAA instead of MSAA a performance optimization for cheaper hardware? Compare CMAA to MSAA (--disable_framebuffer_cmaa) for this animation on a Pixelbook: https://codepen.io/anon/pen/OrMpzz?editors=0010 With CMAA thin shapes have a tendency to disappear.
,
Dec 13
Linking to the CMAA issue. CMAA is an Intel technology that is cheaper than MSAA. You can read about it here: https://software.intel.com/en-us/articles/conservative-morphological-anti-aliasing-cmaa-update We could consider switching from CMAA to 4x MSAA on some hardware. https://crbug.com/768400#c33
,
Dec 13
+Yunchao and Yang from Intel as an FYI about CMAA's quality in certain situations. Submitter: have you tried allocating your own MSAA renderbuffers and working with them directly on this hardware, and then doing a final blit to WebGL's (non-antialiased) back buffer? If so is the performance acceptable?
,
Dec 13
AFAIK we'd have to update to WebGL2 to use multi-sampled renderbuffers. I did try editing several large documents with and without --disable_framebuffer_cmaa, and I didn't notice a significant difference in frame rate between the two. (But without CMAA, the visual experience is much better.) We're typically not GPU bound, so I suspect that approach would work if we really wanted to have tight control over antialiasing.
,
Dec 14
OK, I see. Thanks for the feedback. Please tell us if we need to provide some query to inform apps like yours of the antialiasing method of the back buffer. In the interim, per your suggestion above, closing as WontFix. |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by kainino@chromium.org
, Dec 13