mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-20 18:29:23 +00:00
Add tests and fix (create) mapping zero-sized buffers
When creating a zero-sized buffer mapped, StagingBuffer creation is skipped. This required adding a new MappedAtCreation state since mStagingBuffer couldn't be used as a tag value for that. Made the OpenGL backend always create non-zero-sized buffers. Finally added tests for MapRead/WriteAsync and CreateBufferMapped of zero-sized buffers. Bug: dawn:446 Change-Id: I04f6fe98fd646f1867c21065cd1cd33a1595e19f Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21481 Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
b6eff5acf0
commit
13f4650155
@@ -22,9 +22,13 @@ namespace dawn_native { namespace opengl {
|
||||
|
||||
Buffer::Buffer(Device* device, const BufferDescriptor* descriptor)
|
||||
: BufferBase(device, descriptor) {
|
||||
// TODO(cwallez@chromium.org): Have a global "zero" buffer instead of creating a new 4-byte
|
||||
// buffer?
|
||||
uint64_t size = std::max(GetSize(), uint64_t(4u));
|
||||
|
||||
device->gl.GenBuffers(1, &mBuffer);
|
||||
device->gl.BindBuffer(GL_ARRAY_BUFFER, mBuffer);
|
||||
device->gl.BufferData(GL_ARRAY_BUFFER, GetSize(), nullptr, GL_STATIC_DRAW);
|
||||
device->gl.BufferData(GL_ARRAY_BUFFER, size, nullptr, GL_STATIC_DRAW);
|
||||
}
|
||||
|
||||
Buffer::~Buffer() {
|
||||
|
||||
Reference in New Issue
Block a user