Summary: | ANGLE BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL fails on Intel Ubuntu19.04 | ||
---|---|---|---|
Product: | Mesa | Reporter: | jchen10 <jie.a.chen> |
Component: | Drivers/DRI/i965 | Assignee: | Jason Ekstrand <jason> |
Status: | RESOLVED FIXED | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | xing.xu |
Version: | git | Keywords: | bisected, regression |
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | angle_end2end_tests |
"./angle_end2end_tests --gtest_filter=MaskedScissoredClearTest.Test/ES*_OpenGL*" also fails: [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_d, where GetParam() = (ES2_OpenGL, 0, 1, 0, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_ds, where GetParam() = (ES2_OpenGL, 0, 1, 1, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_ds_mask_s, where GetParam() = (ES2_OpenGL, 0, 1, 2, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cd, where GetParam() = (ES2_OpenGL, 1, 1, 0, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds, where GetParam() = (ES2_OpenGL, 1, 1, 1, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds_mask_s, where GetParam() = (ES2_OpenGL, 1, 1, 2, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cd_mask_c, where GetParam() = (ES2_OpenGL, 2, 1, 0, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds_mask_c, where GetParam() = (ES2_OpenGL, 2, 1, 1, false) [ FAILED ] MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds_mask_cs, where GetParam() = (ES2_OpenGL, 2, 1, 2, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_d, where GetParam() = (ES3_OpenGL, 0, 1, 0, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_ds, where GetParam() = (ES3_OpenGL, 0, 1, 1, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_ds_mask_s, where GetParam() = (ES3_OpenGL, 0, 1, 2, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cd, where GetParam() = (ES3_OpenGL, 1, 1, 0, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds, where GetParam() = (ES3_OpenGL, 1, 1, 1, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds_mask_s, where GetParam() = (ES3_OpenGL, 1, 1, 2, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cd_mask_c, where GetParam() = (ES3_OpenGL, 2, 1, 0, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds_mask_c, where GetParam() = (ES3_OpenGL, 2, 1, 1, false) [ FAILED ] MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds_mask_cs, where GetParam() = (ES3_OpenGL, 2, 1, 2, false) Also reproducible on HD Graphics 630. Is this a regression? it looks like. I am on the middle of bisection now. Glance check showed that 17.1.1 version passed this test, and fails started from 18.0.0 Will provide result as soon as finish bisection Here is a bisected commit: 0ae9ce0f29ea1973b850a4e6c6cae8606973036e is the first bad commit commit 0ae9ce0f29ea1973b850a4e6c6cae8606973036e Author: Jason Ekstrand <jason.ekstrand@intel.com> Date: Sat Aug 19 20:31:03 2017 -0700 i965/clear: Quantize the depth clear value based on the format In f9fd976e8adba733b08d we changed the clear value to be stored as an isl_color_value. This had the side-effect same clear value check is now happening directly between the f32[0] field of the isl_color_value and ctx->Depth.Clear. This isn't what we want for two reasons. One is that the comparison happens in floating point even for Z16 and Z24 formats. Worse than that, ctx->Depth.Clear is a double so, even for 32-bit float formats, we were comparing as doubles and not floats. This means that the test basically always fails for anything other than 0.0f and 1.0f. This caused a slight performance regression in Lightsmark 2008 because it was using a depth clear value of 0.999 which can't be stored in a 32-bit float so we were doing unneeded resolves. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Bugzilla: https://bugs.freedesktop.org/101678 Cc: "17.2" <mesa-stable@lists.freedesktop.org> src/mesa/drivers/dri/i965/brw_clear.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) And here is a fix which should fix an issue: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1329 As an original patch was related to benchmark, maybe it makes sense to re-run that bench one more time (current patch was tested on our CI branch) Should be fixed by the following commit in master: commit a86eccfb78092493b3999849db62613838951756 Author: Sergii Romantsov <sergii.romantsov@globallogic.com> Date: Fri Jul 12 16:46:45 2019 +0300 i965/clear: clear_value better precision Test-case with depth-clear 0.5 and format MESA_FORMAT_Z24_UNORM_X8_UINT fails due inconsistent clear-value of 0.4999997. Maybe its better to improve? CC: Jason Ekstrand <jason.ekstrand@intel.com> Fixes: 0ae9ce0f29ea (i965/clear: Quantize the depth clear value based on the format) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111113 Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com> Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> *** Bug 111170 has been marked as a duplicate of this bug. *** |
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.
Created attachment 144769 [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=BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL", then you can see the failure below: 1 GPUs: 0 - Intel device id: 0x1622 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 = BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from BlitFramebufferTest [ RUN ] BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL ../../src/tests/gl_tests/BlitFramebufferANGLETest.cpp:1266: Failure Expected equality of these values: GLColor::red Which is: Red angle::ReadColor(0, 0) Which is: Green ../../src/tests/gl_tests/BlitFramebufferANGLETest.cpp:1267: Failure Expected equality of these values: GLColor::red Which is: Red angle::ReadColor(255, 0) Which is: Green ../../src/tests/gl_tests/BlitFramebufferANGLETest.cpp:1268: Failure Expected equality of these values: GLColor::red Which is: Red angle::ReadColor(0, 255) Which is: Green ../../src/tests/gl_tests/BlitFramebufferANGLETest.cpp:1269: Failure Expected equality of these values: GLColor::red Which is: Red angle::ReadColor(255, 255) Which is: Green ../../src/tests/gl_tests/BlitFramebufferANGLETest.cpp:1270: Failure Expected equality of these values: GLColor::red Which is: Red angle::ReadColor(127, 127) Which is: Green [ FAILED ] BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL, where GetParam() = ES3_OpenGL (98 ms) [----------] 1 test from BlitFramebufferTest (98 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (98 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL, where GetParam() = ES3_OpenGL 1 FAILED TEST