Bug 109655 - [HSW BYT IVB Gen9] dEQP-GLES31.functional.copy_image tests fail on 32-bit builds
Summary: [HSW BYT IVB Gen9] dEQP-GLES31.functional.copy_image tests fail on 32-bit builds
Status: NEW
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Eleni Maria Stea
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords: bisected
Depends on:
Blocks:
 
Reported: 2019-02-17 00:55 UTC by Mark Janes
Modified: 2019-03-12 13:24 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
qpa output for failing test (4.82 KB, text/plain)
2019-02-17 00:55 UTC, Mark Janes
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Janes 2019-02-17 00:55:34 UTC
Created attachment 143386 [details]
qpa output for failing test

Enabling OES_copy_image extension triggered 32 bit dEQP failures which were detected by Mesa i965 CI:

248f2e788860240ab84fc10f0d18332c34712b85
Author:     Eleni Maria Stea <estea@igalia.com>

i965: Enabled the OES_copy_image extension on Gen 7 GPUs

OES_copy_image extension was disabled on Gen7 due to the lack of support
for ETC2 images. Enabled it back. (Kenneth Graunke)

v2:
  - Removed the blank lines in the comments above OES_copy_image and
  OES_texture_view extensions in intel_extensions.c (Nanley Chery)

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>


Failures can be seen in Mesa daily builds:
https://mesa-ci.01.org/mesa_master_daily/builds/4791/group/63a9f0ea7bb98050796b649e85481845
https://mesa-ci.01.org/mesa_master_daily/builds/4791/results/217060914

EG:
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer
  ( see attachment for QPA output )
Comment 1 Eleni Maria Stea 2019-02-17 17:04:26 UTC
Thank you for reporting it, I will get a look.
Comment 2 Eleni Maria Stea 2019-02-18 08:36:25 UTC
I just tried to reproduce the failure on HSW and the test passes. Also, I hadn't seen any failures on jenkins when I tested the branch some days ago.

I have the extension enabled, GLES v. 3.1, and I run the test like that:
./glcts -n dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer

and I see this output:
Test run totals:
  Passed:        1/1 (100.0%)

Is this the correct way to reproduce it? Should I do something different?

Thank you in advance,
Eleni
Comment 3 Eleni Maria Stea 2019-02-18 11:42:02 UTC
Apologies, I didn't see at once that the failure comes from the 32-bit build :)
I'll take a look again.
Comment 4 Eleni Maria Stea 2019-02-26 18:36:50 UTC
I've built mesa (-m32) and ran the test but the test you mentioned seems to pass locally: 

./glcts -n dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer

Test case 'dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer'..
  Pass (Pass)

I also ran the dEQP-GLES31.functional.copy_image.* tests without failures:

Test run totals:
Passed:        8363/12395 (67.5%)
Failed:        0/12395 (0.0%)
Not supported: 4032/12395 (32.5%)
Warnings:      0/12395 (0.0%)

Do you still see the failures?
Any advice on how I could reproduce it?
Comment 5 Mark Janes 2019-02-27 23:12:28 UTC
I'm not sure what to tell you...  I just built deqp/mesa/drm in both 32 and 64 bit variants, into side-by-side directories on the same hsw machine:

64bit:
/tmp/build_root/m64/opt/deqp/modules/gles31$ MESA_GLES_VERSION_OVERRIDE=3.1 INTEL_PRECISE_TRIG=1 vblank_mode=0 LIBGL_DRIVERS_PATH=/tmp/build_root/m64/lib/dri:/tmp/build_root/m64/lib64/dri:/tmp/build_root/m64/lib/x86_64-linux-gnu/dri:/usr/lib/dri:/usr/lib64/dri:/usr/lib/x86_64-linux-gnu/dri LD_LIBRARY_PATH=/tmp/build_root/m64/lib:/tmp/build_root/m64/lib64:/tmp/build_root/m64/lib/x86_64-linux-gnu:/usr/lib:/usr/lib64:/usr/lib/x86_64-linux-gnu DISPLAY=:0  ./deqp-gles31 -n dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer
Writing test log into TestResults.qpa
dEQP Core git-d377f3be7af942c3c0181b8ba9a35c32f39c0974 (0xd377f3be) starting..
  target implementation = 'X11 EGL'
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.

Test case 'dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer'..
  Pass (Pass)

DONE!

Test run totals:
  Passed:        1/1 (100.0%)
  Failed:        0/1 (0.0%)
  Not supported: 0/1 (0.0%)
  Warnings:      0/1 (0.0%)

