WebGL test conformance/glsl/misc/fragcolor-fragdata-invariant.html fails on Mac |
|||||||
Issue descriptionThis 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).
,
May 18 2018
,
May 18 2018
,
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
,
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
,
Jun 27 2018
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));
}
,
Jun 27 2018
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).
,
Jun 28 2018
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).
,
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.
,
Oct 9
,
Nov 27
,
Nov 27
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by kbr@chromium.org
, May 18 2018