Bug 111059

Summary: ANGLE DrawBuffersTest.Gaps/ES2_Vulkan test fails on Intel Ubuntu19.04
Product: Mesa Reporter: jchen10 <jie.a.chen>
Component: Drivers/Vulkan/intelAssignee: Caio Marcelo de Oliveira Filho <caio.oliveira>
Status: RESOLVED WORKSFORME QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: jason
Version: gitKeywords: bisected, regression
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: angle_end2end_tests
vkcmd dump
glsl shader
vulkanfo (Iris Pro 6200 Mesa 19.2.0-develgit-aa5dab27f96)

Description jchen10 2019-07-04 08:46:13 UTC
Created attachment 144698 [details]
angle_end2end_tests

Device: Mesa DRI Intel(R) Iris Pro 6200 (Broadwell GT3e)  (0x1622)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.2.0-develgit-9b0720c436b

To reproduce, simply extract the attachment and run "/angle_end2end_tests --gtest_filter=DrawBuffersTest.Gaps/ES2_Vulkan".

And you will see the failure below:

../../src/tests/gl_tests/DrawBuffersTest.cpp:195: Failure
Expected equality of these values:
  color
    Which is: Green
  angle::ReadColor(getWindowWidth() / 2, getWindowHeight() / 2)
    Which is: Transparent Black
index 1
[  FAILED  ] DrawBuffersTest.Gaps/ES2_Vulkan, where GetParam() = ES2_Vulkan (187 ms)



The same test can pass on Intel Win10, Nvidia Ubuntu.
Comment 1 jchen10 2019-07-04 08:48:45 UTC
Created attachment 144699 [details]
vkcmd dump
Comment 2 jchen10 2019-07-04 08:49:10 UTC
Created attachment 144700 [details]
glsl shader
Comment 3 Denis 2019-07-04 10:51:12 UTC
Hi, I tested on BDW gt2 and KBL systems (HD 5500 and HD 630) on mesa git
commit 0cc02c9ea6198d498d8cebad524c3875d2d692f0 (HEAD -> master, origin/master, origin/HEAD)

