New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 844311 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocking:
issue 662644


Participants' hotlists:
webgl-conformance-all


Sign in to add a comment

WebGL test conformance/glsl/misc/fragcolor-fragdata-invariant.html fails on Mac

Project Member Reported by yunchao...@intel.com, May 18 2018

Issue description

This webgl test was added by Olli recently. It fails on multiple Mac platforms (Intel and ATI at least according to bots, and It seems that we don't run webgl cts on Mac NVIDIA bot). 


 

Comment 1 by kbr@chromium.org, May 18 2018

We do run the WebGL 1.0 and 2.0 conformance suites on the Mac NVIDIA retina bots; see https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20FYI%20Retina%20Release%20(NVIDIA) linked from https://ci.chromium.org/p/chromium/g/chromium.gpu.fyi/console .

However, due to capacity constraints, we don't run the WebGL 2.0 tests on the mac_optional_gpu_tests_rel tryserver, nor the WebGL 1.0 tests on mac_chromium_rel_ng. Unfortunately this means that currently the only way to see whether a new test is going to fail on the Mac NVIDIA Retina bot is to land the conformance roll and then follow up with more patches. Sorry about this. There are instructions for adding new trybots at https://chromium.googlesource.com/chromium/src/+/master/docs/gpu/gpu_testing_bot_details.md#How-to-add-a-new-manually_triggered-trybot but someone would have to volunteer to add it.

Comment 2 by kbr@chromium.org, May 18 2018

Labels: OS-Mac
Components: Blink>WebGL
Project Member

Comment 4 by bugdroid1@chromium.org, May 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5

commit f5ab530969f2873f35dbacb496da4eaf8ac8f4b5
Author: Yunchao He <yunchao.he@intel.com>
Date: Sat May 26 01:08:55 2018

Roll WebGL 7c0541d..198d637

https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/7c0541d..198d637

Bug: 609883, 611943, 611945, 844311,  844308 , 844311, 844349
Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_angle_rel_ng;luci.chromium.try:win_angle_rel_ng
Change-Id: I0bd4d7409796861e6a4d73c2afc3b054d61a5a2b
Reviewed-on: https://chromium-review.googlesource.com/1063564
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562091}
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/DEPS
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/f5ab530969f2873f35dbacb496da4eaf8ac8f4b5/content/test/gpu/gpu_tests/webgl_conformance_revision.txt

Project Member

Comment 5 by bugdroid1@chromium.org, May 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/958775d9e7e174394faf2656a7030b8f4ad347d9

commit 958775d9e7e174394faf2656a7030b8f4ad347d9
Author: Yunchao He <yunchao.he@intel.com>
Date: Mon May 28 16:13:48 2018

Suppress WebGL tests on multiple OSes

TBR=kbr@chromium.org, zmo@chromium.org

Bug:  844308 , 844311, 847217, 847222
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ied61bc487c493596140c651a1c926378f3c144d9
Reviewed-on: https://chromium-review.googlesource.com/1075295
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562275}
[modify] https://crrev.com/958775d9e7e174394faf2656a7030b8f4ad347d9/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/958775d9e7e174394faf2656a7030b8f4ad347d9/content/test/gpu/gpu_tests/webgl_conformance_expectations.py

Comment 6 Deleted

The chromium log on mac is as the following on macos:
--original-shader--
 
precision mediump float;

 
invariant gl_FragColor;
invariant gl_FragData;

void main()
{
    gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
}
--translated-shader--
#version 410
out vec4 webgl_FragColor;
invariant gl_FragColor;
invariant gl_FragData;
void main(){
(webgl_FragColor = vec4(0.0, 0.0, 0.0, 0.0));
(webgl_FragColor = vec4(0.0, 1.0, 0.0, 1.0));
}

--info-log--
ERROR: 0:3: Cannot retroactivly qualify undeclared identifier 'gl_FragColor'
ERROR: 0:4: Cannot retroactivly qualify undeclared identifier 'gl_FragData' 


The test case can pass on windows, but the translated shader removed invariant of its shader.
#version 450
out vec4 webgl_FragColor;
void main(){
(webgl_FragColor = vec4(0.0, 0.0, 0.0, 0.0));
(webgl_FragColor = vec4(0.0, 1.0, 0.0, 1.0));
}

Comment 8 by kbr@chromium.org, Jun 27 2018

Cc: ynovikov@chromium.org
There are conflicts in the handling of the invariant qualifier between the desktop OpenGL version that's supported on macOS, and OpenGL ES 3.0 on which WebGL 2.0 is based.

We worked on this topic at length 1+ years ago and the only workable solution was to completely erase the invariant qualifier on macOS during shader translation. That's why it's eliminated in the translated shaders.

I haven't looked at this test in detail so don't know what it requires. In general the browser must perform the validation required by OpenGL ES 3.0, but during shader translation may have to erase the invariant qualifiers (breaking the intent of the shader, but at least allowing it to compile and run, even if slightly incorrectly).

Ken, if I understand this issue correctly, we can not support invariant qualifier on MacOS, and we have already eliminated the qualifier during translation for Windows, shall we remove this feature from WebGL 2.0 spec and explicitly state that invariant qualifier is not supported in WebGL 2.0, due to the facts? Or this is not a critical issue, just let it be?

The interesting thing is that invariant qualifier can be supported in GLSL 410 spec, even though it is not actually supported in MacOS (with OpenGL 4.1).

Comment 10 by kbr@chromium.org, Jun 28 2018

Let's leave it in the spec. It's not a critical issue, and if developers absolutely require the feature, they might be able to get their shaders to work correctly on non-Mac platforms.

Cc: -oetu...@nvidia.com
Blocking: 662644
Labels: webgl-conformance

Sign in to add a comment