Descriptorize ComputePipeline
Change-Id: Ic9d7014ba44d927d7f9ddf81a8870432c68941e8
diff --git a/src/dawn_native/Device.cpp b/src/dawn_native/Device.cpp
index 217cf43..57f22dc 100644
--- a/src/dawn_native/Device.cpp
+++ b/src/dawn_native/Device.cpp
@@ -123,8 +123,15 @@
CommandBufferBuilder* DeviceBase::CreateCommandBufferBuilder() {
return new CommandBufferBuilder(this);
}
- ComputePipelineBuilder* DeviceBase::CreateComputePipelineBuilder() {
- return new ComputePipelineBuilder(this);
+ ComputePipelineBase* DeviceBase::CreateComputePipeline(
+ const ComputePipelineDescriptor* descriptor) {
+ ComputePipelineBase* result = nullptr;
+
+ if (ConsumedError(CreateComputePipelineInternal(&result, descriptor))) {
+ return nullptr;
+ }
+
+ return result;
}
DepthStencilStateBuilder* DeviceBase::CreateDepthStencilStateBuilder() {
return new DepthStencilStateBuilder(this);
@@ -223,6 +230,14 @@
return {};
}
+ MaybeError DeviceBase::CreateComputePipelineInternal(
+ ComputePipelineBase** result,
+ const ComputePipelineDescriptor* descriptor) {
+ DAWN_TRY(ValidateComputePipelineDescriptor(this, descriptor));
+ DAWN_TRY_ASSIGN(*result, CreateComputePipelineImpl(descriptor));
+ return {};
+ }
+
MaybeError DeviceBase::CreatePipelineLayoutInternal(
PipelineLayoutBase** result,
const PipelineLayoutDescriptor* descriptor) {