deqp/functional/gles3/multisample.html fails on Linux NVidia Quadro 600 |
||||||||||
Issue descriptionTested with driver 367.57 367.57 failed: multisample.fbo_max_samples.num_samples_polygon: Failure: Number of distinct colors detected is lower than sample count+1 failed: multisample.fbo_max_samples.num_samples_line: Failure: Number of distinct colors detected is lower than sample count+1 failed: multisample.fbo_max_samples.depth: Failure: Number of distinct colors detected is lower than sample count+1
,
May 31 2017
The issue doesn't repro on a Pascal generation GPU. I didn't verify this beyond that yet, but I'd expect it to be fixed in all generations after Fermi. zmo, do you have a bit more information about this: What is the max sample count on Quadro 600 you're seeing? Could you attach a screenshot of the failing test so we can evaluate how much it's off from expected quality? It might be the most reasonable to work around the issue by clamping max samples to 4 on Fermi generation HW, or just leave this as WontFix if it's not affecting any newer GPU generations.
,
Jun 1 2017
The max sample is 64. Let me get some screenshot for you.
,
Jun 1 2017
,
Jun 1 2017
It seems that the test isn't actually able to handle as high sample counts as the Quadro driver supports. If you have 65 different gray levels between 0 and 255, at least two of them will be set apart by only 3. And the tolerance the test uses to check if two colors are unique is 3. So it can't detect as many unique colors as 64-sample antialiasing should generate. There are also other ways the test might be flawed for this high sample counts - the number of iterations it does may not be enough for example, depending on how the sampling pattern aligns with the geometry. I'll submit a patch to try to fix this by adjusting the tolerance depending on the sample count being tested. If this is not enough, we could try to increase the iteration count, or limit the maximum number of samples that the test tests to 32. If we can't cover more than 32 samples reliably in the test, we could also consider limiting max samples in the WebGL implementation to 16 or 32 - according to webglstats 99.6% of current systems don't support more samples than 16 anyway.
,
Jun 1 2017
First shot at fixing the test: https://github.com/KhronosGroup/WebGL/pull/2412 Mo, can you review that and verify if it's enough to make the test pass on Quadro?
,
Jun 5 2017
I verified, with Olli's patch to the test, deqp/functional/gles3/multisample.html now passes on my Linux NVidia (used to fail). Let me roll webgl conformance tests and remove the test expectation. Thanks Olli for getting to the bottom of this.
,
Jun 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f20319f1dbca0341bb7191e46dab578dc3d1c61c commit f20319f1dbca0341bb7191e46dab578dc3d1c61c Author: zmo <zmo@chromium.org> Date: Tue Jun 06 23:22:16 2017 Roll WebGL 9422979..331fe3a https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/9422979..331fe3a BUG=682815 TEST=bots TBR=kbr@chromium.org NOTRY=true 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/2924923002 Cr-Commit-Position: refs/heads/master@{#477459} [modify] https://crrev.com/f20319f1dbca0341bb7191e46dab578dc3d1c61c/DEPS [modify] https://crrev.com/f20319f1dbca0341bb7191e46dab578dc3d1c61c/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py [modify] https://crrev.com/f20319f1dbca0341bb7191e46dab578dc3d1c61c/content/test/gpu/gpu_tests/webgl_conformance_revision.txt
,
Jun 21 2017
I recently landed a fix for exposing non-conformant multisampling modes to ANGLE: https://chromium-review.googlesource.com/c/525515/ I'm still planning to add more test coverage for this to WebGL tests, but the issue should be fixed in the next ANGLE roll.
,
Jun 21 2017
Fantastic! Thanks Olli.
,
Jun 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d0db75d13114ecc183ef741853b4475fe8d132ac commit d0db75d13114ecc183ef741853b4475fe8d132ac Author: Yuly Novikov <ynovikov@chromium.org> Date: Thu Jun 22 18:23:32 2017 Roll ANGLE 12b0b39..579d8c7 https://chromium.googlesource.com/angle/angle.git/+log/12b0b39..579d8c7 BUG=chromium:727671,728226,chromium:682815,731089,chromium:697758 TBR=jmadill@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 Change-Id: Iccc5538b77641dce7ecfb9adb25930b9d916806b Reviewed-on: https://chromium-review.googlesource.com/545056 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Cr-Commit-Position: refs/heads/master@{#481610} [modify] https://crrev.com/d0db75d13114ecc183ef741853b4475fe8d132ac/DEPS
,
Jun 28 2017
Unfortunately, https://chromium-review.googlesource.com/525515 crashes on NVIDIA Shield TV, so I'm reverting it. https://build.chromium.org/p/chromium.gpu.fyi/builders/Android%20Release%20%28NVIDIA%20Shield%20TV%29/builds/1816 Stack Trace: RELADDR FUNCTION FILE:LINE v------> rx::nativegl_gl::GenerateTextureFormatCaps(rx::FunctionsGL const*, unsigned int) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/renderer/gl/renderergl_utils.cpp:135 0000000000119998 rx::nativegl_gl::GenerateCaps(rx::FunctionsGL const*, rx::WorkaroundsGL const&, gl::Caps*, gl::TextureCapsMap*, gl::Extensions*, gl::Version*) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/renderer/gl/renderergl_utils.cpp:224 00000000001027d4 rx::RendererGL::ensureCapsInitialized() const /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/renderer/gl/RendererGL.cpp:629 v------> rx::RendererGL::getNativeCaps() const /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/renderer/gl/RendererGL.cpp:636 0000000000100ec4 rx::RendererGL::RendererGL(rx::FunctionsGL const*, egl::AttributeMap const&) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/renderer/gl/RendererGL.cpp:177 00000000000e3900 rx::DisplayGL::initialize(egl::Display*) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/renderer/gl/DisplayGL.cpp:36 000000000011c8ac rx::DisplayAndroid::initialize(egl::Display*) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/renderer/gl/egl/android/DisplayAndroid.cpp:121 0000000000077b80 egl::Display::initialize() /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libANGLE/Display.cpp:452 000000000003a6e8 egl::Initialize(void*, int*, int*) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/libGLESv2/entry_points_egl.cpp:88 0000000000012958 EGLWindow::initializeDisplayAndSurface(OSWindow*) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/util/EGLWindow.cpp:235 000000000001249c EGLWindow::initializeGL(OSWindow*) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/util/EGLWindow.cpp:161 0000000000249394 angle::IsPlatformAvailable(angle::PlatformParameters const&) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/tests/test_utils/angle_test_instantiate.cpp:84 00000000000e0020 std::__ndk1::vector<angle::PlatformParameters, std::__ndk1::allocator<angle::PlatformParameters> > angle::FilterTestParams<angle::PlatformParameters>(angle::PlatformParameters const*, unsigned long) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/tests/test_utils/angle_test_instantiate.h:33 00000000000ddf7c (anonymous namespace)::gtest_AtomicCounterBufferTest_EvalGenerator_() /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/angle/src/tests/gl_tests/AtomicCounterBufferTest.cpp:48 00000000000e0a84 testing::internal::ParameterizedTestCaseInfo<(anonymous namespace)::AtomicCounterBufferTest>::RegisterTests() /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/googletest/src/googletest/include/gtest/internal/gtest-param-util.h:553 0000000000357ba4 testing::internal::ParameterizedTestCaseRegistry::RegisterTests() /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/googletest/src/googletest/include/gtest/internal/gtest-param-util.h:713 0000000000357b68 testing::internal::UnitTestImpl::RegisterParameterizedTests() /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/googletest/src/googletest/src/gtest.cc:2617 000000000035c780 testing::internal::UnitTestImpl::PostFlagParsingInit() /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/googletest/src/googletest/src/gtest.cc:4453 000000000035dbcc void testing::internal::InitGoogleTestImpl<char>(int*, char**) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/googletest/src/googletest/src/gtest.cc:5355 000000000034c508 void testing::internal::InitGoogleMockImpl<char>(int*, char**) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/third_party/googletest/src/googlemock/src/gmock.cc:131 0000000000249694 main /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/gpu/angle_end2end_tests_main.cc:26 v------> testing::android::RunTests(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, base::android::JavaParamRef<_jstring*> const&, base::android::JavaParamRef<_jstring*> const&, base::android::JavaParamRef<_jstring*> const&, base::android::JavaParamRef<_jobject*> const&, base::android::JavaParamRef<_jstring*> const&) /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/testing/android/native_test/native_test_launcher.cc:131 000000000035fbe0 Java_org_chromium_native_1test_NativeTest_nativeRunTests /b/c/b/Android_Release__NVIDIA_Shield_TV_/src/out/Release/gen/testing/android/native_test/native_test_jni_headers/testing/jni/NativeTest_jni.h:49 000000000084285c offset 0x622000 /data/app/org.chromium.native_test-1/oat/arm64/base.odex
,
Jun 28 2017
,
Jun 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/angle/angle/+/c8a8b84353340374173803ccff9d8635ff92d9c6 commit c8a8b84353340374173803ccff9d8635ff92d9c6 Author: Yuly Novikov <ynovikov@chromium.org> Date: Wed Jun 28 05:49:26 2017 Revert "Don't expose non-conformant multisampling modes on GL" This reverts commit 3cd0dd370f08e7126fe19b761206280c64f80cd1. Reason for revert: crashes on NVIDIA Shield TV https://build.chromium.org/p/chromium.gpu.fyi/builders/Android%20Release%20%28NVIDIA%20Shield%20TV%29/builds/1816 Original change's description: > Don't expose non-conformant multisampling modes on GL > > Some NVIDIA GL drivers expose non-conformant multisampling modes. The > conformance of multisampling modes can be queried using the extension > NV_internalformat_sample_query. Use it to filter out the > non-conformant modes from the modes that are exposed by ANGLE. > > The MAX_SAMPLES value and other similar values stored in caps also > need to be lowered to match the maximum number of samples exposed > for required formats. > > There seems to be an NVIDIA driver bug related to querying > STENCIL_INDEX8 multisample format. Work around this by querying > DEPTH24_STENCIL8 instead. > > There's also some confusion around whether RGB9_E5 should be > renderable. Once the floating point texture extensions got rolled > into the core GL spec, it was eventually made clear that RGB9_E5 > is intended not to be renderable. The extension specs that predate > float textures in the core spec do suggest that it would be > renderable, but in practice drivers that advertise the extension > strings don't reliably implement RGB9_E5 as renderable. Solve this > by disabling it as a renderable format and adding an explanatory > comment. > > BUG=chromium:682815 > TEST=angle_end2end_tests, > dEQP-GLES31.functional.state_query.internal_format.renderbuffer.* > > Change-Id: I2218e3a23ea7b48a0615fea77a91897dc7d5fe9e > Reviewed-on: https://chromium-review.googlesource.com/525515 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> TBR=geofflang@chromium.org,jmadill@chromium.org,cwallez@chromium.org,oetuaho@nvidia.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:682815 Change-Id: I1ebdf52c3fab1526f5a561ac4c8555e305ef2243 Reviewed-on: https://chromium-review.googlesource.com/551164 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/renderer/gl/FunctionsGL.cpp [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/formatutils.h [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/renderer/gl/FunctionsGL.h [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/Context.cpp [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/formatutils.cpp [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/renderer/gl/formatutilsgl.cpp [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/renderer/gl/renderergl_utils.cpp [modify] https://crrev.com/c8a8b84353340374173803ccff9d8635ff92d9c6/src/libANGLE/Caps.cpp
,
Jul 5 2017
The following revision refers to this bug: https://chromium.googlesource.com/angle/angle/+/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43 commit 50c562de05fb9b7800e47c56ee9b4b0cd1a5da43 Author: Olli Etuaho <oetuaho@nvidia.com> Date: Wed Jul 05 16:12:28 2017 Re-land: Don't expose non-conformant multisampling modes on GL Re-landing with a fallback for failed internal format queries to work around issue seen on Shield TV. Also fixed wrong handling of integer RG formats in isRequiredRenderbufferFormat. Some NVIDIA GL drivers expose non-conformant multisampling modes. The conformance of multisampling modes can be queried using the extension NV_internalformat_sample_query. Use it to filter out the non-conformant modes from the modes that are exposed by ANGLE. The MAX_SAMPLES value and other similar values stored in caps also need to be lowered to match the maximum number of samples exposed for required formats. There seems to be an NVIDIA driver bug related to querying STENCIL_INDEX8 multisample format. Work around this by querying DEPTH24_STENCIL8 instead. There's also some confusion around whether RGB9_E5 should be renderable. Once the floating point texture extensions got rolled into the core GL spec, it was eventually made clear that RGB9_E5 is intended not to be renderable. The extension specs that predate float textures in the core spec do suggest that it would be renderable, but in practice drivers that advertise the extension strings don't reliably implement RGB9_E5 as renderable. Solve this by disabling it as a renderable format and adding an explanatory comment. BUG=chromium:682815 TEST=angle_end2end_tests, dEQP-GLES31.functional.state_query.internal_format.renderbuffer.* Change-Id: I727f03045a1534d6764b571e6d839243705d25b3 Reviewed-on: https://chromium-review.googlesource.com/551957 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/renderer/gl/FunctionsGL.cpp [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/formatutils.h [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/renderer/gl/FunctionsGL.h [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/Context.cpp [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/formatutils.cpp [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/renderer/gl/formatutilsgl.cpp [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/renderer/gl/renderergl_utils.cpp [modify] https://crrev.com/50c562de05fb9b7800e47c56ee9b4b0cd1a5da43/src/libANGLE/Caps.cpp
,
Jul 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b891953a093ee5ab2f78df398322e6cf59c7c2e6 commit b891953a093ee5ab2f78df398322e6cf59c7c2e6 Author: Geoff Lang <geofflang@chromium.org> Date: Mon Jul 10 16:25:36 2017 Roll ANGLE 27a6063..70c95fa https://chromium.googlesource.com/angle/angle.git/+log/27a6063..70c95fa BUG= chromium:739448 , chromium:731324 ,:angleproject:1644,chromium:682815 TBR=jmadill@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 Change-Id: I9ed559801bfbb7cada2fef863096047f33437703 Reviewed-on: https://chromium-review.googlesource.com/565051 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Cr-Commit-Position: refs/heads/master@{#485290} [modify] https://crrev.com/b891953a093ee5ab2f78df398322e6cf59c7c2e6/DEPS
,
Sep 14
Cleaning up some old bugs, this bug already has a fix in place.
,
Nov 9
conformance2/rendering/multisampling-fragment-evaluation.html is still failing on Linux Nvidia and the test suppression lists this bug number. Some more investigation needs to happen here.
,
Nov 9
Hmm. Olli's fix was in ANGLE, so was this fixed on the passthrough command decoder only?
,
Nov 27
,
Nov 27
,
Dec 6
,
Dec 6
Adding James Helferty (jhelferty@nvidia.com) to CC for WebGL conformance issues on Nvidia GPUs.
,
Jan 16
,
Jan 17
(6 days ago)
https://www.khronos.org/registry/webgl/sdk/tests/conformance2/rendering/multisampling-fragment-evaluation.html Just some observations: Works on Windows Chrome/OpenGL and Chrome/D3D11, GTX 1080, public driver 416.34 Works on Android Shield TV public 7.2.2 TODO: Check on Linux, Check on Quadro Specifically Quadro 600 newest available public driver: Version: R375 U11 (377.83) WHQL Release Date: 2018.1.18
,
Jan 17
(6 days ago)
Thanks Kimmo for confirming. We'll attempt to re-enable this test everywhere. |
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by zmo@chromium.org
, Jan 19 2017