Closed
Bug 1290333
Opened 9 years ago
Closed 9 years ago
[WebGL2] Fix conformance test - drawingbuffer-static-canvas-test.html crash
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
RESOLVED
FIXED
mozilla52
People
(Reporter: daoshengmu, Assigned: daoshengmu)
Details
Attachments
(1 file, 1 obsolete file)
This happens in Windows 8 x64 opt / Windows 8 x64 debug try-server.
Log:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=eae0056ed5ee
TEST-UNEXPECTED-FAIL | dom/canvas/test/webgl-conf/generated/test_2_conformance__canvas__drawingbuffer-static-canvas-test.html | application terminated with exit code 1
PROCESS-CRASH | dom/canvas/test/webgl-conf/generated/test_2_conformance__canvas__drawingbuffer-static-canvas-test.html | application crashed [@ nvoglv64.dll + 0xb0fac6]
TEST-UNEXPECTED-FAIL | leakcheck | default process: missing output line for total leaks!
Assertion failure: [GFX1]: Out of sync D3D11 devices in HandleError, 0, at c:\builds\moz2_slave\try-w64-d-00000000000000000000\build\src\obj-firefox\dist\include\mozilla/gfx/Logging.h:509
TEST-UNEXPECTED-FAIL | dom/canvas/test/webgl-mochitest/test_capture.html | application terminated with exit code 1
1289761 Intermittent dom/canvas/test/webgl-mochitest/test_capture.html | application crashed [@ mozilla::gfx::Log<1,mozilla::gfx::CriticalLogger>::WriteLog(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)]
1284705 Intermittent dom/canvas/test/test_capture.html | application crashed [@ mozilla::layers::TextureClient::Lock(mozilla::layers::OpenMode)]
1285785 Intermittent dom/canvas/test/test_capture.html | application timed out after 330 seconds with no output after Assertion failure: mIsLocked, at /builds/slave/m-in-m64-d-0000000000000000000/build/src/gfx/layers/client/TextureClient.cpp:444
Show / Hide more
PROCESS-CRASH | dom/canvas/test/webgl-mochitest/test_capture.html | application crashed [@ mozilla::gfx::Log<1,mozilla::gfx::CriticalLogger>::WriteLog(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)]
1289761 Intermittent dom/canvas/test/webgl-mochitest/test_capture.html | application crashed [@ mozilla::gfx::Log<1,mozilla::gfx::CriticalLogger>::WriteLog(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &)]
1284705 Intermittent dom/canvas/test/test_capture.html | application crashed [@ mozilla::layers::TextureClient::Lock(mozilla::layers::OpenMode)]
1285785 Intermittent dom/canvas/test/test_capture.html | application timed out after 330 seconds with no output after Assertion failure: mIsLocked, at /builds/slave/m-in-m64-d-0000000000000000000/build/src/gfx/layers/client/TextureClient.cpp:444
Show / Hide more
TEST-UNEXPECTED-FAIL | leakcheck | default process: missing output line for total leaks!
Return code: 1
Assignee | ||
Updated•9 years ago
|
Assignee: nobody → dmu
Summary: WebGL2] Fix conformance test - drawingbuffer-static-canvas-test.html crash in Windows 8 → [WebGL2] Fix conformance test - drawingbuffer-static-canvas-test.html crash in Windows 8
Assignee | ||
Comment 1•9 years ago
|
||
It will occur nvogl.dll crash at GLContext::IsFramebufferComplete (https://dxr.mozilla.org/mozilla-central/source/gfx/gl/GLScreenBuffer.cpp#949) when the framebuffer size changes to 16384 x 16384 in WebGL2.
Both GL_MAX_RENDERBUFFER_SIZE in WebGL 1 and 2 are 16384 x 16384. It is good in WebGL 1 because gl.MAX_VIEWPORT_DIMS is 32767 x 32767 in WebGL 1. After resize (divided by two) calculation, 32767 will be 16383.
However, gl.MAX_VIEWPORT_DIMS in WebGL 2 is 16384 x 16384. If we make mMaxRenderbufferSize be GL_MAX_RENDERBUFFER_SIZE - 1, it can be resolved.
Assignee | ||
Comment 2•9 years ago
|
||
I am not sure this is a good approach for getting operating system version. Probably, we have better way. Currently, I modify nsIGfxInfo.idl to help me can use OperatingSystemVersion(). There is an another problem that I need to discuss. If I follow-up this approach, I should make all different platform os version convert to OperatingSystem to be more readable?
Attachment #8778189 -
Flags: feedback?(jgilbert)
Assignee | ||
Comment 3•9 years ago
|
||
Assignee | ||
Comment 4•9 years ago
|
||
Btw, I have tried different versions of NV driver but it is still happened. Therefore, I think it is OS dependent issue.
Comment hidden (mozreview-request) |
Assignee | ||
Updated•9 years ago
|
Attachment #8778189 -
Flags: feedback?(jgilbert)
Comment hidden (mozreview-request) |
Comment 7•9 years ago
|
||
mozreview-review |
Comment on attachment 8781071 [details]
Bug 1290333 - Add framebuffer size test case;
https://reviewboard.mozilla.org/r/71568/#review70204
::: gfx/gl/GLContext.cpp:1076
(Diff revision 2)
> mTextureAllocCrashesOnMapFailure = true;
> }
> #endif
>
> +#ifdef XP_WIN
> + // In some NVIDIA driver, the maximum of framebuffer size is not
Please add bug id here, just like other workarounds.
Attachment #8781071 -
Flags: review?(ethlin) → review+
Assignee | ||
Comment 8•9 years ago
|
||
Try result looks good:
All platform:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=2fc10a93bf5f
For Windows only:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=aea53e8c11a4
Comment hidden (mozreview-request) |
Assignee | ||
Comment 10•9 years ago
|
||
mozreview-review-reply |
Comment on attachment 8781071 [details]
Bug 1290333 - Add framebuffer size test case;
https://reviewboard.mozilla.org/r/71568/#review70204
> Please add bug id here, just like other workarounds.
Thanks for review. I have added the bug no.
Comment 11•9 years ago
|
||
mozreview-review |
Comment on attachment 8781071 [details]
Bug 1290333 - Add framebuffer size test case;
https://reviewboard.mozilla.org/r/71568/#review73818
Also fix the patch title to say "framebuffer" not "frame buffer".
::: dom/canvas/test/webgl-mochitest/test_canvas_size.html:9
(Diff revision 3)
> + <meta charset='UTF-8'>
> + <script src='/tests/SimpleTest/SimpleTest.js'></script>
> + <link rel='stylesheet' href='/tests/SimpleTest/test.css'>
> + <script src="webgl-util.js"></script>
> +</head>
> +<title>WebGL test: Framebuffer maximum size test. #bug 1290333</title>
" (Bug 1290333)"
::: dom/canvas/test/webgl-mochitest/test_canvas_size.html:19
(Diff revision 3)
> +// Test WebGL 1
> +function TestWebGL1() {
> + var attributes = {
> + antialias: false,
> + };
> + var gl = WebGLUtil.getWebGL('c', false, attributes);
Create a canvas programatically (document.createElement) instead of using an HTML declaration.
::: dom/canvas/test/webgl-mochitest/test_canvas_size.html:31
(Diff revision 3)
> +
> + ok(true, 'WebGL 1 test complete.');
> +}
> +
> +// Test WebGL 2
> +function TestWebGL2() {
Merge this with `TestWebGL1` into `TestSize(contextName, testSize)`.
::: gfx/gl/GLContext.cpp:1078
(Diff revision 3)
> #endif
>
> +#ifdef XP_WIN
> + // Bug 1290333. In some NVIDIA driver, the maximum of framebuffer size
> + // is not equal to GL_MAX_RENDERBUFFER_SIZE. It can only be created to
> + // be less equal than 16383 x 16383. Otherwise, it will occur driver crash.
"Otherwise a the driver will crash."
::: gfx/gl/GLContext.cpp:1080
(Diff revision 3)
> +#ifdef XP_WIN
> + // Bug 1290333. In some NVIDIA driver, the maximum of framebuffer size
> + // is not equal to GL_MAX_RENDERBUFFER_SIZE. It can only be created to
> + // be less equal than 16383 x 16383. Otherwise, it will occur driver crash.
> + if (mWorkAroundDriverBugs &&
> + mVendor == GLVendor::NVIDIA) {
This doesn't crash for me though? (Win+NV)
Please narrow the workaround to the particular card that is problematic.
Also, { on a new line if it's after a multi-line conditional.
Attachment #8781071 -
Flags: review?(jgilbert) → review-
Assignee | ||
Updated•9 years ago
|
Summary: [WebGL2] Fix conformance test - drawingbuffer-static-canvas-test.html crash in Windows 8 → [WebGL2] Fix conformance test - drawingbuffer-static-canvas-test.html crash
Assignee | ||
Comment 12•9 years ago
|
||
It is happened on Windows 10 machine as well, https://treeherder.mozilla.org/#/jobs?repo=try&revision=bdad431a7c59&selectedJob=26759925.
This Win 10 machine uses NV GT 610, and driver version is 9.18.13.3523, 3-4-2014, GL 4.4. The environment is very similar to Win 8 machines. Need more investigation.
Assignee | ||
Comment 13•9 years ago
|
||
Please refer to this try result, https://treeherder.mozilla.org/#/jobs?repo=try&revision=13fa338c9394. We can find this issue only happens on Win 8 & Win 10. I think that is because both of them use NV GT 610.
For the cases of Win 7 VM, its GPU is NV GRID K520, and Win 7 machine (NV GT 610) didn't run WebGL 2 coconformance test.
Therefore, I think the root cause is Win + NV + GT 6 Series.
Assignee | ||
Comment 14•9 years ago
|
||
This issue only presents on NV-OpenGL case. After enabling ANGLE on WebGL 2 on Windows (Bug 1297965), it is no chance to happen. Thanks for Direct3D driver.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Assignee | ||
Updated•9 years ago
|
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Comment 15•9 years ago
|
||
I think we can still land test_canvas_size.html for helping us detect errors about framebuffer size.
Comment hidden (mozreview-request) |
Assignee | ||
Comment 17•9 years ago
|
||
Comment hidden (mozreview-request) |
Updated•9 years ago
|
Attachment #8778189 -
Attachment is obsolete: true
Comment 19•9 years ago
|
||
mozreview-review |
Comment on attachment 8781071 [details]
Bug 1290333 - Add framebuffer size test case;
https://reviewboard.mozilla.org/r/71568/#review80208
Attachment #8781071 -
Flags: review?(jgilbert) → review+
Assignee | ||
Updated•9 years ago
|
Keywords: checkin-needed
Comment 20•9 years ago
|
||
Pushed by ryanvm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/7013608fdbbc
Add framebuffer size test case; r=ethlin,jgilbert
Keywords: checkin-needed
Comment 21•9 years ago
|
||
bugherder |
Status: REOPENED → RESOLVED
Closed: 9 years ago → 9 years ago
status-firefox52:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla52
Updated•9 years ago
|
Flags: needinfo?(jgilbert)
You need to log in
before you can comment on or make changes to this bug.
Description
•