Deprecate dispatch* in favor of dispatchWorkgroups*
In https://github.com/gpuweb/gpuweb/pull/2689 both dispatch and dispatchIndirect were renamed to dispatchWorkgroups and dispatchWorkgroupsIndirect in order to clarify the meaning of the arguments. Change-Id: Iadb9d8b60c43445a69f9c569fba2340b5dca95a9 Bug: dawn:22 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/88364 Reviewed-by: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Brandon Jones <bajones@chromium.org>
This commit is contained in:
parent
4c6c974564
commit
3daebe896f
17
dawn.json
17
dawn.json
|
@ -796,6 +796,15 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dispatch",
|
"name": "dispatch",
|
||||||
|
"tags": ["deprecated"],
|
||||||
|
"args": [
|
||||||
|
{"name": "workgroupCountX", "type": "uint32_t"},
|
||||||
|
{"name": "workgroupCountY", "type": "uint32_t", "default": "1"},
|
||||||
|
{"name": "workgroupCountZ", "type": "uint32_t", "default": "1"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dispatch workgroups",
|
||||||
"args": [
|
"args": [
|
||||||
{"name": "workgroupCountX", "type": "uint32_t"},
|
{"name": "workgroupCountX", "type": "uint32_t"},
|
||||||
{"name": "workgroupCountY", "type": "uint32_t", "default": "1"},
|
{"name": "workgroupCountY", "type": "uint32_t", "default": "1"},
|
||||||
|
@ -804,6 +813,14 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "dispatch indirect",
|
"name": "dispatch indirect",
|
||||||
|
"tags": ["deprecated"],
|
||||||
|
"args": [
|
||||||
|
{"name": "indirect buffer", "type": "buffer"},
|
||||||
|
{"name": "indirect offset", "type": "uint64_t"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dispatch workgroups indirect",
|
||||||
"args": [
|
"args": [
|
||||||
{"name": "indirect buffer", "type": "buffer"},
|
{"name": "indirect buffer", "type": "buffer"},
|
||||||
{"name": "indirect offset", "type": "uint64_t"}
|
{"name": "indirect offset", "type": "uint64_t"}
|
||||||
|
|
|
@ -186,6 +186,14 @@ namespace dawn::native {
|
||||||
void ComputePassEncoder::APIDispatch(uint32_t workgroupCountX,
|
void ComputePassEncoder::APIDispatch(uint32_t workgroupCountX,
|
||||||
uint32_t workgroupCountY,
|
uint32_t workgroupCountY,
|
||||||
uint32_t workgroupCountZ) {
|
uint32_t workgroupCountZ) {
|
||||||
|
GetDevice()->EmitDeprecationWarning(
|
||||||
|
"dispatch() has been deprecated. Use dispatchWorkgroups() instead.");
|
||||||
|
APIDispatchWorkgroups(workgroupCountX, workgroupCountY, workgroupCountZ);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ComputePassEncoder::APIDispatchWorkgroups(uint32_t workgroupCountX,
|
||||||
|
uint32_t workgroupCountY,
|
||||||
|
uint32_t workgroupCountZ) {
|
||||||
mEncodingContext->TryEncode(
|
mEncodingContext->TryEncode(
|
||||||
this,
|
this,
|
||||||
[&](CommandAllocator* allocator) -> MaybeError {
|
[&](CommandAllocator* allocator) -> MaybeError {
|
||||||
|
@ -222,7 +230,7 @@ namespace dawn::native {
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
},
|
},
|
||||||
"encoding %s.Dispatch(%u, %u, %u).", this, workgroupCountX, workgroupCountY,
|
"encoding %s.DispatchWorkgroups(%u, %u, %u).", this, workgroupCountX, workgroupCountY,
|
||||||
workgroupCountZ);
|
workgroupCountZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,7 +316,7 @@ namespace dawn::native {
|
||||||
// Issue commands to validate the indirect buffer.
|
// Issue commands to validate the indirect buffer.
|
||||||
APISetPipeline(validationPipeline.Get());
|
APISetPipeline(validationPipeline.Get());
|
||||||
APISetBindGroup(0, validationBindGroup.Get());
|
APISetBindGroup(0, validationBindGroup.Get());
|
||||||
APIDispatch(1);
|
APIDispatchWorkgroups(1);
|
||||||
|
|
||||||
// Restore the state.
|
// Restore the state.
|
||||||
RestoreCommandBufferState(std::move(previousState));
|
RestoreCommandBufferState(std::move(previousState));
|
||||||
|
@ -319,6 +327,13 @@ namespace dawn::native {
|
||||||
|
|
||||||
void ComputePassEncoder::APIDispatchIndirect(BufferBase* indirectBuffer,
|
void ComputePassEncoder::APIDispatchIndirect(BufferBase* indirectBuffer,
|
||||||
uint64_t indirectOffset) {
|
uint64_t indirectOffset) {
|
||||||
|
GetDevice()->EmitDeprecationWarning(
|
||||||
|
"dispatchIndirect() has been deprecated. Use dispatchWorkgroupsIndirect() instead.");
|
||||||
|
APIDispatchWorkgroupsIndirect(indirectBuffer, indirectOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ComputePassEncoder::APIDispatchWorkgroupsIndirect(BufferBase* indirectBuffer,
|
||||||
|
uint64_t indirectOffset) {
|
||||||
mEncodingContext->TryEncode(
|
mEncodingContext->TryEncode(
|
||||||
this,
|
this,
|
||||||
[&](CommandAllocator* allocator) -> MaybeError {
|
[&](CommandAllocator* allocator) -> MaybeError {
|
||||||
|
@ -381,7 +396,8 @@ namespace dawn::native {
|
||||||
dispatch->indirectOffset = indirectOffset;
|
dispatch->indirectOffset = indirectOffset;
|
||||||
return {};
|
return {};
|
||||||
},
|
},
|
||||||
"encoding %s.DispatchIndirect(%s, %u).", this, indirectBuffer, indirectOffset);
|
"encoding %s.DispatchWorkgroupsIndirect(%s, %u).", this, indirectBuffer,
|
||||||
|
indirectOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComputePassEncoder::APISetPipeline(ComputePipelineBase* pipeline) {
|
void ComputePassEncoder::APISetPipeline(ComputePipelineBase* pipeline) {
|
||||||
|
|
|
@ -44,10 +44,10 @@ namespace dawn::native {
|
||||||
void APIEnd();
|
void APIEnd();
|
||||||
void APIEndPass(); // TODO(dawn:1286): Remove after deprecation period.
|
void APIEndPass(); // TODO(dawn:1286): Remove after deprecation period.
|
||||||
|
|
||||||
void APIDispatch(uint32_t workgroupCountX,
|
void APIDispatchWorkgroups(uint32_t workgroupCountX,
|
||||||
uint32_t workgroupCountY = 1,
|
uint32_t workgroupCountY = 1,
|
||||||
uint32_t workgroupCountZ = 1);
|
uint32_t workgroupCountZ = 1);
|
||||||
void APIDispatchIndirect(BufferBase* indirectBuffer, uint64_t indirectOffset);
|
void APIDispatchWorkgroupsIndirect(BufferBase* indirectBuffer, uint64_t indirectOffset);
|
||||||
void APISetPipeline(ComputePipelineBase* pipeline);
|
void APISetPipeline(ComputePipelineBase* pipeline);
|
||||||
|
|
||||||
void APISetBindGroup(uint32_t groupIndex,
|
void APISetBindGroup(uint32_t groupIndex,
|
||||||
|
@ -62,6 +62,12 @@ namespace dawn::native {
|
||||||
RestoreCommandBufferState(std::move(state));
|
RestoreCommandBufferState(std::move(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated
|
||||||
|
void APIDispatch(uint32_t workgroupCountX,
|
||||||
|
uint32_t workgroupCountY = 1,
|
||||||
|
uint32_t workgroupCountZ = 1);
|
||||||
|
void APIDispatchIndirect(BufferBase* indirectBuffer, uint64_t indirectOffset);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ComputePassEncoder(DeviceBase* device,
|
ComputePassEncoder(DeviceBase* device,
|
||||||
const ComputePassDescriptor* descriptor,
|
const ComputePassDescriptor* descriptor,
|
||||||
|
|
|
@ -441,7 +441,7 @@ namespace dawn::native {
|
||||||
const uint32_t numDrawsRoundedUp =
|
const uint32_t numDrawsRoundedUp =
|
||||||
(batch.batchInfo->numDraws + kWorkgroupSize - 1) / kWorkgroupSize;
|
(batch.batchInfo->numDraws + kWorkgroupSize - 1) / kWorkgroupSize;
|
||||||
passEncoder->APISetBindGroup(0, bindGroup.Get());
|
passEncoder->APISetBindGroup(0, bindGroup.Get());
|
||||||
passEncoder->APIDispatch(numDrawsRoundedUp);
|
passEncoder->APIDispatchWorkgroups(numDrawsRoundedUp);
|
||||||
}
|
}
|
||||||
|
|
||||||
passEncoder->APIEnd();
|
passEncoder->APIEnd();
|
||||||
|
|
|
@ -208,7 +208,7 @@ namespace dawn::native {
|
||||||
Ref<ComputePassEncoder> pass = encoder->BeginComputePass();
|
Ref<ComputePassEncoder> pass = encoder->BeginComputePass();
|
||||||
pass->APISetPipeline(pipeline);
|
pass->APISetPipeline(pipeline);
|
||||||
pass->APISetBindGroup(0, bindGroup.Get());
|
pass->APISetBindGroup(0, bindGroup.Get());
|
||||||
pass->APIDispatch(
|
pass->APIDispatchWorkgroups(
|
||||||
static_cast<uint32_t>((timestamps->GetSize() / sizeof(uint64_t) + 7) / 8));
|
static_cast<uint32_t>((timestamps->GetSize() / sizeof(uint64_t) + 7) / 8));
|
||||||
pass->APIEnd();
|
pass->APIEnd();
|
||||||
|
|
||||||
|
|
|
@ -276,7 +276,7 @@ wgpu::CommandBuffer createCommandBuffer(const wgpu::TextureView backbufferView,
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(updatePipeline);
|
pass.SetPipeline(updatePipeline);
|
||||||
pass.SetBindGroup(0, updateBGs[i]);
|
pass.SetBindGroup(0, updateBGs[i]);
|
||||||
pass.Dispatch(kNumParticles);
|
pass.DispatchWorkgroups(kNumParticles);
|
||||||
pass.End();
|
pass.End();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1241,7 +1241,7 @@ std::ostringstream& DawnTestBase::ExpectSampledFloatDataImpl(wgpu::TextureView t
|
||||||
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(width, height);
|
pass.DispatchWorkgroups(width, height);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
|
@ -37,7 +37,7 @@ class BindGroupTests : public DawnTest {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
return encoder.Finish();
|
return encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -479,7 +479,7 @@ TEST_P(BindGroupTests, MultipleEntryPointsWithMultipleNonZeroGroups) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bindGroup0);
|
pass.SetBindGroup(0, bindGroup0);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
cb = encoder.Finish();
|
cb = encoder.Finish();
|
||||||
queue.Submit(1, &cb);
|
queue.Submit(1, &cb);
|
||||||
|
@ -510,7 +510,7 @@ TEST_P(BindGroupTests, MultipleEntryPointsWithMultipleNonZeroGroups) {
|
||||||
pass.SetBindGroup(0, bindGroup0);
|
pass.SetBindGroup(0, bindGroup0);
|
||||||
pass.SetBindGroup(1, bindGroup1);
|
pass.SetBindGroup(1, bindGroup1);
|
||||||
pass.SetBindGroup(2, bindGroup2);
|
pass.SetBindGroup(2, bindGroup2);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
cb = encoder.Finish();
|
cb = encoder.Finish();
|
||||||
queue.Submit(1, &cb);
|
queue.Submit(1, &cb);
|
||||||
|
@ -543,7 +543,7 @@ TEST_P(BindGroupTests, MultipleEntryPointsWithMultipleNonZeroGroups) {
|
||||||
pass.SetBindGroup(0, bindGroup0);
|
pass.SetBindGroup(0, bindGroup0);
|
||||||
pass.SetBindGroup(1, bindGroup1);
|
pass.SetBindGroup(1, bindGroup1);
|
||||||
pass.SetBindGroup(2, bindGroup2);
|
pass.SetBindGroup(2, bindGroup2);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
cb = encoder.Finish();
|
cb = encoder.Finish();
|
||||||
queue.Submit(1, &cb);
|
queue.Submit(1, &cb);
|
||||||
|
@ -1062,7 +1062,7 @@ TEST_P(BindGroupTests, DynamicOffsetOrder) {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.SetBindGroup(0, bindGroup, offsets.size(), offsets.data());
|
computePassEncoder.SetBindGroup(0, bindGroup, offsets.size(), offsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
|
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
|
@ -1144,7 +1144,7 @@ TEST_P(BindGroupTests, DynamicAndNonDynamicBindingsDoNotConflictAfterRemapping)
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.SetBindGroup(0, bindGroup, offsets.size(), offsets.data());
|
computePassEncoder.SetBindGroup(0, bindGroup, offsets.size(), offsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
|
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
|
@ -1364,7 +1364,7 @@ TEST_P(BindGroupTests, EmptyLayout) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
@ -1563,7 +1563,7 @@ TEST_P(BindGroupTests, ReallyLargeBindGroup) {
|
||||||
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1, 1, 1);
|
pass.DispatchWorkgroups(1, 1, 1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
|
|
|
@ -190,7 +190,7 @@ class BufferZeroInitTest : public DawnTest {
|
||||||
wgpu::ComputePassEncoder computePass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePass = encoder.BeginComputePass();
|
||||||
computePass.SetBindGroup(0, bindGroup);
|
computePass.SetBindGroup(0, bindGroup);
|
||||||
computePass.SetPipeline(pipeline);
|
computePass.SetPipeline(pipeline);
|
||||||
computePass.Dispatch(1u);
|
computePass.DispatchWorkgroups(1u);
|
||||||
computePass.End();
|
computePass.End();
|
||||||
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
||||||
|
|
||||||
|
@ -458,7 +458,7 @@ class BufferZeroInitTest : public DawnTest {
|
||||||
wgpu::ComputePassEncoder computePass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePass = encoder.BeginComputePass();
|
||||||
computePass.SetBindGroup(0, bindGroup);
|
computePass.SetBindGroup(0, bindGroup);
|
||||||
computePass.SetPipeline(pipeline);
|
computePass.SetPipeline(pipeline);
|
||||||
computePass.DispatchIndirect(indirectBuffer, indirectBufferOffset);
|
computePass.DispatchWorkgroupsIndirect(indirectBuffer, indirectBufferOffset);
|
||||||
computePass.End();
|
computePass.End();
|
||||||
|
|
||||||
ExpectLazyClearSubmitAndCheckOutputs(encoder, indirectBuffer, bufferSize, outputTexture);
|
ExpectLazyClearSubmitAndCheckOutputs(encoder, indirectBuffer, bufferSize, outputTexture);
|
||||||
|
|
|
@ -74,7 +74,7 @@ void ComputeCopyStorageBufferTests::BasicTest(const char* shader) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(kInstances);
|
pass.DispatchWorkgroups(kInstances);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
|
|
@ -100,7 +100,7 @@ class ComputeDispatchTests : public DawnTest {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(x, y, z);
|
pass.DispatchWorkgroups(x, y, z);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
@ -159,7 +159,7 @@ class ComputeDispatchTests : public DawnTest {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(computePipelineForTest);
|
pass.SetPipeline(computePipelineForTest);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.DispatchIndirect(indirectBuffer, indirectOffset);
|
pass.DispatchWorkgroupsIndirect(indirectBuffer, indirectOffset);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
|
|
@ -324,7 +324,7 @@ fn main() {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
|
|
@ -56,7 +56,7 @@ void ComputeSharedMemoryTests::BasicTest(const char* shader) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
@ -178,7 +178,7 @@ TEST_P(ComputeSharedMemoryTests, AssortedTypes) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
|
|
@ -58,7 +58,7 @@ TEST_P(ComputeStorageBufferBarrierTests, AddIncrement) {
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
for (uint32_t i = 0; i < kIterations; ++i) {
|
for (uint32_t i = 0; i < kIterations; ++i) {
|
||||||
pass.Dispatch(kNumValues);
|
pass.DispatchWorkgroups(kNumValues);
|
||||||
}
|
}
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
@ -121,9 +121,9 @@ TEST_P(ComputeStorageBufferBarrierTests, AddPingPong) {
|
||||||
|
|
||||||
for (uint32_t i = 0; i < kIterations / 2; ++i) {
|
for (uint32_t i = 0; i < kIterations / 2; ++i) {
|
||||||
pass.SetBindGroup(0, bindGroups[0]);
|
pass.SetBindGroup(0, bindGroups[0]);
|
||||||
pass.Dispatch(kNumValues);
|
pass.DispatchWorkgroups(kNumValues);
|
||||||
pass.SetBindGroup(0, bindGroups[1]);
|
pass.SetBindGroup(0, bindGroups[1]);
|
||||||
pass.Dispatch(kNumValues);
|
pass.DispatchWorkgroups(kNumValues);
|
||||||
}
|
}
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
@ -187,9 +187,9 @@ TEST_P(ComputeStorageBufferBarrierTests, StorageAndReadonlyStoragePingPongInOneP
|
||||||
|
|
||||||
for (uint32_t i = 0; i < kIterations / 2; ++i) {
|
for (uint32_t i = 0; i < kIterations / 2; ++i) {
|
||||||
pass.SetBindGroup(0, bindGroups[0]);
|
pass.SetBindGroup(0, bindGroups[0]);
|
||||||
pass.Dispatch(kNumValues);
|
pass.DispatchWorkgroups(kNumValues);
|
||||||
pass.SetBindGroup(0, bindGroups[1]);
|
pass.SetBindGroup(0, bindGroups[1]);
|
||||||
pass.Dispatch(kNumValues);
|
pass.DispatchWorkgroups(kNumValues);
|
||||||
}
|
}
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
@ -256,7 +256,7 @@ TEST_P(ComputeStorageBufferBarrierTests, UniformToStorageAddPingPong) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroups[b]);
|
pass.SetBindGroup(0, bindGroups[b]);
|
||||||
pass.Dispatch(kNumValues / 4);
|
pass.DispatchWorkgroups(kNumValues / 4);
|
||||||
pass.End();
|
pass.End();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ TEST_P(ComputeStorageBufferBarrierTests, UniformToStorageAddPingPongInOnePass) {
|
||||||
for (uint32_t i = 0, b = 0; i < kIterations; ++i, b = 1 - b) {
|
for (uint32_t i = 0, b = 0; i < kIterations; ++i, b = 1 - b) {
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroups[b]);
|
pass.SetBindGroup(0, bindGroups[b]);
|
||||||
pass.Dispatch(kNumValues / 4);
|
pass.DispatchWorkgroups(kNumValues / 4);
|
||||||
}
|
}
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
|
@ -389,7 +389,7 @@ TEST_P(ComputeStorageBufferBarrierTests, IndirectBufferCorrectBarrier) {
|
||||||
|
|
||||||
pass.SetPipeline(step2Pipeline);
|
pass.SetPipeline(step2Pipeline);
|
||||||
pass.SetBindGroup(0, step2Group);
|
pass.SetBindGroup(0, step2Group);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
// 3 - Use the indirect buffer in a Dispatch while also reading its data.
|
// 3 - Use the indirect buffer in a Dispatch while also reading its data.
|
||||||
wgpu::Buffer resultBuffer = utils::CreateBufferFromData<uint32_t>(
|
wgpu::Buffer resultBuffer = utils::CreateBufferFromData<uint32_t>(
|
||||||
|
@ -399,7 +399,7 @@ TEST_P(ComputeStorageBufferBarrierTests, IndirectBufferCorrectBarrier) {
|
||||||
|
|
||||||
pass.SetPipeline(step3Pipeline);
|
pass.SetPipeline(step3Pipeline);
|
||||||
pass.SetBindGroup(0, step3Group);
|
pass.SetBindGroup(0, step3Group);
|
||||||
pass.DispatchIndirect(buf, 0);
|
pass.DispatchWorkgroupsIndirect(buf, 0);
|
||||||
|
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
|
|
@ -475,7 +475,7 @@ class CopyTextureForBrowserTests : public Parent {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(dstSpec.textureSize.width,
|
pass.DispatchWorkgroups(dstSpec.textureSize.width,
|
||||||
dstSpec.textureSize.height); // Verify dst texture content
|
dstSpec.textureSize.height); // Verify dst texture content
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ class CreatePipelineAsyncTest : public DawnTest {
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.SetPipeline(currentTask->computePipeline);
|
pass.SetPipeline(currentTask->computePipeline);
|
||||||
|
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
|
|
@ -139,6 +139,35 @@ TEST_P(DeprecationTests, EndPass) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test that dispatch() and dispatchIndirect() is deprecated.
|
||||||
|
TEST_P(DeprecationTests, Dispatch) {
|
||||||
|
wgpu::ShaderModule module = utils::CreateShaderModule(device, R"(
|
||||||
|
@stage(compute) @workgroup_size(1, 1, 1)
|
||||||
|
fn main() {
|
||||||
|
})");
|
||||||
|
|
||||||
|
wgpu::ComputePipelineDescriptor csDesc;
|
||||||
|
csDesc.compute.module = module;
|
||||||
|
csDesc.compute.entryPoint = "main";
|
||||||
|
wgpu::ComputePipeline pipeline = device.CreateComputePipeline(&csDesc);
|
||||||
|
|
||||||
|
std::array<uint32_t, 3> indirectBufferData = {1, 0, 0};
|
||||||
|
|
||||||
|
wgpu::Buffer indirectBuffer = utils::CreateBufferFromData(
|
||||||
|
device, &indirectBufferData[0], indirectBufferData.size() * sizeof(uint32_t),
|
||||||
|
wgpu::BufferUsage::Indirect);
|
||||||
|
|
||||||
|
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||||
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
|
pass.SetPipeline(pipeline);
|
||||||
|
|
||||||
|
EXPECT_DEPRECATION_WARNING(pass.Dispatch(1));
|
||||||
|
|
||||||
|
EXPECT_DEPRECATION_WARNING(pass.DispatchIndirect(indirectBuffer, 0));
|
||||||
|
|
||||||
|
pass.End();
|
||||||
|
}
|
||||||
|
|
||||||
DAWN_INSTANTIATE_TEST(DeprecationTests,
|
DAWN_INSTANTIATE_TEST(DeprecationTests,
|
||||||
D3D12Backend(),
|
D3D12Backend(),
|
||||||
MetalBackend(),
|
MetalBackend(),
|
||||||
|
|
|
@ -385,7 +385,7 @@ class DepthStencilSamplingTest : public DawnTestWithParams<DepthStencilSamplingT
|
||||||
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,7 +583,7 @@ class DepthStencilSamplingTest : public DawnTestWithParams<DepthStencilSamplingT
|
||||||
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -723,7 +723,7 @@ TEST_P(DepthStencilSamplingTest, SampleDepthAndStencilRender) {
|
||||||
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = commandEncoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -687,7 +687,7 @@ TEST_P(DrawIndexedIndirectTest, ValidateReusedBundleWithChangingParams) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(computePipeline);
|
pass.SetPipeline(computePipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -264,7 +264,7 @@ TEST_P(DynamicBufferOffsetTests, BasicComputePipeline) {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
@ -284,7 +284,7 @@ TEST_P(DynamicBufferOffsetTests, SetDynamicOffsetsComputePipeline) {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
@ -339,10 +339,10 @@ TEST_P(DynamicBufferOffsetTests, InheritDynamicOffsetsComputePipeline) {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.SetPipeline(testPipeline);
|
computePassEncoder.SetPipeline(testPipeline);
|
||||||
computePassEncoder.SetBindGroup(1, mBindGroups[1]);
|
computePassEncoder.SetBindGroup(1, mBindGroups[1]);
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
@ -392,9 +392,9 @@ TEST_P(DynamicBufferOffsetTests, UpdateDynamicOffsetsMultipleTimesComputePipelin
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.SetBindGroup(0, mBindGroups[0], testOffsets.size(), testOffsets.data());
|
computePassEncoder.SetBindGroup(0, mBindGroups[0], testOffsets.size(), testOffsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
@ -564,7 +564,7 @@ TEST_P(ClampedOOBDynamicBufferOffsetTests, CheckOOBAccess) {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.SetBindGroup(0, bindGroup, dynamicOffsets.size(), dynamicOffsets.data());
|
computePassEncoder.SetBindGroup(0, bindGroup, dynamicOffsets.size(), dynamicOffsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
wgpu::CommandBuffer commands = commandEncoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
|
@ -119,7 +119,7 @@ TEST_P(EntryPointTests, TwoComputeInModule) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(write1);
|
pass.SetPipeline(write1);
|
||||||
pass.SetBindGroup(0, group);
|
pass.SetBindGroup(0, group);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
@ -133,7 +133,7 @@ TEST_P(EntryPointTests, TwoComputeInModule) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(write42);
|
pass.SetPipeline(write42);
|
||||||
pass.SetBindGroup(0, group);
|
pass.SetBindGroup(0, group);
|
||||||
pass.Dispatch(42);
|
pass.DispatchWorkgroups(42);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
|
@ -106,7 +106,7 @@ TEST_P(GpuMemorySyncTests, ComputePass) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(compute);
|
pass.SetPipeline(compute);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ TEST_P(GpuMemorySyncTests, RenderPassToComputePass) {
|
||||||
wgpu::ComputePassEncoder pass1 = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass1 = encoder.BeginComputePass();
|
||||||
pass1.SetPipeline(compute);
|
pass1.SetPipeline(compute);
|
||||||
pass1.SetBindGroup(0, bindGroup1);
|
pass1.SetBindGroup(0, bindGroup1);
|
||||||
pass1.Dispatch(1);
|
pass1.DispatchWorkgroups(1);
|
||||||
pass1.End();
|
pass1.End();
|
||||||
|
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
@ -196,7 +196,7 @@ TEST_P(GpuMemorySyncTests, ComputePassToRenderPass) {
|
||||||
wgpu::ComputePassEncoder pass0 = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass0 = encoder.BeginComputePass();
|
||||||
pass0.SetPipeline(compute);
|
pass0.SetPipeline(compute);
|
||||||
pass0.SetBindGroup(0, bindGroup1);
|
pass0.SetBindGroup(0, bindGroup1);
|
||||||
pass0.Dispatch(1);
|
pass0.DispatchWorkgroups(1);
|
||||||
pass0.End();
|
pass0.End();
|
||||||
|
|
||||||
// Read that data in render pass.
|
// Read that data in render pass.
|
||||||
|
@ -296,7 +296,7 @@ TEST_P(StorageToUniformSyncTests, ReadAfterWriteWithSameCommandBuffer) {
|
||||||
wgpu::ComputePassEncoder pass0 = encoder0.BeginComputePass();
|
wgpu::ComputePassEncoder pass0 = encoder0.BeginComputePass();
|
||||||
pass0.SetPipeline(compute);
|
pass0.SetPipeline(compute);
|
||||||
pass0.SetBindGroup(0, computeBindGroup);
|
pass0.SetBindGroup(0, computeBindGroup);
|
||||||
pass0.Dispatch(1);
|
pass0.DispatchWorkgroups(1);
|
||||||
pass0.End();
|
pass0.End();
|
||||||
|
|
||||||
// Read that data in render pass.
|
// Read that data in render pass.
|
||||||
|
@ -329,7 +329,7 @@ TEST_P(StorageToUniformSyncTests, ReadAfterWriteWithDifferentCommandBuffers) {
|
||||||
wgpu::ComputePassEncoder pass0 = encoder0.BeginComputePass();
|
wgpu::ComputePassEncoder pass0 = encoder0.BeginComputePass();
|
||||||
pass0.SetPipeline(compute);
|
pass0.SetPipeline(compute);
|
||||||
pass0.SetBindGroup(0, computeBindGroup);
|
pass0.SetBindGroup(0, computeBindGroup);
|
||||||
pass0.Dispatch(1);
|
pass0.DispatchWorkgroups(1);
|
||||||
pass0.End();
|
pass0.End();
|
||||||
cb[0] = encoder0.Finish();
|
cb[0] = encoder0.Finish();
|
||||||
|
|
||||||
|
@ -364,7 +364,7 @@ TEST_P(StorageToUniformSyncTests, ReadAfterWriteWithDifferentQueueSubmits) {
|
||||||
wgpu::ComputePassEncoder pass0 = encoder0.BeginComputePass();
|
wgpu::ComputePassEncoder pass0 = encoder0.BeginComputePass();
|
||||||
pass0.SetPipeline(compute);
|
pass0.SetPipeline(compute);
|
||||||
pass0.SetBindGroup(0, computeBindGroup);
|
pass0.SetBindGroup(0, computeBindGroup);
|
||||||
pass0.Dispatch(1);
|
pass0.DispatchWorkgroups(1);
|
||||||
pass0.End();
|
pass0.End();
|
||||||
cb[0] = encoder0.Finish();
|
cb[0] = encoder0.Finish();
|
||||||
queue.Submit(1, &cb[0]);
|
queue.Submit(1, &cb[0]);
|
||||||
|
@ -468,7 +468,7 @@ TEST_P(MultipleWriteThenMultipleReadTests, SeparateBuffers) {
|
||||||
wgpu::ComputePassEncoder pass0 = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass0 = encoder.BeginComputePass();
|
||||||
pass0.SetPipeline(cp);
|
pass0.SetPipeline(cp);
|
||||||
pass0.SetBindGroup(0, bindGroup0);
|
pass0.SetBindGroup(0, bindGroup0);
|
||||||
pass0.Dispatch(1);
|
pass0.DispatchWorkgroups(1);
|
||||||
pass0.End();
|
pass0.End();
|
||||||
|
|
||||||
// Create pipeline, bind group, and reuse buffers in render pass.
|
// Create pipeline, bind group, and reuse buffers in render pass.
|
||||||
|
@ -585,7 +585,7 @@ TEST_P(MultipleWriteThenMultipleReadTests, OneBuffer) {
|
||||||
wgpu::ComputePassEncoder pass0 = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass0 = encoder.BeginComputePass();
|
||||||
pass0.SetPipeline(cp);
|
pass0.SetPipeline(cp);
|
||||||
pass0.SetBindGroup(0, bindGroup0);
|
pass0.SetBindGroup(0, bindGroup0);
|
||||||
pass0.Dispatch(1);
|
pass0.DispatchWorkgroups(1);
|
||||||
pass0.End();
|
pass0.End();
|
||||||
|
|
||||||
// Create pipeline, bind group, and reuse the buffer in render pass.
|
// Create pipeline, bind group, and reuse the buffer in render pass.
|
||||||
|
|
|
@ -91,7 +91,7 @@ TEST_P(MaxLimitTests, MaxComputeWorkgroupStorageSize) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
@ -225,7 +225,7 @@ TEST_P(MaxLimitTests, MaxBufferBindingSize) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
|
@ -215,7 +215,7 @@ TEST_P(MultisampledSamplingTest, SamplePositions) {
|
||||||
{{0, colorView},
|
{{0, colorView},
|
||||||
{1, depthView},
|
{1, depthView},
|
||||||
{2, outputBuffer, alignedResultSize * sampleOffset, kResultSize}}));
|
{2, outputBuffer, alignedResultSize * sampleOffset, kResultSize}}));
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,7 +144,7 @@ TEST_P(OpArrayLengthTest, Compute) {
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, mBindGroup);
|
pass.SetBindGroup(0, mBindGroup);
|
||||||
pass.SetBindGroup(1, resultBindGroup);
|
pass.SetBindGroup(1, resultBindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
|
|
@ -162,7 +162,7 @@ TEST_P(ShaderFloat16Tests, DISABLED_Basic16BitFloatFeaturesTest) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
|
@ -91,7 +91,7 @@ struct Buf {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
@ -456,7 +456,7 @@ struct Buf {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
@ -512,7 +512,7 @@ struct Buf {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
@ -564,7 +564,7 @@ struct Buf {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
commands = encoder.Finish();
|
commands = encoder.Finish();
|
||||||
|
@ -651,15 +651,15 @@ struct Buf {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline1);
|
pass.SetPipeline(pipeline1);
|
||||||
pass.SetBindGroup(0, bindGroup1);
|
pass.SetBindGroup(0, bindGroup1);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.SetPipeline(pipeline2);
|
pass.SetPipeline(pipeline2);
|
||||||
pass.SetBindGroup(0, bindGroup2);
|
pass.SetBindGroup(0, bindGroup2);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.SetPipeline(pipeline3);
|
pass.SetPipeline(pipeline3);
|
||||||
pass.SetBindGroup(0, bindGroup3);
|
pass.SetBindGroup(0, bindGroup3);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
|
|
|
@ -515,7 +515,7 @@ fn IsEqualTo(pixel : vec4<f32>, expected : vec4<f32>) -> bool {
|
||||||
wgpu::ComputePassEncoder computeEncoder = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder computeEncoder = encoder.BeginComputePass();
|
||||||
computeEncoder.SetBindGroup(0, bindGroup);
|
computeEncoder.SetBindGroup(0, bindGroup);
|
||||||
computeEncoder.SetPipeline(pipeline);
|
computeEncoder.SetPipeline(pipeline);
|
||||||
computeEncoder.Dispatch(1);
|
computeEncoder.DispatchWorkgroups(1);
|
||||||
computeEncoder.End();
|
computeEncoder.End();
|
||||||
|
|
||||||
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
||||||
|
@ -567,7 +567,7 @@ fn IsEqualTo(pixel : vec4<f32>, expected : vec4<f32>) -> bool {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = encoder.BeginComputePass();
|
||||||
computePassEncoder.SetBindGroup(0, bindGroup);
|
computePassEncoder.SetBindGroup(0, bindGroup);
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
||||||
queue.Submit(1, &commandBuffer);
|
queue.Submit(1, &commandBuffer);
|
||||||
|
@ -591,7 +591,7 @@ fn IsEqualTo(pixel : vec4<f32>, expected : vec4<f32>) -> bool {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = encoder.BeginComputePass();
|
||||||
computePassEncoder.SetBindGroup(0, bindGroup);
|
computePassEncoder.SetBindGroup(0, bindGroup);
|
||||||
computePassEncoder.SetPipeline(pipeline);
|
computePassEncoder.SetPipeline(pipeline);
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
wgpu::CommandBuffer commandBuffer = encoder.Finish();
|
||||||
queue.Submit(1, &commandBuffer);
|
queue.Submit(1, &commandBuffer);
|
||||||
|
@ -833,11 +833,11 @@ TEST_P(StorageTextureTests, SampledAndWriteonlyStorageTexturePingPong) {
|
||||||
|
|
||||||
// After the first dispatch the value in storageTexture2 should be 1u.
|
// After the first dispatch the value in storageTexture2 should be 1u.
|
||||||
pass.SetBindGroup(0, bindGroupA);
|
pass.SetBindGroup(0, bindGroupA);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
// After the second dispatch the value in storageTexture1 should be 2u;
|
// After the second dispatch the value in storageTexture1 should be 2u;
|
||||||
pass.SetBindGroup(0, bindGroupB);
|
pass.SetBindGroup(0, bindGroupB);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
|
|
|
@ -1002,7 +1002,7 @@ TEST_P(TextureZeroInitTest, ComputePassSampledTextureClear) {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(computePipeline);
|
pass.SetPipeline(computePipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
EXPECT_LAZY_CLEAR(1u, queue.Submit(1, &commands));
|
EXPECT_LAZY_CLEAR(1u, queue.Submit(1, &commands));
|
||||||
|
|
|
@ -482,7 +482,7 @@ void ShaderRobustnessPerf::Step() {
|
||||||
pass.SetPipeline(mPipeline);
|
pass.SetPipeline(mPipeline);
|
||||||
pass.SetBindGroup(0, mBindGroup);
|
pass.SetBindGroup(0, mBindGroup);
|
||||||
for (unsigned int i = 0; i < kNumIterations; ++i) {
|
for (unsigned int i = 0; i < kNumIterations; ++i) {
|
||||||
pass.Dispatch(ceil(static_cast<float>(mDimBOuter) / float{kTileSize}),
|
pass.DispatchWorkgroups(ceil(static_cast<float>(mDimBOuter) / float{kTileSize}),
|
||||||
ceil(static_cast<float>(mDimAOuter) / float{kTileSize}), 1);
|
ceil(static_cast<float>(mDimAOuter) / float{kTileSize}), 1);
|
||||||
}
|
}
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
|
@ -105,7 +105,7 @@ namespace dawn::native {
|
||||||
pass.SetBindGroup(1, dynamicBG, 1, &dynamicOffset);
|
pass.SetBindGroup(1, dynamicBG, 1, &dynamicOffset);
|
||||||
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline0.Get());
|
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline0.Get());
|
||||||
|
|
||||||
pass.DispatchIndirect(indirectBuffer, 0);
|
pass.DispatchWorkgroupsIndirect(indirectBuffer, 0);
|
||||||
|
|
||||||
// Expect restored state.
|
// Expect restored state.
|
||||||
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline0.Get());
|
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline0.Get());
|
||||||
|
@ -118,7 +118,7 @@ namespace dawn::native {
|
||||||
// Dispatch again to check that the restored state can be used.
|
// Dispatch again to check that the restored state can be used.
|
||||||
// Also pass an indirect offset which should get replaced with the offset
|
// Also pass an indirect offset which should get replaced with the offset
|
||||||
// into the scratch indirect buffer (0).
|
// into the scratch indirect buffer (0).
|
||||||
pass.DispatchIndirect(indirectBuffer, 4);
|
pass.DispatchWorkgroupsIndirect(indirectBuffer, 4);
|
||||||
|
|
||||||
// Expect restored state.
|
// Expect restored state.
|
||||||
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline0.Get());
|
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline0.Get());
|
||||||
|
@ -135,7 +135,7 @@ namespace dawn::native {
|
||||||
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline1.Get());
|
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline1.Get());
|
||||||
EXPECT_EQ(ToAPI(stateTracker->GetPipelineLayout()), pl1.Get());
|
EXPECT_EQ(ToAPI(stateTracker->GetPipelineLayout()), pl1.Get());
|
||||||
|
|
||||||
pass.DispatchIndirect(indirectBuffer, 0);
|
pass.DispatchWorkgroupsIndirect(indirectBuffer, 0);
|
||||||
|
|
||||||
// Expect restored state.
|
// Expect restored state.
|
||||||
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline1.Get());
|
EXPECT_EQ(ToAPI(stateTracker->GetComputePipeline()), pipeline1.Get());
|
||||||
|
|
|
@ -1531,7 +1531,7 @@ class SetBindGroupValidationTest : public ValidationTest {
|
||||||
if (bindGroup != nullptr) {
|
if (bindGroup != nullptr) {
|
||||||
computePassEncoder.SetBindGroup(0, bindGroup, count, offsets);
|
computePassEncoder.SetBindGroup(0, bindGroup, count, offsets);
|
||||||
}
|
}
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
if (!expectation) {
|
if (!expectation) {
|
||||||
ASSERT_DEVICE_ERROR(commandEncoder.Finish());
|
ASSERT_DEVICE_ERROR(commandEncoder.Finish());
|
||||||
|
@ -1597,9 +1597,9 @@ TEST_F(SetBindGroupValidationTest, VerifyGroupIfChangedAfterAction) {
|
||||||
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
wgpu::ComputePassEncoder computePassEncoder = commandEncoder.BeginComputePass();
|
||||||
computePassEncoder.SetPipeline(computePipeline);
|
computePassEncoder.SetPipeline(computePipeline);
|
||||||
computePassEncoder.SetBindGroup(0, bindGroup, 3, offsets.data());
|
computePassEncoder.SetBindGroup(0, bindGroup, 3, offsets.data());
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.SetBindGroup(0, invalidGroup, 0, nullptr);
|
computePassEncoder.SetBindGroup(0, invalidGroup, 0, nullptr);
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
ASSERT_DEVICE_ERROR(commandEncoder.Finish());
|
ASSERT_DEVICE_ERROR(commandEncoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -2298,7 +2298,7 @@ class BindingsValidationTest : public BindGroupLayoutCompatibilityTest {
|
||||||
cp.SetBindGroup(i, bg[i]);
|
cp.SetBindGroup(i, bg[i]);
|
||||||
}
|
}
|
||||||
cp.SetPipeline(pipeline);
|
cp.SetPipeline(pipeline);
|
||||||
cp.Dispatch(1);
|
cp.DispatchWorkgroups(1);
|
||||||
cp.End();
|
cp.End();
|
||||||
if (!expectation) {
|
if (!expectation) {
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
|
|
|
@ -54,7 +54,7 @@ class ComputeIndirectValidationTest : public ValidationTest {
|
||||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.DispatchIndirect(indirectBuffer, indirectOffset);
|
pass.DispatchWorkgroupsIndirect(indirectBuffer, indirectOffset);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
ValidateExpectation(encoder, expectation);
|
ValidateExpectation(encoder, expectation);
|
||||||
|
|
|
@ -42,7 +42,7 @@ class ComputeValidationTest : public ValidationTest {
|
||||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.Dispatch(x, y, z);
|
pass.DispatchWorkgroups(x, y, z);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
|
|
@ -289,7 +289,7 @@ class MinBufferSizeTestsBase : public ValidationTest {
|
||||||
for (size_t i = 0; i < bindGroups.size(); ++i) {
|
for (size_t i = 0; i < bindGroups.size(); ++i) {
|
||||||
computePassEncoder.SetBindGroup(i, bindGroups[i]);
|
computePassEncoder.SetBindGroup(i, bindGroups[i]);
|
||||||
}
|
}
|
||||||
computePassEncoder.Dispatch(1);
|
computePassEncoder.DispatchWorkgroups(1);
|
||||||
computePassEncoder.End();
|
computePassEncoder.End();
|
||||||
if (!expectation) {
|
if (!expectation) {
|
||||||
ASSERT_DEVICE_ERROR(commandEncoder.Finish());
|
ASSERT_DEVICE_ERROR(commandEncoder.Finish());
|
||||||
|
|
|
@ -276,7 +276,7 @@ namespace {
|
||||||
pass.SetBindGroup(1, unusedBG);
|
pass.SetBindGroup(1, unusedBG);
|
||||||
pass.SetBindGroup(1, usedBG);
|
pass.SetBindGroup(1, usedBG);
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
|
||||||
|
@ -349,7 +349,7 @@ namespace {
|
||||||
pass.SetBindGroup(2, unusedBG);
|
pass.SetBindGroup(2, unusedBG);
|
||||||
pass.SetBindGroup(2, usedBG);
|
pass.SetBindGroup(2, usedBG);
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
|
||||||
|
|
|
@ -172,7 +172,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -365,11 +365,11 @@ namespace {
|
||||||
|
|
||||||
pass.SetPipeline(cp0);
|
pass.SetPipeline(cp0);
|
||||||
pass.SetBindGroup(0, bg0);
|
pass.SetBindGroup(0, bg0);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.SetPipeline(cp1);
|
pass.SetPipeline(cp1);
|
||||||
pass.SetBindGroup(0, bg1);
|
pass.SetBindGroup(0, bg1);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
|
@ -430,7 +430,7 @@ namespace {
|
||||||
|
|
||||||
pass.SetBindGroup(0, readBG);
|
pass.SetBindGroup(0, readBG);
|
||||||
pass.SetBindGroup(1, writeBG);
|
pass.SetBindGroup(1, writeBG);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
|
@ -474,7 +474,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetBindGroup(0, bg1);
|
pass.SetBindGroup(0, bg1);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
|
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
|
@ -621,7 +621,7 @@ namespace {
|
||||||
pass.SetBindGroup(1, readBG0);
|
pass.SetBindGroup(1, readBG0);
|
||||||
pass.SetBindGroup(1, readBG1);
|
pass.SetBindGroup(1, readBG1);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -635,7 +635,7 @@ namespace {
|
||||||
pass.SetBindGroup(1, readBG1);
|
pass.SetBindGroup(1, readBG1);
|
||||||
pass.SetBindGroup(1, readBG0);
|
pass.SetBindGroup(1, readBG0);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -682,7 +682,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -732,7 +732,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -811,7 +811,7 @@ namespace {
|
||||||
pass.SetBindGroup(0, bg0);
|
pass.SetBindGroup(0, bg0);
|
||||||
pass.SetBindGroup(1, bg1);
|
pass.SetBindGroup(1, bg1);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -877,7 +877,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -996,7 +996,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -1228,11 +1228,11 @@ namespace {
|
||||||
|
|
||||||
pass.SetPipeline(readCp);
|
pass.SetPipeline(readCp);
|
||||||
pass.SetBindGroup(0, readBG);
|
pass.SetBindGroup(0, readBG);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.SetPipeline(writeCp);
|
pass.SetPipeline(writeCp);
|
||||||
pass.SetBindGroup(0, writeBG);
|
pass.SetBindGroup(0, writeBG);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
|
@ -1298,7 +1298,7 @@ namespace {
|
||||||
|
|
||||||
pass.SetBindGroup(0, readBG);
|
pass.SetBindGroup(0, readBG);
|
||||||
pass.SetBindGroup(1, writeBG);
|
pass.SetBindGroup(1, writeBG);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
|
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
|
@ -1344,7 +1344,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -1430,7 +1430,7 @@ namespace {
|
||||||
pass.SetBindGroup(1, readBG0);
|
pass.SetBindGroup(1, readBG0);
|
||||||
pass.SetBindGroup(1, readBG1);
|
pass.SetBindGroup(1, readBG1);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -1445,7 +1445,7 @@ namespace {
|
||||||
pass.SetBindGroup(1, readBG1);
|
pass.SetBindGroup(1, readBG1);
|
||||||
pass.SetBindGroup(1, readBG0);
|
pass.SetBindGroup(1, readBG0);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -1497,7 +1497,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -1551,7 +1551,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.SetBindGroup(0, bg);
|
pass.SetBindGroup(0, bg);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
@ -1618,7 +1618,7 @@ namespace {
|
||||||
pass.SetBindGroup(0, readBG);
|
pass.SetBindGroup(0, readBG);
|
||||||
pass.SetBindGroup(1, writeBG);
|
pass.SetBindGroup(1, writeBG);
|
||||||
pass.SetPipeline(cp);
|
pass.SetPipeline(cp);
|
||||||
pass.Dispatch(1);
|
pass.DispatchWorkgroups(1);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -1673,7 +1673,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(readCp);
|
pass.SetPipeline(readCp);
|
||||||
pass.SetBindGroup(0, readBG);
|
pass.SetBindGroup(0, readBG);
|
||||||
pass.DispatchIndirect(buffer, 0);
|
pass.DispatchWorkgroupsIndirect(buffer, 0);
|
||||||
pass.End();
|
pass.End();
|
||||||
encoder.Finish();
|
encoder.Finish();
|
||||||
}
|
}
|
||||||
|
@ -1684,7 +1684,7 @@ namespace {
|
||||||
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
wgpu::ComputePassEncoder pass = encoder.BeginComputePass();
|
||||||
pass.SetPipeline(writeCp);
|
pass.SetPipeline(writeCp);
|
||||||
pass.SetBindGroup(0, writeBG);
|
pass.SetBindGroup(0, writeBG);
|
||||||
pass.DispatchIndirect(buffer, 0);
|
pass.DispatchWorkgroupsIndirect(buffer, 0);
|
||||||
pass.End();
|
pass.End();
|
||||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@ TEST_P(InternalStorageBufferBindingTests, QueryResolveBufferBoundAsInternalStora
|
||||||
pass.SetPipeline(pipeline);
|
pass.SetPipeline(pipeline);
|
||||||
pass.SetBindGroup(0, bindGroup);
|
pass.SetBindGroup(0, bindGroup);
|
||||||
for (uint32_t i = 0; i < kIterations; ++i) {
|
for (uint32_t i = 0; i < kIterations; ++i) {
|
||||||
pass.Dispatch(kNumValues);
|
pass.DispatchWorkgroups(kNumValues);
|
||||||
}
|
}
|
||||||
pass.End();
|
pass.End();
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
|
|
Loading…
Reference in New Issue