Summary: | Can not detect VK_ERROR_OUT_OF_DATE_KHR or VK_SUBOPTIMAL_KHR when window resizing | ||
---|---|---|---|
Product: | Mesa | Reporter: | xu xing <xing.xu> |
Component: | Drivers/Vulkan/intel | Assignee: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Status: | RESOLVED FIXED | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | fdo-bugs, jason, xing.xu, yang.gu |
Version: | 19.1 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | angle_resize_binary_testcase |
Description
xu xing
2019-07-10 00:26:37 UTC
Took me a while to get angle to build (they still haven't realized that not all python are python2... what years is this??) Anyway, this test seems to be doing completely unrelated things, and is consistently failing on some EGL issue and can't even reach the Vulkan bit where I might see the relevant error: $ out/Release/angle_end2end_tests --gtest_filter=EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture 1 GPUs: 0 - Intel device id: 0x5917 Active GPU: 0 Optimus: false AMD Switchable: false Skipping tests using configuration ES3_OpenGLES because it is not available. Skipping tests using configuration ES3_1_OpenGLES because it is not available. Skipping tests using configuration ES2_OpenGLES because it is not available. Skipping tests using configuration ES1_OpenGLES because it is not available. Skipping tests using configuration ES2_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES3_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES3_1_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES2_OpenGLES_NoVirtual because it is not available. Skipping tests using configuration ES3_OpenGLES_NoVirtual because it is not available. Note: Google Test filter = EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from EGLSurfaceTest [ RUN ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture ../../src/tests/egl_tests/EGLSurfaceTest.cpp:338: Failure Expected equality of these values: minSize Which is: 1 height Which is: 64 [ FAILED ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture, where GetParam() = ES2_Vulkan_NoFixture (299 ms) [----------] 1 test from EGLSurfaceTest (299 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (299 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture, where GetParam() = ES2_Vulkan_NoFixture 1 FAILED TEST It would be useful to have a test that only tests the relevant stuff ;) Btw, could you give me an example of bad output you're seeing? (and good output in case it's not obvious) I'll be away for a week btw, so I probably won't reply until next Thursday, and I definitely won't have time to debug the EGL issue so that I can reach the Vulkan issue before then. Created attachment 144768 [details]
angle_resize_binary_testcase
Infact EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture is the right to verify this issue. Also, I attached the binary for you to reproduces. The pass logs on NV: :~/angle$ glxinfo | grep "OpenGL version" OpenGL version string: 4.6.0 NVIDIA 430.26 :~/angle$ ./out/Release/angle_end2end_tests --gtest_filter=EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture 1 GPUs: 0 - NVIDIA device id: 0x1C03 Driver Vendor: Nvidia Driver Version: 430.26 Active GPU: 0 Optimus: false AMD Switchable: false Skipping tests using configuration ES3_OpenGLES because it is not available. Skipping tests using configuration ES3_1_OpenGLES because it is not available. Skipping tests using configuration ES2_OpenGLES because it is not available. Skipping tests using configuration ES1_OpenGLES because it is not available. Skipping tests using configuration ES2_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES3_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES3_1_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES2_OpenGLES_NoVirtual because it is not available. Skipping tests using configuration ES3_OpenGLES_NoVirtual because it is not available. Note: Google Test filter = EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from EGLSurfaceTest [ RUN ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture [ OK ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture (285 ms) [----------] 1 test from EGLSurfaceTest (285 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (285 ms total) [ PASSED ] 1 test. The fail logs on Intel Graphics: angle$ glxinfo |grep "OpenGL version" OpenGL version string: 3.0 Mesa 19.1.1 angle$ ./out/Release/angle_end2end_tests --gtest_filter=EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture 1 GPUs: 0 - Intel device id: 0x412 Active GPU: 0 Optimus: false AMD Switchable: false Skipping tests using configuration ES3_OpenGLES because it is not available. Skipping tests using configuration ES3_1_OpenGLES because it is not available. Skipping tests using configuration ES2_OpenGLES because it is not available. Skipping tests using configuration ES1_OpenGLES because it is not available. Skipping tests using configuration ES2_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES3_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES3_1_OpenGLES_NoFixture because it is not available. Skipping tests using configuration ES2_OpenGLES_NoVirtual because it is not available. Skipping tests using configuration ES3_OpenGLES_NoVirtual because it is not available. Note: Google Test filter = EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from EGLSurfaceTest [ RUN ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture INTEL-MESA: warning: Haswell Vulkan support is incomplete Error = 3000, 12288 minSize = 1, height = 64 ../../src/tests/egl_tests/EGLSurfaceTest.cpp:340: Failure Expected equality of these values: minSize Which is: 1 height Which is: 64 [ FAILED ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture, where GetParam() = ES2_Vulkan_NoFixture (172 ms) [----------] 1 test from EGLSurfaceTest (172 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (172 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] EGLSurfaceTest.ResizeWindow/ES2_Vulkan_NoFixture, where GetParam() = ES2_Vulkan_NoFixture 1 FAILED TEST Fixed by: commit 6f880f128f9862a047a5ba543c2843e14517b1e6 Author: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Date: Mon Jul 15 09:01:20 2019 +0300 vulkan/wsi: update swapchain status on vkQueuePresent With the following chain of events : vkQueuePresent() <- Surface resize vkQueuePresent() We should be able to report SUBOPTIMAL or OUT_OF_DATE on the second vkQueuePresent() call. Currently we only look at X11 events in the vkAcquireNextImage() path so we're not able to report this. This change checks the queue of events and process any available ones to update the swapchain status. v2: Be consistent about reporting the current error state of the swapchain (Jason) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111097 Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> |
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.