------------------------------------------------------------------
32-bit:
/tmp/build_root/m32/opt/deqp/modules/gles31$ MESA_GLES_VERSION_OVERRIDE=3.1 INTEL_PRECISE_TRIG=1 vblank_mode=0 LIBGL_DRIVERS_PATH=/tmp/build_root/m32/lib/dri:/tmp/build_root/m32/lib/i386-linux-gnu/dri:/usr/lib/dri:/usr/lib/i386-linux-gnu/dri LD_LIBRARY_PATH=/tmp/build_root/m32/lib:/tmp/build_root/m32/lib/i386-linux-gnu:/usr/lib:/usr/lib/i386-linux-gnu DISPLAY=:0  ./deqp-gles31 -n dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer
Writing test log into TestResults.qpa
dEQP Core git-d377f3be7af942c3c0181b8ba9a35c32f39c0974 (0xd377f3be) starting..
  target implementation = 'X11 EGL'
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.

Test case 'dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer'..
  Fail (Image comparison failed.)

DONE!

Test run totals:
  Passed:        0/1 (0.0%)
  Failed:        1/1 (100.0%)
  Not supported: 0/1 (0.0%)
  Warnings:      0/1 (0.0%)

You could probably reproduce the build configuration by running i965 CI automation locally.  Let me know if that is something you want to do.
Comment 6 Eleni Maria Stea 2019-02-28 08:06:01 UTC
Sure, I'd like to, if you could share some instructions, that would be great.

I tried again using mesa/drm built with -m32 in CC, CXX, CFLAGS, CXXFLAGS in a 32bit schroot, I've built the cts with target x11_egl and I used the same env variables you used:

INTEL_PRECISE_TRIG=1 vblank_mode=0
MESA_GLES_VERSION_OVEERRIDE=3.1

Then I ran:
$ ./deqp-gles31 -n dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer
Writing test log into TestResults.qpa
dEQP Core git-306b2d31946519d84f9960ecbc661d6df3ec2d08 (0x306b2d31) starting..
  target implementation = 'X11 EGL'
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.

Test case 'dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer'..
  Pass (Pass)

DONE!

Test run totals:
  Passed:        1/1 (100.0%)
  Failed:        0/1 (0.0%)
  Not supported: 0/1 (0.0%)
  Warnings:      0/1 (0.0%)


There must be something different in the configuration I am missing when I run the tests. :/
Comment 7 Paul 2019-02-28 10:01:04 UTC
Hi guys!
I've tried to run tests with both variants (32 and 64 bit) - both tests are successfully passed.
I've tested on Haswell (Intel® HD Graphics 4600) on Manjaro with 4.20.10 Kernel.

Mark, maybe you have some additional preconditionals or smth else?
Comment 8 Lionel Landwerlin 2019-02-28 10:55:20 UTC
Could it be one of those annoying 32bit kernel bug that got fixed in i915?

Mark: What version of the kernel are you running?
Comment 9 Mark Janes 2019-02-28 17:33:38 UTC
4.19.0-1-amd64 #1 SMP Debian 4.19.12-1 (2018-12-22) x86_64 GNU/Linux
Comment 10 Andrés Gómez García 2019-03-01 08:57:15 UTC
I cannot reproduce either. Also crosscompiling, using a docker i386 image in a x86_64 host

This is the host:

$ uname -srvmo
Linux 4.19.0-2-amd64 #1 SMP Debian 4.19.16-1 (2019-01-17) x86_64 GNU/Linux
Comment 11 Eleni Maria Stea 2019-03-01 10:12:44 UTC
My host:
4.18.0-2-amd64 #1 SMP Debian 4.18.10-1 (2018-09-30) i686 GNU/Linux

GPU: Haswell Desktop x86/MMX/SSE2/Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)