Note: Google Test filter = DrawBuffersTest.Gaps/ES2_Vulkan
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from DrawBuffersTest
[ RUN      ] DrawBuffersTest.Gaps/ES2_Vulkan
[       OK ] DrawBuffersTest.Gaps/ES2_Vulkan (183 ms)
[----------] 1 test from DrawBuffersTest (183 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (183 ms total)
[  PASSED  ] 1 test.

So could be related exactly to your GPU model - BDW gt3.
Comment 4 jchen10 2019-07-05 00:56:48 UTC
Thanks for the triage, Denis.
The bug was first found on an ANGLE's buildbot with the Intel HD 630. It runs Unbuntu 19.04 with Mesa 19.0.2. I can also reproduce it on my desktop with Iris Pro 6200. So It's kind of surprising you could not reproduce it. Probably there might be something different between us. Was you running Ubuntu 19.04? Anyway I will try to find a HD 630 to test with.
Comment 5 Jason Ekstrand 2019-07-05 01:49:26 UTC
Can you run vulkaninfo on both machines?  I suspect the passing machine has one heap and the failing machine has two.  It's based on the amount of RAM in the machine.  I suspect that ANGLE isn't respecting the requirements on memory types for vertex buffers which are required by the driver.
Comment 6 jchen10 2019-07-05 02:02:03 UTC
Created attachment 144708 [details]
vulkanfo (Iris Pro 6200 Mesa 19.2.0-develgit-aa5dab27f96)

I can only get that from my desktop. Refer to the attached log. Thanks!
Comment 7 Denis 2019-07-05 07:28:19 UTC
>It's kind of surprising you could not reproduce it. Probably there might be something different between us.
After filling few other bugs into BZ I re-checked this issue and found out, that this test fails on commit, found as "bad" for this issue => https://bugs.freedesktop.org/show_bug.cgi?id=111069


Note: Google Test filter = DrawBuffersTest.Gaps/ES2_Vulkan
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from DrawBuffersTest
[ RUN      ] DrawBuffersTest.Gaps/ES2_Vulkan
../../src/tests/gl_tests/DrawBuffersTest.cpp:195: Failure
Expected equality of these values:
  color
    Which is: Green
  angle::ReadColor(getWindowWidth() / 2, getWindowHeight() / 2)
    Which is: Transparent Black
index 1
[  FAILED  ] DrawBuffersTest.Gaps/ES2_Vulkan, where GetParam() = ES2_Vulkan (99 ms)
[----------] 1 test from DrawBuffersTest (99 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (99 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] DrawBuffersTest.Gaps/ES2_Vulkan, where GetParam() = ES2_Vulkan


So, my results for this test on KBL HW:

(this one is the most resent git mesa - mesa-git-04.07-vulkan)
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.2.0-devel (git-0cc02c9ea6)
PASSED

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 18.0.0 (git-dceb1ce807)
PASSED

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 18.3.0-devel (git-b3c6146925)
FAILED
Comment 8 Denis 2019-07-09 11:34:44 UTC
Side question btw, I have 2 laptops with different HW (one has 2 GPU's, another - only 1).

In both cases I got the same results (passed on mesa master and on mentioned in first comment commit).

So the question is - is there any flag, related to running test on specified gpu? (I pretty sure that I ran test exactly on intel gpu, because I simply didn't compile amd drivers, and they don't exist on exported pathes)

------------------------------------------
den@den-pc angle]$ DRI_PRIME=0 ./angle_end2end_tests --gtest_filter=Texture3DTestES3.DrawWithLevelsOutsideRangeWithInconsistentDimensions/ES3_OpenGL
2 GPUs:
  0 - Intel device id: 0x5916
  1 - AMD device id: 0x6604

Active GPU: 1

Optimus: false
AMD Switchable: true
------------------------------------------

On laptop with one GPU here is an output:
------------------------------------------
den@den-pc angle]$ DRI_PRIME=0 ./angle_end2end_tests >--gtest_filter=Texture3DTestES3.DrawWithLevelsOutsideRangeWithInconsistentDimensions/ES3_OpenGL
1 GPU:
  0 - Intel device id: 0x5916

Active GPU: 0
Comment 9 Denis 2019-07-09 11:36:59 UTC
sorry, used a wrong test to run, but still - the output is similar.
Correct one:


[den@den-pc angle]$ ./angle_end2end_tests --gtest_filter=DrawBuffersTest.Gaps/ES2_Vulkan
2 GPUs:
  0 - Intel device id: 0x5916
  1 - AMD device id: 0x6604

Active GPU: 1

Optimus: false
AMD Switchable: true
Comment 10 jchen10 2019-07-09 12:41:41 UTC
Thank you for looking into the issue, Denis.
It's not accurate in test log for the active GPU. You can simply ignore it. I am  kind of suspect now that the failure might be relevant to the Ubuntu 19.04. It's 100% reproducible with various versions of Mesa for me. Do you think the linux kernel version might matter as well?
Comment 11 Denis 2019-07-09 14:50:51 UTC
hm, to be honest, can't say.
What kernel do you have there? I will try live cd with 19.04

My current configurations are:

Ubuntu 18.04
5.1.2-050102-generic
Mesa 19.2.0-devel (git-a110a8090d)
vulkan apiVersion     = 0x401066  (1.1.102)


Manjaro
5.1.8-1-MANJARO
19.2.0-devel (git-0cc02c9ea6)
vulkan apiVersion     = 0x401066  (1.1.102)
Comment 12 jchen10 2019-07-10 02:04:19 UTC
My configurations are:

Ubuntu 18.04
4.15.0-52-generic
Mesa 18.2.8
HD Graphics 530


Ubuntu 19.04
5.0.0-17-generic
Mesa 19.0.2
Iris Pro 6200

Both Mesa and Kernel are the default ones with the distribution. It seems your linux kernel versions are newer.
Comment 13 Denis 2019-07-10 08:49:07 UTC
oh...
I saw that you had BRW GT3, but you wrote that you tested and on KBL
>ANGLE's buildbot with the Intel HD 630

In your last comment you mentioned SKL
>HD Graphics 530

I have laptop with this GPU, so will check and on it. Also I checked KBL (ubuntu 18.04) with kernel 4.15 - test passed on mesa master. 
So my next steps are:
1. boot into live cd with ubuntu 19.04 on KBL and test
2. check this issue on SKL laptop
Comment 14 Denis 2019-07-10 11:31:18 UTC
ok, providing my updates:

I had HD 520, not 530, but they are very close one to another, so:

-------------------------
Ubuntu 18.04
kernel 4.18
kernel 4.15 (both built from ukuu)

Result: the same as higher - mesa-git-master - Passed

-------------------------
Ubuntu 19.04 (live cd)
kernel 5.0.0 (default one)
mesa 19.0.2 - system - test FAILED
mesa-git-master - test PASSED


So I even don't know what I can check else :( and why I am getting different results from you.

Just to clarify, how do you test on custom mesa version? In my case, I am exporting LD_LIBRARY_PATH and VK_ICD_FILENAMES variables
Comment 15 jchen10 2019-07-10 12:12:10 UTC
Oops, I forgot to export VK_ICD_FILENAMES. I was only exporting LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH. Now It can pass on my Ubuntu 19.04 with mesa-master.
Comment 16 Denis 2019-07-10 12:54:45 UTC
Cool :) Closing then)

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.