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

Issue 621031 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocking:
issue 295792



Sign in to add a comment

WebGL 2.0 deqp/data/gles3/shaders/linkage.html test fails

Project Member Reported by qiankun....@intel.com, Jun 17 2016

Issue description

What steps will reproduce the problem?
(1) open chrome with command line: --enable-unsafe-es3-apis
(2) open url: https://www.khronos.org/registry/webgl/sdk/tests/deqp/data/gles3/shaders/linkage.html?webglVersion=2


What is the expected output?
All tests pass.

What do you see instead?
Some tests fail.
failed: linkage.uniform.block.layout_qualifier_mismatch_1: expected linking to fail, but passed.
failed: linkage.uniform.block.layout_qualifier_mismatch_2: expected linking to fail, but passed.
failed: linkage.uniform.block.layout_qualifier_mismatch_3: expected linking to fail, but passed.
failed: linkage.uniform.block.layout_qualifier_mismatch_5: expected linking to fail, but passed.



For layout_qualifier_mismatch_1, layout_qualifier_mismatch_2, they passed on Linux with Intel mesa.
For layout_qualifier_mismatch_3, it failed both on Linux with Intel mesa and Linux with nVidia.
The above test cases require layout qualifier in all shaders should be same. But I didn't see such limitation in GLSL spec 3.30.6.

For layout_qualifier_mismatch_5, I think there is a bug in ANGLE. After translation, layout qualifier of a uniform block member is moved to total uniform block. And layout qualifier is not the same as before moving.

See the shader translated by ANGLE:

Before translation:
#version 300 es
uniform Block
{
	layout(row_major) uniform highp mat3 val;
};
in highp vec4 dEQP_Position;
out mediump float res;
void main()
{
	res = val[0][1];
	gl_Position = dEQP_Position;
}

#version 300 es
uniform Block
{
	layout(column_major) uniform highp mat3 val;
};
precision mediump float;
layout(location = 0) out mediump vec4 dEQP_FragColor;
in mediump float res;
void main()
{
	dEQP_FragColor = vec4(val[2], 1.0);
}


After translation
#version 450
layout(shared, column_major) uniform webgl_3003f1e2955cde38{
mat3 webgl_d29633f34eb1c59e;
} ;
in vec4 webgl_4e70e556c0899ad0;
out float webgl_4ba25cf9b5244b88;
void main(){
(gl_Position = vec4(0.0, 0.0, 0.0, 0.0));
(webgl_4ba25cf9b5244b88 = webgl_d29633f34eb1c59e[0][1]);
(gl_Position = webgl_4e70e556c0899ad0);
}

#version 450
layout(shared, column_major) uniform webgl_3003f1e2955cde38{
mat3 webgl_d29633f34eb1c59e;
} ;
layout(location = 0) out vec4 webgl_341844a501096ec4;
in float webgl_4ba25cf9b5244b88;
void main(){
(webgl_341844a501096ec4 = vec4(webgl_d29633f34eb1c59e[2], 1.0));
}
 