if helps.
Comment 12 Andrés Gómez García 2019-03-05 15:18:08 UTC
(In reply to Andrés Gómez García from comment #10)
> I cannot reproduce either. Also crosscompiling, using a docker i386 image in
> a x86_64 host
> 
> This is the host:
> 
> $ uname -srvmo
> Linux 4.19.0-2-amd64 #1 SMP Debian 4.19.16-1 (2019-01-17) x86_64 GNU/Linux

Ugly bug :(

I've created another docker i386 image *without crosscompiling* and I'm now able to reproduce running on the same host machine with the same x86_64 kernel.

You can try to reproduce just with this command (notice that the image is ~9G so it will take some time to download):

$ docker run --privileged --rm -t -e DISPLAY=unix:0.0 -v /tmp/.X11-unix:/tmp/.X11-unix igalia/mesa:i386-vk-gl-cts /bin/bash -c "cd ~/VK-GL-CTS/_build/external/openglcts/modules; MESA_GLES_VERSION_OVERRIDE=3.1 INTEL_PRECISE_TRIG=1 vblank_mode=0 ./glcts --deqp-case=dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer"
Comment 13 Mark Janes 2019-03-05 17:47:48 UTC
Sorry I didn't have time to look into this more yesterday, but I'm glad that you were finally able to reproduce it.
Comment 14 Andrés Gómez García 2019-03-06 09:25:53 UTC
(In reply to Andrés Gómez García from comment #12)

[...]

> $ docker run --privileged --rm -t -e DISPLAY=unix:0.0 -v
> /tmp/.X11-unix:/tmp/.X11-unix igalia/mesa:i386-vk-gl-cts /bin/bash -c "cd
> ~/VK-GL-CTS/_build/external/openglcts/modules;
> MESA_GLES_VERSION_OVERRIDE=3.1 INTEL_PRECISE_TRIG=1 vblank_mode=0 ./glcts
> --deqp-case=dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.
> rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer"

FWIW, taking this image and testing in KBL and SKL I get the same result so it may not be limited just to HSW but just a pre-existent problem that is exposed now in HSW as the extension has been enabled (?). Maybe the problem is in the test.
Comment 15 Andrés Gómez García 2019-03-06 11:59:35 UTC
Just to check again, I added into that image a crosscompiled mesa and VK-GL-CTS and I can also reproduce.

You can try to reproduce just with this command:

$ docker run --privileged --rm -t -e DISPLAY=unix:0.0 -v /tmp/.X11-unix:/tmp/.X11-unix igalia/mesa:i386-cross-vk-gl-cts /bin/bash -c "cd ~/VK-GL-CTS/_build_cross/external/openglcts/modules; MESA_GLES_VERSION_OVERRIDE=3.1 INTEL_PRECISE_TRIG=1 vblank_mode=0 LIBGL_DRIVERS_PATH=/root/mesa-install_cross/lib/i386-linux-gnu/dri LD_LIBRARY_PATH=/root/mesa-install_cross/lib/i386-linux-gnu/ ./glcts --deqp-case=dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer"
Comment 16 Mark Janes 2019-03-06 17:20:53 UTC
These tests were disabled due to 103746.  Sadly, they were not re-enabled when that bug was closed.

I'll re-enable those tests in the i965 CI to see what the current results are.
Comment 17 Mark Janes 2019-03-06 23:41:30 UTC
I can confirm that this failure occurs on SKL and later.  My initial write-up was incorrect because the tests were disabled.

I agree that it is possible that we are looking at a test bug.  From the Google program office: 

  "The deadline for raising issues with the mustpass tests is *March 25*."
Comment 18 Lionel Landwerlin 2019-03-07 15:16:55 UTC
(In reply to Mark Janes from comment #9)
> 4.19.0-1-amd64 #1 SMP Debian 4.19.12-1 (2018-12-22) x86_64 GNU/Linux

As far as I can tell 4.19.12 should have all the fixes we need, so it seems to rule out the kernel.
Comment 19 Mark Janes 2019-03-07 16:46:26 UTC
removing regression tag, because this test failed on other platforms before Eleni enabled it on gen 7.5 and earlier.
Comment 20 Mark Janes 2019-03-08 22:47:00 UTC
Eleni: perhaps the fastest way to identify this as a bug in the test suite would be to test on non-intel hardware.

Do you have any that could be used for this?
Comment 21 Eleni Maria Stea 2019-03-11 09:22:39 UTC
AFAIK we have some nvidia machines, I will try to set up an i386 environment in one of them and see if I can reproduce it. If it's reproducible then it's definitely in the test, but if not... I think that we can't say for sure it's on mesa.. :) I'll get a look.
Comment 22 Andrés Gómez García 2019-03-11 13:36:50 UTC
nVIDIA fails or doesn't support the whole "functional.copy_image.mixed" subset of tests, no matter i386 or X86_64:

--



$ ./glcts --deqp-case=dEQP-GLES31.functional.copy_image.mixed.*
Writing test log into TestResults.qpa
dEQP Core git-3a471d260788b3465d714707e1b5c5bd4bc9591b (0x3a471d26) starting..
  target implementation = 'X11 EGL'

Test case 'dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba8_etc2_eac.texture2d_to_texture2d'..
  Fail (glCopyImageSubData failed.: glGetError() returned GL_INVALID_OPERATION at es31fCopyImageTests.cpp:1120)

[...]

Test case 'dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_12x12_khr_rgba32i.texture3d_to_texture2d'..
  NotSupported (TEXTURE_3D target requires HDR astc support. at es31fCopyImageTests.cpp:1905)

[...]

Test case 'dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rg32i.cubemap_to_renderbuffer'..
  Fail (glCopyImageSubData failed.: glGetError() returned GL_INVALID_OPERATION at es31fCopyImageTests.cpp:1120)

DONE!

Test run totals:
  Passed:        0/3584 (0.0%)
  Failed:        2800/3584 (78.1%)
  Not supported: 784/3584 (21.9%)
  Warnings:      0/3584 (0.0%)

--

$ glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1070/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 418.43
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 418.43
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 418.43
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

--

$ glxinfo | grep OES_copy_image
    GL_OES_compressed_ETC1_RGB8_texture, GL_OES_copy_image, GL_OES_depth24, 

--

$ glxinfo | grep ARB_ES3_compatibility
    GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility, 
    GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility,
Comment 23 Andrés Gómez García 2019-03-12 13:24:49 UTC
radeonsi passes the test(s) in i386 and X86_64.


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.