Remove "Builders" related with pipeline
RenderPipeline and ComputePipeline has been created with descriptors and PipelineBuilder
is not needed anymore.
This patch remove these remain "Builders" in dawn.
BUG=dawn:52
Change-Id: I8b119c540952beb3386913197f25b9c441f53ba4
Reviewed-on: https://dawn-review.googlesource.com/c/3460
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn_native/Forward.h b/src/dawn_native/Forward.h
index 518444b..211fdc5 100644
--- a/src/dawn_native/Forward.h
+++ b/src/dawn_native/Forward.h
@@ -28,7 +28,6 @@
class BufferBase;
class BufferBuilder;
class ComputePipelineBase;
- class ComputePipelineBuilder;
class CommandBufferBase;
class CommandBufferBuilder;
class ComputePassEncoderBase;
@@ -44,7 +43,6 @@
class RenderPassDescriptorBuilder;
class RenderPassEncoderBase;
class RenderPipelineBase;
- class RenderPipelineBuilder;
class SamplerBase;
class ShaderModuleBase;
class ShaderModuleBuilder;
diff --git a/src/dawn_native/Pipeline.cpp b/src/dawn_native/Pipeline.cpp
index afa388b..175e864 100644
--- a/src/dawn_native/Pipeline.cpp
+++ b/src/dawn_native/Pipeline.cpp
@@ -30,30 +30,6 @@
: ObjectBase(device), mStageMask(stages), mLayout(layout), mDevice(device) {
}
- PipelineBase::PipelineBase(DeviceBase* device, PipelineBuilder* builder)
- : ObjectBase(device),
- mStageMask(builder->mStageMask),
- mLayout(std::move(builder->mLayout)),
- mDevice(device) {
- if (!mLayout) {
- PipelineLayoutDescriptor descriptor;
- descriptor.numBindGroupLayouts = 0;
- descriptor.bindGroupLayouts = nullptr;
- mLayout = device->CreatePipelineLayout(&descriptor);
- // Remove the external ref objects are created with
- mLayout->Release();
- }
-
- for (auto stage : IterateStages(builder->mStageMask)) {
- if (!builder->mStages[stage].module->IsCompatibleWithPipelineLayout(mLayout.Get())) {
- builder->GetParentBuilder()->HandleError("Stage not compatible with layout");
- return;
- }
-
- ExtractModuleData(stage, builder->mStages[stage].module.Get());
- }
- }
-
void PipelineBase::ExtractModuleData(dawn::ShaderStage stage, ShaderModuleBase* module) {
PushConstantInfo* info = &mPushConstants[stage];
@@ -90,57 +66,4 @@
return mDevice;
}
- // PipelineBuilder
-
- PipelineBuilder::PipelineBuilder(BuilderBase* parentBuilder)
- : mParentBuilder(parentBuilder), mStageMask(static_cast<dawn::ShaderStageBit>(0)) {
- }
-
- const PipelineBuilder::StageInfo& PipelineBuilder::GetStageInfo(dawn::ShaderStage stage) const {
- ASSERT(mStageMask & StageBit(stage));
- return mStages[stage];
- }
-
- BuilderBase* PipelineBuilder::GetParentBuilder() const {
- return mParentBuilder;
- }
-
- void PipelineBuilder::SetLayout(PipelineLayoutBase* layout) {
- if (layout == nullptr) {
- mParentBuilder->HandleError("Layout must not be null");
- return;
- }
-
- mLayout = layout;
- }
-
- void PipelineBuilder::SetStage(dawn::ShaderStage stage,
- ShaderModuleBase* module,
- const char* entryPoint) {
- if (module == nullptr) {
- mParentBuilder->HandleError("Module must not be null");
- return;
- }
-
- if (entryPoint != std::string("main")) {
- mParentBuilder->HandleError("Currently the entry point has to be main()");
- return;
- }
-
- if (stage != module->GetExecutionModel()) {
- mParentBuilder->HandleError("Setting module with wrong execution model");
- return;
- }
-
- dawn::ShaderStageBit bit = StageBit(stage);
- if (mStageMask & bit) {
- mParentBuilder->HandleError("Setting already set stage");
- return;
- }
- mStageMask |= bit;
-
- mStages[stage].module = module;
- mStages[stage].entryPoint = entryPoint;
- }
-
} // namespace dawn_native
diff --git a/src/dawn_native/Pipeline.h b/src/dawn_native/Pipeline.h
index d91dc5b..47c1079 100644
--- a/src/dawn_native/Pipeline.h
+++ b/src/dawn_native/Pipeline.h
@@ -35,12 +35,9 @@
Float,
};
- class PipelineBuilder;
-
class PipelineBase : public ObjectBase {
public:
PipelineBase(DeviceBase* device, PipelineLayoutBase* layout, dawn::ShaderStageBit stages);
- PipelineBase(DeviceBase* device, PipelineBuilder* builder);
struct PushConstantInfo {
std::bitset<kMaxPushConstants> mask;
@@ -62,30 +59,6 @@
DeviceBase* mDevice;
};
- class PipelineBuilder {
- public:
- PipelineBuilder(BuilderBase* parentBuilder);
-
- struct StageInfo {
- std::string entryPoint;
- Ref<ShaderModuleBase> module;
- };
- const StageInfo& GetStageInfo(dawn::ShaderStage stage) const;
- BuilderBase* GetParentBuilder() const;
-
- // Dawn API
- void SetLayout(PipelineLayoutBase* layout);
- void SetStage(dawn::ShaderStage stage, ShaderModuleBase* module, const char* entryPoint);
-
- private:
- friend class PipelineBase;
-
- BuilderBase* mParentBuilder;
- Ref<PipelineLayoutBase> mLayout;
- dawn::ShaderStageBit mStageMask;
- PerStage<StageInfo> mStages;
- };
-
} // namespace dawn_native
#endif // DAWNNATIVE_PIPELINE_H_