Closed
Bug 1310247
Opened 8 years ago
Closed 8 years ago
WebGL 2.0 demo not work having useTransformFeedback enabled
Categories
(Core :: Graphics: CanvasWebGL, defect, P1)
Tracking
()
RESOLVED
FIXED
mozilla53
People
(Reporter: bmaris, Assigned: jgilbert)
References
Details
(Keywords: correctness, regression, Whiteboard: [gfx-noted])
Attachments
(4 files, 2 obsolete files)
6.31 KB,
patch
|
jgilbert
:
review-
|
Details | Diff | Splinter Review |
58 bytes,
text/x-review-board-request
|
ethlin
:
review+
gchang
:
approval-mozilla-aurora+
gchang
:
approval-mozilla-beta+
|
Details |
58 bytes,
text/x-review-board-request
|
gchang
:
approval-mozilla-aurora+
gchang
:
approval-mozilla-beta+
|
Details |
58 bytes,
text/x-review-board-request
|
ethlin
:
review+
gchang
:
approval-mozilla-aurora+
gchang
:
approval-mozilla-beta+
|
Details |
[Affected versions]: - latest Nightly 52.0a1 - latest Developer Edition 51.0a2 [Affected platforms]: - Mac OS X 10.12 - Windows 7 32-bit [Steps to reproduce]: 1. Start Firefox 2. Open http://toji.github.io/webgl2-crowd/ 3. Check and uncheck useTransformFeedback [Expected result]: - Having Transform Feedback checked and unchecked the crowd is successfully seen. (I'm not sure of this expected result though) [Actual result]: - Crowd does not show having Transform Feedback checked [Regression range]: - Here is the regression range found using mozregression: Last good revision: 4ebed327385b6827b9275c21e29f23b13aa92457 First bad revision: fa9844b0dee37aeb4c94d027f7c68a94721db320 Pushlog: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=4ebed327385b6827b9275c21e29f23b13aa92457&tochange=fa9844b0dee37aeb4c94d027f7c68a94721db320 I see a few bugs there Bug 1300946, Bug 1303879 and Bug 1303878 [Additional notes]: - This is the Console output: http://pastebin.com/PABRTYSq - Here is my Graphics from about:support Features Compositing OpenGL Asynchronous Pan/Zoom wheel input enabled WebGL Renderer ATI Technologies Inc. -- AMD Radeon HD 6750M OpenGL Engine WebGL2 Renderer ATI Technologies Inc. -- AMD Radeon HD 6750M OpenGL Engine Hardware H264 Decoding Yes Audio Backend audiounit GPU #1 Active Yes Vendor ID 0x1002 Device ID 0x6741 Diagnostics AzureCanvasAccelerated 1 AzureCanvasBackend skia AzureContentBackend skia AzureFallbackCanvasBackend none TileHeight 512 TileWidth 512
Reporter | ||
Updated•8 years ago
|
QA Whiteboard: [qe-webgl2]
Comment 1•8 years ago
|
||
We got wrong mWebGLRefCnt in ValidateCanBindToTarget. That's because we store RefPtr<WebGLBuffer> in WebGLVertexAttribData and I think we can use raw pointer in WebGLVertexAttribData. Or alternatively, use another way to calculate bound number of the WebGLBuffer.
Attachment #8801664 -
Flags: feedback?(jgilbert)
Priority: -- → P4
Updated•8 years ago
|
Keywords: regression
Updated•8 years ago
|
Updated•8 years ago
|
Assignee: nobody → ethlin
Updated•8 years ago
|
Blocks: webgl2-blockers
Updated•8 years ago
|
Comment 2•8 years ago
|
||
Track 51+ as this is a regression related to WebGL 2.
tracking-firefox51:
--- → +
Comment 3•8 years ago
|
||
WebGLVertexAttribData also store the WebGLBuffer. So the ref count is not reliable. I think we should check the real bound buffers to get the number of bound.
Attachment #8811188 -
Flags: review?(jgilbert)
Updated•8 years ago
|
Attachment #8801664 -
Attachment is obsolete: true
Attachment #8801664 -
Flags: feedback?(jgilbert)
Comment 4•8 years ago
|
||
(In reply to Ethan Lin[:ethlin] from comment #3) > Created attachment 8811188 [details] [diff] [review] > Check the real bound buffers > > WebGLVertexAttribData also store the WebGLBuffer. So the ref count is not > reliable. I think we should check the real bound buffers to get the number > of bound. I didn't consider some bound buffers, like mIndexedUniformBufferBindings and mBoundTransformFeedback->mIndexedBindings, which are hard to count in this way.
Comment 5•8 years ago
|
||
I add a variable in WebGLBuffer to record the number of bound. The number will change in BindBuffer / BindBufferBase / BindBufferRange. Some WebGLBuffers are bound in WebGLTransformFeedback, so the number also changes in the destructor of WebGLTransformFeedback.
Attachment #8811188 -
Attachment is obsolete: true
Attachment #8811188 -
Flags: review?(jgilbert)
Attachment #8811626 -
Flags: review?(jgilbert)
Assignee | ||
Comment 6•8 years ago
|
||
Sorry to take this, but I think there's some spec-work needed. I believe the restrictions in the WebGL 2 spec are wrong: They are either too lax, or too restrictive. I'll sort this out with the working group. I should have a patch tomorrow to serve as a WIP, which should fix this bug.
Assignee | ||
Updated•8 years ago
|
Assignee: ethlin → jgilbert
Assignee | ||
Comment 7•8 years ago
|
||
Comment on attachment 8811626 [details] [diff] [review] calculate the number of bound for WebGLBuffer Review of attachment 8811626 [details] [diff] [review]: ----------------------------------------------------------------- I thought this would work, but I don't think it's actually sufficient.
Attachment #8811626 -
Flags: review?(jgilbert) → review-
Comment 8•8 years ago
|
||
(In reply to Jeff Gilbert [:jgilbert] from comment #6) > Sorry to take this, but I think there's some spec-work needed. > I believe the restrictions in the WebGL 2 spec are wrong: They are either > too lax, or too restrictive. > > I'll sort this out with the working group. > I should have a patch tomorrow to serve as a WIP, which should fix this bug. Bug 1316319 should be the same problem. The attachment 8811626 [details] [diff] [review] also fixes bug 1316319. We can check it with your WIP.
Comment hidden (mozreview-request) |
Updated•8 years ago
|
Priority: P4 → P1
Comment 11•8 years ago
|
||
mozreview-review |
Comment on attachment 8812399 [details] Bug 1310247 - Check if buffers are bound for transform feedback. - https://reviewboard.mozilla.org/r/94170/#review94412 ::: dom/canvas/WebGLContext.cpp:2566 (Diff revision 1) > +//// > + > +const decltype(WebGLContext::mBuffersForUB)& > +WebGLContext::BuffersForUB() const > +{ > + if (!mBuffersForUB_Dirty) { Should be 'if (mBuffersForUB_Dirty)'. ::: dom/canvas/WebGLContext.cpp:2569 (Diff revision 1) > +WebGLContext::BuffersForUB() const > +{ > + if (!mBuffersForUB_Dirty) { > + mBuffersForUB.clear(); > + for (const auto& cur : mIndexedUniformBufferBindings) { > + mBuffersForUB.insert(cur.mBufferBinding.get()); We should ignore nullptr or nullptr will be counted as intersected buffer. ::: dom/canvas/WebGLTransformFeedback.cpp:53 (Diff revision 1) > + // "bound or in use for transform feedback". > + // Therefore, only the indexed bindings of the TFO count. > + if (mBuffersForTF_Dirty) { > + mBuffersForTF.clear(); > + for (const auto& cur : mIndexedBindings) { > + mBuffersForTF.insert(cur.mBufferBinding.get()); We should ignore nullptr or nullptr will be counted as intersected buffer.
Comment 12•8 years ago
|
||
mozreview-review |
Comment on attachment 8812399 [details] Bug 1310247 - Check if buffers are bound for transform feedback. - https://reviewboard.mozilla.org/r/94170/#review94430
Comment hidden (mozreview-request) |
Comment 14•8 years ago
|
||
mozreview-review |
Comment on attachment 8812399 [details] Bug 1310247 - Check if buffers are bound for transform feedback. - https://reviewboard.mozilla.org/r/94170/#review94798
Attachment #8812399 -
Flags: review?(ethlin) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 18•8 years ago
|
||
mozreview-review |
Comment on attachment 8813507 [details] Bug 1310247 - Use pointers instead of references to prevent taking the address of temporary integers. - https://reviewboard.mozilla.org/r/94926/#review95180
Attachment #8813507 -
Flags: review?(ethlin) → review+
Comment 19•8 years ago
|
||
Pushed by jgilbert@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/52b48e6c648e Check if buffers are bound for transform feedback. - r=ethlin https://hg.mozilla.org/integration/mozilla-inbound/rev/9a514a653a23 Fix tests to match implementation for now. https://hg.mozilla.org/integration/mozilla-inbound/rev/86d5fada043c Use pointers instead of references to prevent taking the address of temporary integers. - r=ethlin
Comment 20•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/52b48e6c648e https://hg.mozilla.org/mozilla-central/rev/9a514a653a23 https://hg.mozilla.org/mozilla-central/rev/86d5fada043c
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox53:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Comment 21•8 years ago
|
||
Comment on attachment 8812399 [details] Bug 1310247 - Check if buffers are bound for transform feedback. - Approval Request Comment [Feature/regressing bug #]: webgl2 [User impact if declined]: [Describe test coverage new/current, TreeHerder]: [Risks and why]: [String/UUID change made/needed]:
Attachment #8812399 -
Flags: approval-mozilla-beta?
Attachment #8812399 -
Flags: approval-mozilla-aurora?
Comment 22•8 years ago
|
||
Comment on attachment 8813507 [details] Bug 1310247 - Use pointers instead of references to prevent taking the address of temporary integers. - Approval Request Comment [Feature/regressing bug #]: webgl2 [User impact if declined]: [Describe test coverage new/current, TreeHerder]: [Risks and why]: [String/UUID change made/needed]:
Attachment #8813507 -
Flags: approval-mozilla-beta?
Attachment #8813507 -
Flags: approval-mozilla-aurora?
Comment 23•8 years ago
|
||
Comment on attachment 8813506 [details] Bug 1310247 - Fix tests to match implementation for now. Approval Request Comment [Feature/regressing bug #]: webgl2 [User impact if declined]: [Describe test coverage new/current, TreeHerder]: [Risks and why]: [String/UUID change made/needed]:
Attachment #8813506 -
Flags: approval-mozilla-beta?
Attachment #8813506 -
Flags: approval-mozilla-aurora?
Comment 24•8 years ago
|
||
Comment on attachment 8812399 [details] Bug 1310247 - Check if buffers are bound for transform feedback. - Fix a WebGL 2 issue. Beta51+ and Aurora52+. Should be in 51 beta 4.
Attachment #8812399 -
Flags: approval-mozilla-beta?
Attachment #8812399 -
Flags: approval-mozilla-beta+
Attachment #8812399 -
Flags: approval-mozilla-aurora?
Attachment #8812399 -
Flags: approval-mozilla-aurora+
Updated•8 years ago
|
Attachment #8813506 -
Flags: approval-mozilla-beta?
Attachment #8813506 -
Flags: approval-mozilla-beta+
Attachment #8813506 -
Flags: approval-mozilla-aurora?
Attachment #8813506 -
Flags: approval-mozilla-aurora+
Updated•8 years ago
|
Attachment #8813507 -
Flags: approval-mozilla-beta?
Attachment #8813507 -
Flags: approval-mozilla-beta+
Attachment #8813507 -
Flags: approval-mozilla-aurora?
Attachment #8813507 -
Flags: approval-mozilla-aurora+
Assignee | ||
Updated•8 years ago
|
Flags: needinfo?(jgilbert)
Assignee | ||
Comment 26•8 years ago
|
||
https://hg.mozilla.org/releases/mozilla-aurora/rev/33ed433e98aa
Assignee | ||
Comment 27•8 years ago
|
||
https://hg.mozilla.org/releases/mozilla-beta/rev/a0b2e78bf20d
You need to log in
before you can comment on or make changes to this bug.
Description
•