mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-17 17:05:31 +00:00
Make SetSubData take size in uint8_t not uint32_t.
Also change data pointer to uint8_t*. Add a test for a non-aligned SetSubData(). Implemented on all backends.
This commit is contained in:
committed by
Corentin Wallez
parent
ee66f25c4f
commit
e5ae3274a3
@@ -487,28 +487,28 @@ TEST_F(BufferValidationTest, DestroyInsideMapWriteCallback) {
|
||||
|
||||
// Test the success case for Buffer::SetSubData
|
||||
TEST_F(BufferValidationTest, SetSubDataSuccess) {
|
||||
nxt::Buffer buf = CreateSetSubDataBuffer(4);
|
||||
nxt::Buffer buf = CreateSetSubDataBuffer(1);
|
||||
|
||||
uint32_t foo = 0;
|
||||
buf.SetSubData(0, 1, &foo);
|
||||
uint8_t foo = 0;
|
||||
buf.SetSubData(0, sizeof(foo), &foo);
|
||||
}
|
||||
|
||||
// Test error case for SetSubData out of bounds
|
||||
TEST_F(BufferValidationTest, SetSubDataOutOfBounds) {
|
||||
nxt::Buffer buf = CreateSetSubDataBuffer(4);
|
||||
nxt::Buffer buf = CreateSetSubDataBuffer(1);
|
||||
|
||||
uint32_t foo = 0;
|
||||
uint8_t foo = 0;
|
||||
ASSERT_DEVICE_ERROR(buf.SetSubData(0, 2, &foo));
|
||||
}
|
||||
|
||||
// Test error case for SetSubData with the wrong usage
|
||||
TEST_F(BufferValidationTest, SetSubDataWrongUsage) {
|
||||
nxt::Buffer buf = device.CreateBufferBuilder()
|
||||
.SetSize(4)
|
||||
.SetSize(1)
|
||||
.SetAllowedUsage(nxt::BufferUsageBit::TransferDst | nxt::BufferUsageBit::Vertex)
|
||||
.SetInitialUsage(nxt::BufferUsageBit::Vertex)
|
||||
.GetResult();
|
||||
|
||||
uint32_t foo = 0;
|
||||
ASSERT_DEVICE_ERROR(buf.SetSubData(0, 1, &foo));
|
||||
uint8_t foo = 0;
|
||||
ASSERT_DEVICE_ERROR(buf.SetSubData(0, sizeof(foo), &foo));
|
||||
}
|
||||
|
||||
@@ -35,16 +35,16 @@ TEST_F(UsageValidationTest, UsageAfterCommandBuffer) {
|
||||
// Should we make an end2end test that tests this as well?
|
||||
|
||||
nxt::Buffer buf = device.CreateBufferBuilder()
|
||||
.SetSize(4)
|
||||
.SetSize(1)
|
||||
.SetAllowedUsage(nxt::BufferUsageBit::TransferDst | nxt::BufferUsageBit::Vertex)
|
||||
.SetInitialUsage(nxt::BufferUsageBit::TransferDst)
|
||||
.GetResult();
|
||||
|
||||
uint32_t foo = 0;
|
||||
buf.SetSubData(0, 1, &foo);
|
||||
uint8_t foo = 0;
|
||||
buf.SetSubData(0, sizeof(foo), &foo);
|
||||
|
||||
buf.TransitionUsage(nxt::BufferUsageBit::Vertex);
|
||||
ASSERT_DEVICE_ERROR(buf.SetSubData(0, 1, &foo));
|
||||
ASSERT_DEVICE_ERROR(buf.SetSubData(0, sizeof(foo), &foo));
|
||||
|
||||
nxt::CommandBuffer cmdbuf = device.CreateCommandBufferBuilder()
|
||||
.TransitionBufferUsage(buf, nxt::BufferUsageBit::TransferDst)
|
||||
@@ -52,5 +52,5 @@ TEST_F(UsageValidationTest, UsageAfterCommandBuffer) {
|
||||
queue.Submit(1, &cmdbuf);
|
||||
// buf should be in TransferDst usage
|
||||
|
||||
buf.SetSubData(0, 1, &foo);
|
||||
buf.SetSubData(0, sizeof(foo), &foo);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user