GPUBuffer::length() should return the size of the array buffer backing the GPU buffer...
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Aug 2017 18:24:19 +0000 (18:24 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 2 Aug 2017 18:24:19 +0000 (18:24 +0000)
commit0c5b1ab88975569c91abcf519f24c5a36e32fe7c
tree5be20b8ef955eb26669a1ff52b1cc1286b0bdef9
parent6403fa0a5f78102d779ead3e0408aee076b36567
GPUBuffer::length() should return the size of the array buffer backing the GPU buffer, not the rounded-up GPU buffer length
https://bugs.webkit.org/show_bug.cgi?id=175079

Reviewed by Simon Fraser.

This fixes a failure in the GPU.BufferCreate unit test.

The problem is that in order to have a Metal buffer wrap memory we allocated, we have to tell Metal
that the memory is page-aligned. This means that the Metal buffer reports back a page-aligned size,
which is different than what the test expected.

It seems that it's most convenient for our GPUBuffer class to return the unaligned length, rather
than the aligned length. This is just a simple matter of returning the length from the ArrayBuffer
rather than the Metal buffer.

This fixes the unit test and is probably more sensible for actual users of this class, since the page
alignment of the length is a goofy implementation detail.

* platform/graphics/cocoa/GPUBufferMetal.mm:
(WebCore::GPUBuffer::length const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/cocoa/GPUBufferMetal.mm