[Webkit-unassigned] [Bug 42124] New: WebGLBuffer::associateBufferData(ArrayBufferView* array) copies incorrect data for sliced views

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jul 12 18:13:58 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=42124

           Summary: WebGLBuffer::associateBufferData(ArrayBufferView*
                    array) copies incorrect data for sliced views
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebGL
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: kbr at google.com
                CC: oliver at apple.com, fishd at chromium.org,
                    cmarrin at apple.com, dglazkov at chromium.org,
                    zmo at google.com
        Depends on: 41884


>From code inspection, WebGLBuffer::associateBufferData(ArrayBufferView* array) will copy the wrong data from the passed ArrayBufferView in the case where the WebGLBuffer is bound to the ELEMENT_ARRAY_BUFFER binding point, and the passed ArrayBufferView is a slice of a larger ArrayBuffer with a non-zero offset.

The reason is that the m_elementArrayBuffer is a copy of the entire backing store of the ArrayBufferView (ArrayBuffer::create(array->buffer().get())), but actually needs to be a copy of only the portion referenced by the view.

Ideally, both associateBufferData(ArrayBufferView*) and the new WebGLBuffer::associateBufferData(ArrayBuffer* array) being introduced in bug 41884 would be implemented in terms of an associateBufferDataImpl(ArrayBuffer*, int offset, int length). associateBufferSubData(long, ArrayBufferView*) and associateBufferSubData(long, ArrayBuffer*) should also share their implementations.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list