Make the dynamicOffsets optional in SetBindGroup.
BUG=dawn:22
Change-Id: I9d032d9be16a483046edc6055b86e61ae08118e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12023
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/dawn.json b/dawn.json
index 5470a27..48f56a5 100644
--- a/dawn.json
+++ b/dawn.json
@@ -395,8 +395,8 @@
"args": [
{"name": "group index", "type": "uint32_t"},
{"name": "group", "type": "bind group"},
- {"name": "dynamic offset count", "type": "uint32_t"},
- {"name": "dynamic offsets", "type": "uint64_t", "annotation": "const*", "length": "dynamic offset count"}
+ {"name": "dynamic offset count", "type": "uint32_t", "default": "0"},
+ {"name": "dynamic offsets", "type": "uint64_t", "annotation": "const*", "length": "dynamic offset count", "optional": true}
]
},
{
@@ -826,8 +826,8 @@
"args": [
{"name": "group index", "type": "uint32_t"},
{"name": "group", "type": "bind group"},
- {"name": "dynamic offset count", "type": "uint32_t"},
- {"name": "dynamic offsets", "type": "uint64_t", "annotation": "const*", "length": "dynamic offset count"}
+ {"name": "dynamic offset count", "type": "uint32_t", "default": "0"},
+ {"name": "dynamic offsets", "type": "uint64_t", "annotation": "const*", "length": "dynamic offset count", "optional": true}
]
},
{
@@ -973,8 +973,8 @@
"args": [
{"name": "group index", "type": "uint32_t"},
{"name": "group", "type": "bind group"},
- {"name": "dynamic offset count", "type": "uint32_t"},
- {"name": "dynamic offsets", "type": "uint64_t", "annotation": "const*", "length": "dynamic offset count"}
+ {"name": "dynamic offset count", "type": "uint32_t", "default": "0"},
+ {"name": "dynamic offsets", "type": "uint64_t", "annotation": "const*", "length": "dynamic offset count", "optional": true}
]
},
{
diff --git a/examples/ComputeBoids.cpp b/examples/ComputeBoids.cpp
index c01dd24..41f2d64 100644
--- a/examples/ComputeBoids.cpp
+++ b/examples/ComputeBoids.cpp
@@ -269,7 +269,7 @@
{
dawn::ComputePassEncoder pass = encoder.BeginComputePass();
pass.SetPipeline(updatePipeline);
- pass.SetBindGroup(0, updateBGs[i], 0, nullptr);
+ pass.SetBindGroup(0, updateBGs[i]);
pass.Dispatch(kNumParticles, 1, 1);
pass.EndPass();
}
diff --git a/examples/CppHelloTriangle.cpp b/examples/CppHelloTriangle.cpp
index 937c006..c9331c1 100644
--- a/examples/CppHelloTriangle.cpp
+++ b/examples/CppHelloTriangle.cpp
@@ -161,7 +161,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.SetVertexBuffers(0, 1, &vertexBuffer, vertexBufferOffsets);
pass.SetIndexBuffer(indexBuffer, 0);
pass.DrawIndexed(3, 1, 0, 0, 0);
diff --git a/examples/CubeReflection.cpp b/examples/CubeReflection.cpp
index b48eb1b..a6c2321 100644
--- a/examples/CubeReflection.cpp
+++ b/examples/CubeReflection.cpp
@@ -272,20 +272,20 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup[0], 0, nullptr);
+ pass.SetBindGroup(0, bindGroup[0]);
pass.SetVertexBuffers(0, 1, &vertexBuffer, vertexBufferOffsets);
pass.SetIndexBuffer(indexBuffer, 0);
pass.DrawIndexed(36, 1, 0, 0, 0);
pass.SetStencilReference(0x1);
pass.SetPipeline(planePipeline);
- pass.SetBindGroup(0, bindGroup[0], 0, nullptr);
+ pass.SetBindGroup(0, bindGroup[0]);
pass.SetVertexBuffers(0, 1, &planeBuffer, vertexBufferOffsets);
pass.DrawIndexed(6, 1, 0, 0, 0);
pass.SetPipeline(reflectionPipeline);
pass.SetVertexBuffers(0, 1, &vertexBuffer, vertexBufferOffsets);
- pass.SetBindGroup(0, bindGroup[1], 0, nullptr);
+ pass.SetBindGroup(0, bindGroup[1]);
pass.DrawIndexed(36, 1, 0, 0, 0);
pass.EndPass();
diff --git a/src/tests/end2end/BindGroupTests.cpp b/src/tests/end2end/BindGroupTests.cpp
index dbae686..fc8949b 100644
--- a/src/tests/end2end/BindGroupTests.cpp
+++ b/src/tests/end2end/BindGroupTests.cpp
@@ -28,7 +28,7 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::ComputePassEncoder pass = encoder.BeginComputePass();
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Dispatch(1, 1, 1);
pass.EndPass();
return encoder.Finish();
@@ -219,7 +219,7 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(3, 1, 0, 0);
pass.EndPass();
@@ -335,7 +335,7 @@
encoder.CopyBufferToTexture(&bufferCopyView, &textureCopyView, ©Size);
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(3, 1, 0, 0);
pass.EndPass();
@@ -431,8 +431,8 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroups[0], 0, nullptr);
- pass.SetBindGroup(1, bindGroups[1], 0, nullptr);
+ pass.SetBindGroup(0, bindGroups[0]);
+ pass.SetBindGroup(1, bindGroups[1]);
pass.Draw(3, 1, 0, 0);
pass.EndPass();
@@ -473,10 +473,10 @@
dawn::BindGroup bindGroup =
utils::MakeBindGroup(device, layout, {{0, uniformBuffer, 0, sizeof(color)}});
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
- pass.SetBindGroup(1, bindGroup, 0, nullptr);
- pass.SetBindGroup(2, bindGroup, 0, nullptr);
- pass.SetBindGroup(3, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
+ pass.SetBindGroup(1, bindGroup);
+ pass.SetBindGroup(2, bindGroup);
+ pass.SetBindGroup(3, bindGroup);
pass.Draw(3, 1, 0, 0);
pass.SetPipeline(pipeline);
@@ -518,7 +518,7 @@
utils::MakeBindGroup(device, layout, {{0, uniformBuffer, 0, sizeof(color)}});
// Set the bind group, then the pipeline, and draw.
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.SetPipeline(pipeline);
pass.Draw(3, 1, 0, 0);
diff --git a/src/tests/end2end/ColorStateTests.cpp b/src/tests/end2end/ColorStateTests.cpp
index 62dfee4..18bae35 100644
--- a/src/tests/end2end/ColorStateTests.cpp
+++ b/src/tests/end2end/ColorStateTests.cpp
@@ -116,12 +116,12 @@
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
// First use the base pipeline to draw a triangle with no blending
pass.SetPipeline(basePipeline);
- pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{base}})), 0, nullptr);
+ pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{base}})));
pass.Draw(3, 1, 0, 0);
// Then use the test pipeline to draw the test triangle with blending
pass.SetPipeline(testPipeline);
- pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{triangle.color}})), 0, nullptr);
+ pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{triangle.color}})));
pass.SetBlendColor(&blendColor);
pass.Draw(3, 1, 0, 0);
pass.EndPass();
@@ -735,7 +735,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(testPipeline);
- pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{base}})), 0, nullptr);
+ pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{base}})));
pass.Draw(3, 1, 0, 0);
pass.EndPass();
}
@@ -853,12 +853,12 @@
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
pass.SetPipeline(basePipeline);
pass.SetBindGroup(
- 0, MakeBindGroupForColors(std::array<RGBA8, 4>({{base, base, base, base}})), 0, nullptr);
+ 0, MakeBindGroupForColors(std::array<RGBA8, 4>({{base, base, base, base}})));
pass.Draw(3, 1, 0, 0);
pass.SetPipeline(testPipeline);
pass.SetBindGroup(0, MakeBindGroupForColors(
- std::array<RGBA8, 4>({{color0, color1, color2, color3}})), 0, nullptr);
+ std::array<RGBA8, 4>({{color0, color1, color2, color3}})));
pass.Draw(3, 1, 0, 0);
pass.EndPass();
}
@@ -928,11 +928,11 @@
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(basePipeline);
pass.SetBindGroup(0,
- MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})), 0, nullptr);
+ MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})));
pass.Draw(3, 1, 0, 0);
pass.SetPipeline(testPipeline);
pass.SetBindGroup(
- 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})), 0, nullptr);
+ 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})));
pass.Draw(3, 1, 0, 0);
pass.EndPass();
}
@@ -950,12 +950,12 @@
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(basePipeline);
pass.SetBindGroup(0,
- MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})), 0, nullptr);
+ MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})));
pass.Draw(3, 1, 0, 0);
pass.SetPipeline(testPipeline);
pass.SetBlendColor(&kWhite);
pass.SetBindGroup(
- 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})), 0, nullptr);
+ 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})));
pass.Draw(3, 1, 0, 0);
pass.EndPass();
}
@@ -974,12 +974,12 @@
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(basePipeline);
pass.SetBindGroup(0,
- MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})), 0, nullptr);
+ MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})));
pass.Draw(3, 1, 0, 0);
pass.SetPipeline(testPipeline);
pass.SetBlendColor(&kWhite);
pass.SetBindGroup(
- 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})), 0, nullptr);
+ 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})));
pass.Draw(3, 1, 0, 0);
pass.EndPass();
}
@@ -987,11 +987,11 @@
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(basePipeline);
pass.SetBindGroup(0,
- MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})), 0, nullptr);
+ MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(0, 0, 0, 0)}})));
pass.Draw(3, 1, 0, 0);
pass.SetPipeline(testPipeline);
pass.SetBindGroup(
- 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})), 0, nullptr);
+ 0, MakeBindGroupForColors(std::array<RGBA8, 1>({{RGBA8(255, 255, 255, 255)}})));
pass.Draw(3, 1, 0, 0);
pass.EndPass();
}
@@ -1046,7 +1046,7 @@
// Clear the output attachment to |base|
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(basePipeline);
- pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{base}})), 0, nullptr);
+ pass.SetBindGroup(0, MakeBindGroupForColors(std::array<RGBA8, 1>({{base}})));
pass.Draw(3, 1, 0, 0);
// Set a pipeline that will dirty the color write mask
diff --git a/src/tests/end2end/CompressedTextureFormatTests.cpp b/src/tests/end2end/CompressedTextureFormatTests.cpp
index 1a332b8..3208481 100644
--- a/src/tests/end2end/CompressedTextureFormatTests.cpp
+++ b/src/tests/end2end/CompressedTextureFormatTests.cpp
@@ -188,7 +188,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(renderPipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(6, 1, 0, 0);
pass.EndPass();
}
diff --git a/src/tests/end2end/ComputeCopyStorageBufferTests.cpp b/src/tests/end2end/ComputeCopyStorageBufferTests.cpp
index 6ade49a..0e8020a 100644
--- a/src/tests/end2end/ComputeCopyStorageBufferTests.cpp
+++ b/src/tests/end2end/ComputeCopyStorageBufferTests.cpp
@@ -80,7 +80,7 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::ComputePassEncoder pass = encoder.BeginComputePass();
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Dispatch(kInstances, 1, 1);
pass.EndPass();
diff --git a/src/tests/end2end/ComputeIndirectTests.cpp b/src/tests/end2end/ComputeIndirectTests.cpp
index 60fe850..1b77c00 100644
--- a/src/tests/end2end/ComputeIndirectTests.cpp
+++ b/src/tests/end2end/ComputeIndirectTests.cpp
@@ -90,7 +90,7 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::ComputePassEncoder pass = encoder.BeginComputePass();
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.DispatchIndirect(indirectBuffer, indirectOffset);
pass.EndPass();
diff --git a/src/tests/end2end/ComputeSharedMemoryTests.cpp b/src/tests/end2end/ComputeSharedMemoryTests.cpp
index 80bfec8..61337a6 100644
--- a/src/tests/end2end/ComputeSharedMemoryTests.cpp
+++ b/src/tests/end2end/ComputeSharedMemoryTests.cpp
@@ -61,7 +61,7 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::ComputePassEncoder pass = encoder.BeginComputePass();
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Dispatch(1, 1, 1);
pass.EndPass();
diff --git a/src/tests/end2end/DepthStencilStateTests.cpp b/src/tests/end2end/DepthStencilStateTests.cpp
index 93de654..c287d7e 100644
--- a/src/tests/end2end/DepthStencilStateTests.cpp
+++ b/src/tests/end2end/DepthStencilStateTests.cpp
@@ -285,7 +285,8 @@
pass.SetPipeline(pipeline);
pass.SetStencilReference(test.stencil); // Set the stencil reference
- pass.SetBindGroup(0, bindGroup, 0, nullptr); // Set the bind group which contains color and depth data
+ pass.SetBindGroup(
+ 0, bindGroup); // Set the bind group which contains color and depth data
pass.Draw(6, 1, 0, 0);
}
pass.EndPass();
diff --git a/src/tests/end2end/DynamicBufferOffsetTests.cpp b/src/tests/end2end/DynamicBufferOffsetTests.cpp
index cd1723a..dfd8f11 100644
--- a/src/tests/end2end/DynamicBufferOffsetTests.cpp
+++ b/src/tests/end2end/DynamicBufferOffsetTests.cpp
@@ -311,7 +311,7 @@
renderPassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
renderPassEncoder.Draw(3, 1, 0, 0);
renderPassEncoder.SetPipeline(testPipeline);
- renderPassEncoder.SetBindGroup(1, mBindGroups[1], 0, nullptr);
+ renderPassEncoder.SetBindGroup(1, mBindGroups[1]);
renderPassEncoder.Draw(3, 1, 0, 0);
renderPassEncoder.EndPass();
dawn::CommandBuffer commands = commandEncoder.Finish();
@@ -341,7 +341,7 @@
computePassEncoder.SetBindGroup(0, mBindGroups[0], offsets.size(), offsets.data());
computePassEncoder.Dispatch(1, 1, 1);
computePassEncoder.SetPipeline(testPipeline);
- computePassEncoder.SetBindGroup(1, mBindGroups[1], 0, nullptr);
+ computePassEncoder.SetBindGroup(1, mBindGroups[1]);
computePassEncoder.Dispatch(1, 1, 1);
computePassEncoder.EndPass();
dawn::CommandBuffer commands = commandEncoder.Finish();
diff --git a/src/tests/end2end/IOSurfaceWrappingTests.cpp b/src/tests/end2end/IOSurfaceWrappingTests.cpp
index 9b33101..176c6d2 100644
--- a/src/tests/end2end/IOSurfaceWrappingTests.cpp
+++ b/src/tests/end2end/IOSurfaceWrappingTests.cpp
@@ -317,7 +317,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(6, 1, 0, 0);
pass.EndPass();
}
diff --git a/src/tests/end2end/MultisampledRenderingTests.cpp b/src/tests/end2end/MultisampledRenderingTests.cpp
index ec979c2..e662acc 100644
--- a/src/tests/end2end/MultisampledRenderingTests.cpp
+++ b/src/tests/end2end/MultisampledRenderingTests.cpp
@@ -112,7 +112,7 @@
dawn::RenderPassEncoder renderPassEncoder = commandEncoder.BeginRenderPass(&renderPass);
renderPassEncoder.SetPipeline(pipeline);
- renderPassEncoder.SetBindGroup(0, bindGroup, 0, nullptr);
+ renderPassEncoder.SetBindGroup(0, bindGroup);
renderPassEncoder.Draw(3, 1, 0, 0);
renderPassEncoder.EndPass();
}
diff --git a/src/tests/end2end/OpArrayLengthTests.cpp b/src/tests/end2end/OpArrayLengthTests.cpp
index 1d8ac40..8a02b75 100644
--- a/src/tests/end2end/OpArrayLengthTests.cpp
+++ b/src/tests/end2end/OpArrayLengthTests.cpp
@@ -133,8 +133,8 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::ComputePassEncoder pass = encoder.BeginComputePass();
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, mBindGroup, 0, nullptr);
- pass.SetBindGroup(1, resultBindGroup, 0, nullptr);
+ pass.SetBindGroup(0, mBindGroup);
+ pass.SetBindGroup(1, resultBindGroup);
pass.Dispatch(1, 1, 1);
pass.EndPass();
@@ -189,7 +189,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, mBindGroup, 0, nullptr);
+ pass.SetBindGroup(0, mBindGroup);
pass.Draw(1, 1, 0, 0);
pass.EndPass();
}
@@ -250,7 +250,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, mBindGroup, 0, nullptr);
+ pass.SetBindGroup(0, mBindGroup);
pass.Draw(1, 1, 0, 0);
pass.EndPass();
}
diff --git a/src/tests/end2end/RenderBundleTests.cpp b/src/tests/end2end/RenderBundleTests.cpp
index 5c78a9a..3675cf9 100644
--- a/src/tests/end2end/RenderBundleTests.cpp
+++ b/src/tests/end2end/RenderBundleTests.cpp
@@ -111,7 +111,7 @@
uint64_t zeroOffset = 0;
renderBundleEncoder.SetPipeline(pipeline);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
- renderBundleEncoder.SetBindGroup(0, bindGroups[0], 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bindGroups[0]);
renderBundleEncoder.Draw(6, 1, 0, 0);
dawn::RenderBundle renderBundle = renderBundleEncoder.Finish();
@@ -142,7 +142,7 @@
renderBundleEncoder.SetPipeline(pipeline);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
- renderBundleEncoder.SetBindGroup(0, bindGroups[0], 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bindGroups[0]);
renderBundleEncoder.Draw(3, 1, 0, 0);
renderBundles[0] = renderBundleEncoder.Finish();
@@ -152,7 +152,7 @@
renderBundleEncoder.SetPipeline(pipeline);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
- renderBundleEncoder.SetBindGroup(0, bindGroups[1], 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bindGroups[1]);
renderBundleEncoder.Draw(3, 1, 3, 0);
renderBundles[1] = renderBundleEncoder.Finish();
@@ -182,7 +182,7 @@
uint64_t zeroOffset = 0;
renderBundleEncoder.SetPipeline(pipeline);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
- renderBundleEncoder.SetBindGroup(0, bindGroups[0], 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bindGroups[0]);
renderBundleEncoder.Draw(3, 1, 0, 0);
dawn::RenderBundle renderBundle = renderBundleEncoder.Finish();
@@ -194,7 +194,7 @@
pass.SetPipeline(pipeline);
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
- pass.SetBindGroup(0, bindGroups[1], 0, nullptr);
+ pass.SetBindGroup(0, bindGroups[1]);
pass.Draw(3, 1, 3, 0);
pass.ExecuteBundles(1, &renderBundle);
diff --git a/src/tests/end2end/SamplerTests.cpp b/src/tests/end2end/SamplerTests.cpp
index 3ab4579..5cf4666 100644
--- a/src/tests/end2end/SamplerTests.cpp
+++ b/src/tests/end2end/SamplerTests.cpp
@@ -142,7 +142,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&mRenderPass.renderPassInfo);
pass.SetPipeline(mPipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(6, 1, 0, 0);
pass.EndPass();
}
diff --git a/src/tests/end2end/TextureFormatTests.cpp b/src/tests/end2end/TextureFormatTests.cpp
index d2acc6b..1aa316d 100644
--- a/src/tests/end2end/TextureFormatTests.cpp
+++ b/src/tests/end2end/TextureFormatTests.cpp
@@ -298,7 +298,7 @@
utils::ComboRenderPassDescriptor renderPassDesc({renderTarget.CreateView()});
dawn::RenderPassEncoder renderPass = encoder.BeginRenderPass(&renderPassDesc);
renderPass.SetPipeline(pipeline);
- renderPass.SetBindGroup(0, bindGroup, 0, nullptr);
+ renderPass.SetBindGroup(0, bindGroup);
renderPass.Draw(3, 1, 0, 0);
renderPass.EndPass();
diff --git a/src/tests/end2end/TextureViewTests.cpp b/src/tests/end2end/TextureViewTests.cpp
index 688bd11..40add9f 100644
--- a/src/tests/end2end/TextureViewTests.cpp
+++ b/src/tests/end2end/TextureViewTests.cpp
@@ -178,7 +178,7 @@
{
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&mRenderPass.renderPassInfo);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(6, 1, 0, 0);
pass.EndPass();
}
diff --git a/src/tests/end2end/TextureZeroInitTests.cpp b/src/tests/end2end/TextureZeroInitTests.cpp
index 40f069b..2ae0a6d 100644
--- a/src/tests/end2end/TextureZeroInitTests.cpp
+++ b/src/tests/end2end/TextureZeroInitTests.cpp
@@ -475,7 +475,7 @@
renderPassDesc.cColorAttachments[0].loadOp = dawn::LoadOp::Clear;
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPassDesc);
pass.SetPipeline(renderPipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(6, 1, 0, 0);
pass.EndPass();
dawn::CommandBuffer commands = encoder.Finish();
@@ -544,7 +544,7 @@
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::ComputePassEncoder pass = encoder.BeginComputePass();
pass.SetPipeline(computePipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Dispatch(1, 1, 1);
pass.EndPass();
dawn::CommandBuffer commands = encoder.Finish();
@@ -692,7 +692,7 @@
renderPassDesc.cColorAttachments[0].storeOp = dawn::StoreOp::Clear;
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPassDesc);
pass.SetPipeline(renderPipeline);
- pass.SetBindGroup(0, bindGroup, 0, nullptr);
+ pass.SetBindGroup(0, bindGroup);
pass.Draw(6, 1, 0, 0);
pass.EndPass();
commands = encoder.Finish();
diff --git a/src/tests/unittests/validation/BindGroupValidationTests.cpp b/src/tests/unittests/validation/BindGroupValidationTests.cpp
index 06fe90b..a59f315 100644
--- a/src/tests/unittests/validation/BindGroupValidationTests.cpp
+++ b/src/tests/unittests/validation/BindGroupValidationTests.cpp
@@ -983,8 +983,8 @@
dawn::CommandEncoder commandEncoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder renderPassEncoder = commandEncoder.BeginRenderPass(&renderPass);
- renderPassEncoder.SetBindGroup(0, bindGroup0, 0, nullptr);
- renderPassEncoder.SetBindGroup(1, bindGroup1, 0, nullptr);
+ renderPassEncoder.SetBindGroup(0, bindGroup0);
+ renderPassEncoder.SetBindGroup(1, bindGroup1);
renderPassEncoder.SetPipeline(pipeline);
renderPassEncoder.Draw(3, 1, 0, 0);
@@ -1042,12 +1042,12 @@
dawn::RenderPassEncoder renderPassEncoder = commandEncoder.BeginRenderPass(&renderPass);
renderPassEncoder.SetPipeline(pipelineA);
- renderPassEncoder.SetBindGroup(0, bindGroupA0, 0, nullptr);
- renderPassEncoder.SetBindGroup(1, bindGroupA1, 0, nullptr);
+ renderPassEncoder.SetBindGroup(0, bindGroupA0);
+ renderPassEncoder.SetBindGroup(1, bindGroupA1);
renderPassEncoder.Draw(3, 1, 0, 0);
renderPassEncoder.SetPipeline(pipelineB);
- renderPassEncoder.SetBindGroup(0, bindGroupB0, 0, nullptr);
+ renderPassEncoder.SetBindGroup(0, bindGroupB0);
// This draw is valid.
// Bind group 1 persists even though it is not "inherited".
renderPassEncoder.Draw(3, 1, 0, 0);
diff --git a/src/tests/unittests/validation/CommandBufferValidationTests.cpp b/src/tests/unittests/validation/CommandBufferValidationTests.cpp
index 45d32da..402beb1 100644
--- a/src/tests/unittests/validation/CommandBufferValidationTests.cpp
+++ b/src/tests/unittests/validation/CommandBufferValidationTests.cpp
@@ -219,7 +219,7 @@
DummyRenderPass dummyRenderPass(device);
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
pass.SetIndexBuffer(buffer, 0);
- pass.SetBindGroup(0, bg, 0, nullptr);
+ pass.SetBindGroup(0, bg);
pass.EndPass();
ASSERT_DEVICE_ERROR(encoder.Finish());
}
@@ -249,7 +249,7 @@
// Use the texture as both sampeld and output attachment in the same pass
dawn::CommandEncoder encoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
- pass.SetBindGroup(0, bg, 0, nullptr);
+ pass.SetBindGroup(0, bg);
pass.EndPass();
ASSERT_DEVICE_ERROR(encoder.Finish());
}
diff --git a/src/tests/unittests/validation/RenderBundleValidationTests.cpp b/src/tests/unittests/validation/RenderBundleValidationTests.cpp
index 0ac4fda..0cbaa56 100644
--- a/src/tests/unittests/validation/RenderBundleValidationTests.cpp
+++ b/src/tests/unittests/validation/RenderBundleValidationTests.cpp
@@ -158,8 +158,8 @@
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder.Draw(3, 0, 0, 0);
dawn::RenderBundle renderBundle = renderBundleEncoder.Finish();
@@ -246,8 +246,8 @@
pass.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder.Draw(3, 0, 0, 0);
ASSERT_DEVICE_ERROR(dawn::RenderBundle renderBundle = renderBundleEncoder.Finish());
@@ -263,8 +263,8 @@
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
renderBundleEncoder.SetPipeline(pipeline);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
@@ -283,8 +283,8 @@
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder.Draw(3, 0, 0, 0);
@@ -304,8 +304,8 @@
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1);
renderBundleEncoder.Draw(3, 0, 0, 0);
ASSERT_DEVICE_ERROR(dawn::RenderBundle renderBundle = renderBundleEncoder.Finish());
@@ -333,8 +333,8 @@
dawn::RenderBundle renderBundle = renderBundleEncoder.Finish();
pass.ExecuteBundles(1, &renderBundle);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
pass.Draw(3, 0, 0, 0);
pass.EndPass();
@@ -348,8 +348,8 @@
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1);
dawn::RenderBundle renderBundle = renderBundleEncoder.Finish();
pass.ExecuteBundles(1, &renderBundle);
@@ -368,8 +368,8 @@
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1);
dawn::RenderBundle renderBundle = renderBundleEncoder.Finish();
pass.ExecuteBundles(1, &renderBundle);
@@ -391,8 +391,8 @@
pass.ExecuteBundles(1, &renderBundle);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.Draw(3, 0, 0, 0);
pass.EndPass();
@@ -418,8 +418,8 @@
pass.SetPipeline(pipeline);
pass.ExecuteBundles(1, &renderBundle);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
pass.Draw(3, 0, 0, 0);
pass.EndPass();
@@ -432,8 +432,8 @@
dawn::CommandEncoder commandEncoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.ExecuteBundles(1, &renderBundle);
pass.SetPipeline(pipeline);
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
@@ -449,8 +449,8 @@
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.ExecuteBundles(1, &renderBundle);
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
pass.Draw(3, 0, 0, 0);
@@ -467,8 +467,8 @@
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
pass.ExecuteBundles(1, &renderBundle);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.Draw(3, 0, 0, 0);
pass.EndPass();
@@ -481,8 +481,8 @@
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
pass.ExecuteBundles(0, nullptr);
pass.Draw(3, 0, 0, 0);
@@ -504,16 +504,16 @@
dawn::RenderBundleEncoder renderBundleEncoder0 = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder0.SetPipeline(pipeline);
- renderBundleEncoder0.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder0.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder0.SetBindGroup(0, bg0);
+ renderBundleEncoder0.SetBindGroup(1, bg1);
renderBundleEncoder0.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder0.Draw(3, 1, 0, 0);
renderBundles[0] = renderBundleEncoder0.Finish();
dawn::RenderBundleEncoder renderBundleEncoder1 = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder1.SetPipeline(pipeline);
- renderBundleEncoder1.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder1.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder1.SetBindGroup(0, bg0);
+ renderBundleEncoder1.SetBindGroup(1, bg1);
renderBundleEncoder1.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder1.Draw(3, 1, 0, 0);
renderBundles[1] = renderBundleEncoder1.Finish();
@@ -535,8 +535,8 @@
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder.Draw(3, 1, 0, 0);
dawn::RenderBundle renderBundle = renderBundleEncoder.Finish();
@@ -615,8 +615,8 @@
{
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1Vertex, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1Vertex);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
renderBundleEncoder.Draw(3, 0, 0, 0);
renderBundle0 = renderBundleEncoder.Finish();
@@ -626,8 +626,8 @@
{
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexStorageBuffer, &zeroOffset);
renderBundleEncoder.Draw(3, 0, 0, 0);
renderBundle1 = renderBundleEncoder.Finish();
@@ -638,8 +638,8 @@
{
dawn::RenderBundleEncoder renderBundleEncoder = device.CreateRenderBundleEncoder(&desc);
renderBundleEncoder.SetPipeline(pipeline);
- renderBundleEncoder.SetBindGroup(0, bg0, 0, nullptr);
- renderBundleEncoder.SetBindGroup(1, bg1Vertex, 0, nullptr);
+ renderBundleEncoder.SetBindGroup(0, bg0);
+ renderBundleEncoder.SetBindGroup(1, bg1Vertex);
renderBundleEncoder.SetVertexBuffers(0, 1, &vertexStorageBuffer, &zeroOffset);
renderBundleEncoder.Draw(3, 0, 0, 0);
ASSERT_DEVICE_ERROR(renderBundleEncoder.Finish());
@@ -666,8 +666,8 @@
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1Vertex, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1Vertex);
pass.SetVertexBuffers(0, 1, &vertexBuffer, &zeroOffset);
pass.Draw(3, 0, 0, 0);
@@ -686,8 +686,8 @@
pass.ExecuteBundles(1, &renderBundle0);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg0, 0, nullptr);
- pass.SetBindGroup(1, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg0);
+ pass.SetBindGroup(1, bg1);
pass.SetVertexBuffers(0, 1, &vertexStorageBuffer, &zeroOffset);
pass.Draw(3, 0, 0, 0);
diff --git a/src/tests/unittests/validation/RenderPassValidationTests.cpp b/src/tests/unittests/validation/RenderPassValidationTests.cpp
index 9c237cc..8197fdf 100644
--- a/src/tests/unittests/validation/RenderPassValidationTests.cpp
+++ b/src/tests/unittests/validation/RenderPassValidationTests.cpp
@@ -80,8 +80,8 @@
dawn::CommandEncoder commandEncoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg1, 0, nullptr);
- pass.SetBindGroup(1, bg2, 0, nullptr);
+ pass.SetBindGroup(0, bg1);
+ pass.SetBindGroup(1, bg2);
pass.Draw(3, 0, 0, 0);
pass.EndPass();
commandEncoder.Finish();
@@ -98,7 +98,7 @@
dawn::CommandEncoder commandEncoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(1, bg2, 0, nullptr);
+ pass.SetBindGroup(1, bg2);
pass.Draw(3, 0, 0, 0);
pass.EndPass();
ASSERT_DEVICE_ERROR(commandEncoder.Finish());
@@ -107,7 +107,7 @@
dawn::CommandEncoder commandEncoder = device.CreateCommandEncoder();
dawn::RenderPassEncoder pass = commandEncoder.BeginRenderPass(&renderPass);
pass.SetPipeline(pipeline);
- pass.SetBindGroup(0, bg1, 0, nullptr);
+ pass.SetBindGroup(0, bg1);
pass.Draw(3, 0, 0, 0);
pass.EndPass();
ASSERT_DEVICE_ERROR(commandEncoder.Finish());