refactor(webgpu): use op interface idiomatically (#11835)

This commit is contained in:
Luca Casonato 2021-08-24 20:32:25 +02:00 committed by GitHub
parent e10d30c8ea
commit 4853be20f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 1425 additions and 1118 deletions

View file

@ -2646,9 +2646,9 @@
depthStencilAttachment.depthLoadOp =
descriptor.depthStencilAttachment.depthLoadValue;
} else {
depthStencilAttachment.depthLoadOp = "clear";
depthStencilAttachment.depthLoadValue =
descriptor.depthStencilAttachment.depthLoadValue;
depthStencilAttachment.depthLoadOp = {
clear: descriptor.depthStencilAttachment.depthLoadValue,
};
}
if (
@ -2656,11 +2656,10 @@
) {
depthStencilAttachment.stencilLoadOp =
descriptor.depthStencilAttachment.stencilLoadValue;
depthStencilAttachment.stencilLoadValue = undefined;
} else {
depthStencilAttachment.stencilLoadOp = "clear";
depthStencilAttachment.stencilLoadValue =
descriptor.depthStencilAttachment.stencilLoadValue;
depthStencilAttachment.stencilLoadOp = {
clear: descriptor.depthStencilAttachment.stencilLoadValue,
};
}
}
const colorAttachments = ArrayPrototypeMap(
@ -2717,10 +2716,9 @@
if (typeof colorAttachment.loadValue === "string") {
attachment.loadOp = colorAttachment.loadValue;
} else {
attachment.loadOp = "clear";
attachment.loadValue = normalizeGPUColor(
colorAttachment.loadValue,
);
attachment.loadOp = {
clear: normalizeGPUColor(colorAttachment.loadValue),
};
}
return attachment;
@ -3674,29 +3672,19 @@
resourceContext: "Argument 2",
selfContext: "this",
});
if (dynamicOffsetsData instanceof Uint32Array) {
core.opSync(
"op_webgpu_render_pass_set_bind_group",
{
renderPassRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsDataStart,
dynamicOffsetsDataLength,
},
dynamicOffsetsData,
);
} else {
dynamicOffsetsData ??= [];
core.opSync("op_webgpu_render_pass_set_bind_group", {
renderPassRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsData,
dynamicOffsetsDataStart: 0,
dynamicOffsetsDataLength: dynamicOffsetsData.length,
});
if (!(dynamicOffsetsData instanceof Uint32Array)) {
dynamicOffsetsData = new Uint32Array(dynamicOffsetsData ?? []);
dynamicOffsetsDataStart = 0;
dynamicOffsetsDataLength = dynamicOffsetsData.length;
}
core.opSync("op_webgpu_render_pass_set_bind_group", {
renderPassRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsData,
dynamicOffsetsDataStart,
dynamicOffsetsDataLength,
});
}
/**
@ -4410,29 +4398,19 @@
resourceContext: "Argument 2",
selfContext: "this",
});
if (dynamicOffsetsData instanceof Uint32Array) {
core.opSync(
"op_webgpu_compute_pass_set_bind_group",
{
computePassRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsDataStart,
dynamicOffsetsDataLength,
},
dynamicOffsetsData,
);
} else {
dynamicOffsetsData ??= [];
core.opSync("op_webgpu_compute_pass_set_bind_group", {
computePassRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsData,
dynamicOffsetsDataStart: 0,
dynamicOffsetsDataLength: dynamicOffsetsData.length,
});
if (!(dynamicOffsetsData instanceof Uint32Array)) {
dynamicOffsetsData = new Uint32Array(dynamicOffsetsData ?? []);
dynamicOffsetsDataStart = 0;
dynamicOffsetsDataLength = dynamicOffsetsData.length;
}
core.opSync("op_webgpu_compute_pass_set_bind_group", {
computePassRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsData,
dynamicOffsetsDataStart,
dynamicOffsetsDataLength,
});
}
/**
@ -4659,29 +4637,19 @@
resourceContext: "Argument 2",
selfContext: "this",
});
if (dynamicOffsetsData instanceof Uint32Array) {
core.opSync(
"op_webgpu_render_bundle_encoder_set_bind_group",
{
renderBundleEncoderRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsDataStart,
dynamicOffsetsDataLength,
},
dynamicOffsetsData,
);
} else {
dynamicOffsetsData ??= [];
core.opSync("op_webgpu_render_bundle_encoder_set_bind_group", {
renderBundleEncoderRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsData,
dynamicOffsetsDataStart: 0,
dynamicOffsetsDataLength: dynamicOffsetsData.length,
});
if (!(dynamicOffsetsData instanceof Uint32Array)) {
dynamicOffsetsData = new Uint32Array(dynamicOffsetsData ?? []);
dynamicOffsetsDataStart = 0;
dynamicOffsetsDataLength = dynamicOffsetsData.length;
}
core.opSync("op_webgpu_render_bundle_encoder_set_bind_group", {
renderBundleEncoderRid,
index,
bindGroup: bindGroupRid,
dynamicOffsetsData,
dynamicOffsetsDataStart,
dynamicOffsetsDataLength,
});
}
/**