Update samples to the new RenderPipelineDescriptor

Also does some updates for the new BindGroupLayoutEntry and
VertexFormats that were missed previously.

Bug: chromium:1177501
Change-Id: Icb336590673158538a1586a1f8d5ace398fb381e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45282
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
Corentin Wallez
2021-03-18 16:46:58 +00:00
committed by Commit Bot service account
parent 8ce8271c34
commit 9895c273d6
6 changed files with 147 additions and 140 deletions

View File

@@ -59,57 +59,48 @@ void init() {
WGPUShaderModule fsModule = utils::CreateShaderModuleFromWGSL(device, fs).Release();
{
WGPURenderPipelineDescriptor descriptor = {};
WGPURenderPipelineDescriptor2 descriptor = {};
descriptor.vertexStage.module = vsModule;
descriptor.vertexStage.entryPoint = "main";
// Fragment state
WGPUBlendState blend = {};
blend.color.operation = WGPUBlendOperation_Add;
blend.color.srcFactor = WGPUBlendFactor_One;
blend.color.dstFactor = WGPUBlendFactor_One;
blend.alpha.operation = WGPUBlendOperation_Add;
blend.alpha.srcFactor = WGPUBlendFactor_One;
blend.alpha.dstFactor = WGPUBlendFactor_One;
WGPUProgrammableStageDescriptor fragmentStage = {};
fragmentStage.module = fsModule;
fragmentStage.entryPoint = "main";
descriptor.fragmentStage = &fragmentStage;
WGPUColorTargetState colorTarget = {};
colorTarget.format = swapChainFormat;
colorTarget.blend = &blend;
colorTarget.writeMask = WGPUColorWriteMask_All;
descriptor.sampleCount = 1;
WGPUFragmentState fragment = {};
fragment.module = fsModule;
fragment.entryPoint = "main";
fragment.targetCount = 1;
fragment.targets = &colorTarget;
descriptor.fragment = &fragment;
WGPUBlendDescriptor blendDescriptor = {};
blendDescriptor.operation = WGPUBlendOperation_Add;
blendDescriptor.srcFactor = WGPUBlendFactor_One;
blendDescriptor.dstFactor = WGPUBlendFactor_One;
WGPUColorStateDescriptor colorStateDescriptor = {};
colorStateDescriptor.format = swapChainFormat;
colorStateDescriptor.alphaBlend = blendDescriptor;
colorStateDescriptor.colorBlend = blendDescriptor;
colorStateDescriptor.writeMask = WGPUColorWriteMask_All;
// Other state
descriptor.layout = nullptr;
descriptor.depthStencil = nullptr;
descriptor.colorStateCount = 1;
descriptor.colorStates = &colorStateDescriptor;
descriptor.vertex.module = vsModule;
descriptor.vertex.entryPoint = "main";
descriptor.vertex.bufferCount = 0;
descriptor.vertex.buffers = nullptr;
WGPUPipelineLayoutDescriptor pl = {};
pl.bindGroupLayoutCount = 0;
pl.bindGroupLayouts = nullptr;
descriptor.layout = wgpuDeviceCreatePipelineLayout(device, &pl);
descriptor.multisample.count = 1;
descriptor.multisample.mask = 0xFFFFFFFF;
descriptor.multisample.alphaToCoverageEnabled = false;
WGPUVertexStateDescriptor vertexState = {};
vertexState.indexFormat = WGPUIndexFormat_Undefined;
vertexState.vertexBufferCount = 0;
vertexState.vertexBuffers = nullptr;
descriptor.vertexState = &vertexState;
descriptor.primitive.frontFace = WGPUFrontFace_CCW;
descriptor.primitive.cullMode = WGPUCullMode_None;
descriptor.primitive.topology = WGPUPrimitiveTopology_TriangleList;
descriptor.primitive.stripIndexFormat = WGPUIndexFormat_Undefined;
WGPURasterizationStateDescriptor rasterizationState = {};
rasterizationState.frontFace = WGPUFrontFace_CCW;
rasterizationState.cullMode = WGPUCullMode_None;
rasterizationState.depthBias = 0;
rasterizationState.depthBiasSlopeScale = 0.0;
rasterizationState.depthBiasClamp = 0.0;
descriptor.rasterizationState = &rasterizationState;
descriptor.primitiveTopology = WGPUPrimitiveTopology_TriangleList;
descriptor.sampleMask = 0xFFFFFFFF;
descriptor.alphaToCoverageEnabled = false;
descriptor.depthStencilState = nullptr;
pipeline = wgpuDeviceCreateRenderPipeline(device, &descriptor);
pipeline = wgpuDeviceCreateRenderPipeline2(device, &descriptor);
}
wgpuShaderModuleRelease(vsModule);