mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-10 05:57:51 +00:00
Change usage requirements for Buffer::SetSubData to require TransferDst
instead of MapWrite bit
This commit is contained in:
@@ -69,8 +69,8 @@ namespace backend {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(currentUsage & nxt::BufferUsageBit::MapWrite)) {
|
||||
device->HandleError("Buffer needs the map write usage bit");
|
||||
if (!(currentUsage & nxt::BufferUsageBit::TransferDst)) {
|
||||
device->HandleError("Buffer needs the transfer dst usage bit");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace null {
|
||||
|
||||
Buffer::Buffer(BufferBuilder* builder)
|
||||
: BufferBase(builder) {
|
||||
if (GetAllowedUsage() & (nxt::BufferUsageBit::MapRead | nxt::BufferUsageBit::MapWrite)) {
|
||||
if (GetAllowedUsage() & (nxt::BufferUsageBit::TransferDst | nxt::BufferUsageBit::MapRead | nxt::BufferUsageBit::MapWrite)) {
|
||||
backingData = std::unique_ptr<char[]>(new char[GetSize()]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ class BufferValidationTest : public ValidationTest {
|
||||
nxt::Buffer CreateSetSubDataBuffer(uint32_t size) {
|
||||
return device.CreateBufferBuilder()
|
||||
.SetSize(size)
|
||||
.SetAllowedUsage(nxt::BufferUsageBit::MapWrite)
|
||||
.SetInitialUsage(nxt::BufferUsageBit::MapWrite)
|
||||
.SetAllowedUsage(nxt::BufferUsageBit::TransferDst)
|
||||
.SetInitialUsage(nxt::BufferUsageBit::TransferDst)
|
||||
.GetResult();
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ TEST_F(BufferValidationTest, SetSubDataOutOfBounds) {
|
||||
TEST_F(BufferValidationTest, SetSubDataWrongUsage) {
|
||||
nxt::Buffer buf = device.CreateBufferBuilder()
|
||||
.SetSize(4)
|
||||
.SetAllowedUsage(nxt::BufferUsageBit::MapWrite | nxt::BufferUsageBit::Vertex)
|
||||
.SetAllowedUsage(nxt::BufferUsageBit::TransferDst | nxt::BufferUsageBit::Vertex)
|
||||
.SetInitialUsage(nxt::BufferUsageBit::Vertex)
|
||||
.GetResult();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user