Owner: cwallez@chromium.org
Status: Started (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/84954988ad266c11cacdfd716bf09e3d7910ec7b

commit 84954988ad266c11cacdfd716bf09e3d7910ec7b
Author: Corentin Wallez <cwallez@chromium.org>
Date: Tue Jul 12 19:42:18 2016

ShaderVars: add isSameInterfaceBlockFieldAtLinkTime

This will be used by Chromium to check for interface blocks mismatches.

BUG= 621031 

Change-Id: Ia6cc19e5d7b2a5c33af558d65b87885a6b72cea3
Reviewed-on: https://chromium-review.googlesource.com/359607
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>

[modify] https://crrev.com/84954988ad266c11cacdfd716bf09e3d7910ec7b/src/compiler/translator/ShaderVars.cpp
[modify] https://crrev.com/84954988ad266c11cacdfd716bf09e3d7910ec7b/include/GLSLANG/ShaderLang.h
[modify] https://crrev.com/84954988ad266c11cacdfd716bf09e3d7910ec7b/include/GLSLANG/ShaderVars.h

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 13 2016

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

commit cd38fb65da3ae6cacf0aab32971b92f9b4697031
Author: cwallez <cwallez@chromium.org>
Date: Wed Jul 13 15:11:49 2016

Roll ANGLE 9585a78..8495498

https://chromium.googlesource.com/angle/angle.git/+log/9585a78..8495498

BUG= 621031 , 627417 

TBR=geofflang@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.linux:linux_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2148803002
Cr-Commit-Position: refs/heads/master@{#405153}

[modify] https://crrev.com/cd38fb65da3ae6cacf0aab32971b92f9b4697031/DEPS

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 13 2016

Labels: merge-merged-2795
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd38fb65da3ae6cacf0aab32971b92f9b4697031

commit cd38fb65da3ae6cacf0aab32971b92f9b4697031
Author: cwallez <cwallez@chromium.org>
Date: Wed Jul 13 15:11:49 2016

Roll ANGLE 9585a78..8495498

https://chromium.googlesource.com/angle/angle.git/+log/9585a78..8495498

BUG= 621031 , 627417 

TBR=geofflang@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.linux:linux_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2148803002
Cr-Commit-Position: refs/heads/master@{#405153}

[modify] https://crrev.com/cd38fb65da3ae6cacf0aab32971b92f9b4697031/DEPS

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 13 2016

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

commit e4feb0d482d7b795afe2257ef8f304c4c1428151
Author: cwallez <cwallez@chromium.org>
Date: Wed Jul 13 20:10:03 2016

program_manager: detect interface block mismatches

This fixes the deqp/data/gles3/shaders/linkage.html tests that were
checking that compilation fail if interface blocks have different
layouts.

BUG= 621031 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2147663002
Cr-Commit-Position: refs/heads/master@{#405256}

[modify] https://crrev.com/e4feb0d482d7b795afe2257ef8f304c4c1428151/gpu/command_buffer/service/program_manager.cc
[modify] https://crrev.com/e4feb0d482d7b795afe2257ef8f304c4c1428151/gpu/command_buffer/service/program_manager.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 16 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/163fa52193706ae87ece150f955861909e7c675f

commit 163fa52193706ae87ece150f955861909e7c675f
Author: Qiankun Miao <qiankun.miao@intel.com>
Date: Fri Jul 15 09:38:04 2016

Workaround interpolation qualifier mismatching

Centroid implies smooth when doing translation. But the Intel Mesa
driver considers centroid and smooth are different interpolation
qualifiers which makes shaders fail compilation.

This patch adds smooth at the front of centroid at translation step. And
it makes linkage.varying.rules.differing_interpolation_2 test in WebGL
2.0 dEQP test pass.

BUG= 621031 
TEST=WebGL 2.0 deqp/data/gles3/shaders/linkage.html

Change-Id: I8f0944846b5244b21c526ae95a7ce37c1504efb7
Reviewed-on: https://chromium-review.googlesource.com/360638
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>

[modify] https://crrev.com/163fa52193706ae87ece150f955861909e7c675f/src/compiler/translator/BaseTypes.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 18 2016

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

commit 0db21f9f2bc7bee9c40c64c5ad192297d32a567c
Author: jmadill <jmadill@chromium.org>
Date: Mon Jul 18 18:45:41 2016

Roll ANGLE 4c32feb..5bc93c4

https://chromium.googlesource.com/angle/angle.git/+log/4c32feb..5bc93c4

BUG= 621031 , 628052 , 612066 
TBR=cwallez@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2158003002
Cr-Commit-Position: refs/heads/master@{#406049}

[modify] https://crrev.com/0db21f9f2bc7bee9c40c64c5ad192297d32a567c/DEPS

There is still an assert being triggered when checking for packing restriction of varyings when the shader uses structs as varyings. Working on it.
Project Member

Comment 9 by bugdroid1@chromium.org, Jul 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/e58e1416a5fa2f66173917a9cbcb21b252060d76

commit e58e1416a5fa2f66173917a9cbcb21b252060d76
Author: Corentin Wallez <cwallez@chromium.org>
Date: Mon Jul 18 20:40:46 2016

ShCheckVariablesWithinPackingLimits add sh::ShaderVariable overload

This overload doesn't take a stripped down version of the variable
information, which makes it possible to handle varying structs
correctly by flattening them as individual variables.

BUG= 621031 

Change-Id: I367629fce3d17dd7e1f876c5937eb37f3d97c7f4
Reviewed-on: https://chromium-review.googlesource.com/361460
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>

[modify] https://crrev.com/e58e1416a5fa2f66173917a9cbcb21b252060d76/include/GLSLANG/ShaderLang.h
[modify] https://crrev.com/e58e1416a5fa2f66173917a9cbcb21b252060d76/src/compiler/translator/VariableInfo.h
[modify] https://crrev.com/e58e1416a5fa2f66173917a9cbcb21b252060d76/src/compiler/translator/VariableInfo.cpp
[modify] https://crrev.com/e58e1416a5fa2f66173917a9cbcb21b252060d76/src/compiler/translator/VariablePacker.cpp
[modify] https://crrev.com/e58e1416a5fa2f66173917a9cbcb21b252060d76/src/compiler/translator/ShaderLang.cpp
[modify] https://crrev.com/e58e1416a5fa2f66173917a9cbcb21b252060d76/src/tests/compiler_tests/VariablePacker_test.cpp
[modify] https://crrev.com/e58e1416a5fa2f66173917a9cbcb21b252060d76/src/compiler/translator/VariablePacker.h

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 19 2016

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

commit b5eca3ee3d161241434148dc04000723635405d9
Author: cwallez <cwallez@chromium.org>
Date: Tue Jul 19 17:11:15 2016

Roll ANGLE 5bc93c4..e58e141

https://chromium.googlesource.com/angle/angle.git/+log/5bc93c4..e58e141

BUG= 621031 ,None

TBR=geofflang@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2160273002
Cr-Commit-Position: refs/heads/master@{#406298}

[modify] https://crrev.com/b5eca3ee3d161241434148dc04000723635405d9/DEPS

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 19 2016

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

commit 76b5713818d5a400b9f49076a73a904bfc439b56
Author: cwallez <cwallez@chromium.org>
Date: Tue Jul 19 17:25:58 2016

Revert of Roll ANGLE 5bc93c4..e58e141 (patchset #1 id:1 of https://codereview.chromium.org/2160273002/ )

Reason for revert:
Fails compilation on Android

Original issue's description:
> Roll ANGLE 5bc93c4..e58e141
>
> https://chromium.googlesource.com/angle/angle.git/+log/5bc93c4..e58e141
>
> BUG= 621031 ,None
>
> TBR=geofflang@chromium.org
>
> TEST=bots
>
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
>
> Committed: https://crrev.com/b5eca3ee3d161241434148dc04000723635405d9
> Cr-Commit-Position: refs/heads/master@{#406298}

TBR=geofflang@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 621031 ,None

Review-Url: https://codereview.chromium.org/2161133002
Cr-Commit-Position: refs/heads/master@{#406306}

[modify] https://crrev.com/76b5713818d5a400b9f49076a73a904bfc439b56/DEPS

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 19 2016

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

commit 12bbbc3a5b81d582700072356b7c6fd716bfea33
Author: cwallez <cwallez@chromium.org>
Date: Tue Jul 19 19:47:54 2016

Roll ANGLE 5bc93c4..d9fe55f

https://chromium.googlesource.com/angle/angle.git/+log/5bc93c4..d9fe55f

BUG= 621031 ,None

TBR=geofflang@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2158343003
Cr-Commit-Position: refs/heads/master@{#406352}

[modify] https://crrev.com/12bbbc3a5b81d582700072356b7c6fd716bfea33/DEPS

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 20 2016

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

commit d138862def50d5228bf2403bc301b41b4312a5de
Author: cwallez <cwallez@chromium.org>
Date: Wed Jul 20 00:03:47 2016

program_manager::CheckPacking, sends full sh::ShaderVariable

CheckVaryingPacking used to send stripped-down varying information to
ShCheckVariablesWithinPackingLimits but this was incorrect for GLSL ES
3 that supports structure as varyings. Make use of a new
ShCheckVariablesWithinPackingLimits entry point that takes the full
sh::ShaderVariable information.

This fixes an assert in the deqp/data/gles3/shaders/linkage.html WebGL
2 tests.

BUG= 621031 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2158793006
Cr-Commit-Position: refs/heads/master@{#406421}

[modify] https://crrev.com/d138862def50d5228bf2403bc301b41b4312a5de/gpu/command_buffer/service/program_manager.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 20 2016

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

commit 2a0e012ae47116af81fd5cb5144288160f2adedf
Author: cwallez <cwallez@chromium.org>
Date: Wed Jul 20 16:13:40 2016

WebGL2 CTS: remove suppression of linkage.html

TBR=zmo@chromium.org
BUG= 621031 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2156133002
Cr-Commit-Position: refs/heads/master@{#406573}

[modify] https://crrev.com/2a0e012ae47116af81fd5cb5144288160f2adedf/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py

Project Member

Comment 15 by bugdroid1@chromium.org, Aug 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/aae1e4ae8225ff47e38d133ce6d8e358d4706d90

commit aae1e4ae8225ff47e38d133ce6d8e358d4706d90
Author: Corentin Wallez <cwallez@chromium.org>
Date: Mon Aug 01 13:44:09 2016

ShCheckVariablesWithinPackingLimits: remove deprecated overload

BUG= 621031 

Change-Id: Ib4cdd88ecd58f617813a91379a8b8b518fba149b
Reviewed-on: https://chromium-review.googlesource.com/364910
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>

[modify] https://crrev.com/aae1e4ae8225ff47e38d133ce6d8e358d4706d90/src/compiler/translator/ShaderLang.cpp
[modify] https://crrev.com/aae1e4ae8225ff47e38d133ce6d8e358d4706d90/include/GLSLANG/ShaderLang.h

Status: Fixed (was: Started)
Project Member

Comment 17 by bugdroid1@chromium.org, Aug 3 2016

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

commit 7d14391a9db97aba4f2d03da2e453e11f7014dcc
Author: cwallez <cwallez@chromium.org>
Date: Wed Aug 03 16:58:51 2016

Roll ANGLE 5655b84..9c721c6

https://chromium.googlesource.com/angle/angle.git/+log/5655b84..9c721c6

BUG= 621031 

TBR=geofflang@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2210493003
Cr-Commit-Position: refs/heads/master@{#409545}

[modify] https://crrev.com/7d14391a9db97aba4f2d03da2e453e11f7014dcc/DEPS

Sign in to add a comment