RESOLVED FIXED 106975
Simplify validation and data copying in WebGLBuffer
https://bugs.webkit.org/show_bug.cgi?id=106975
Summary Simplify validation and data copying in WebGLBuffer
Kenneth Russell
Reported 2013-01-15 19:38:49 PST
The WebGLBuffer class helps validate calls to bufferData and bufferSubData, and holds on to copies of indices for ELEMENT_ARRAY_BUFFER type buffers. Currently, its lowest level validation is written in terms of ArrayBuffers, which makes the validation checks it does much more complicated than they should be. Typed array instances, in particular subarrays, are already verified during construction, and some of the checks being done in WebGLBuffer are redundant. Additionally, it looks like they may even be incomplete because of the complexity of the code. Changing the base validation routines to operate on a (void*, GC3Dsizeiptr) pair simplifies them considerably.
Attachments
Patch (7.71 KB, patch)
2013-01-15 19:44 PST, Kenneth Russell
no flags
Kenneth Russell
Comment 1 2013-01-15 19:44:10 PST
WebKit Review Bot
Comment 2 2013-01-16 13:10:33 PST
Comment on attachment 182908 [details] Patch Clearing flags on attachment: 182908 Committed r139914: <http://trac.webkit.org/changeset/139914>
WebKit Review Bot
Comment 3 2013-01-16 13:10:36 PST
All reviewed patches have been landed. Closing bug.
Kenneth Russell
Comment 4 2013-01-16 14:07:22 PST
Reverted r139914 for reason: Caused crashes in compositing/visibility/visibility-simple-webgl-layer.html Committed r139923: <http://trac.webkit.org/changeset/139923>
Kenneth Russell
Comment 5 2013-01-16 15:05:03 PST
I've attempted to reproduce locally the crash seen in the flakiness dashboard with both Debug and Release builds of DRT but can not. I suspect that the crash is some rare preexisting bug. Subsequent runs on the flakiness dashboard which still contained my patch were clean. I'm going to re-land it.
Kenneth Russell
Comment 6 2013-01-16 15:10:32 PST
Kenneth Russell
Comment 7 2013-01-16 15:16:24 PST
Note You need to log in before you can comment on or make changes to this bug.