@quake2ts/test-utils 0.0.750 → 0.0.752
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +38 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +38 -12
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
- package/src/engine/helpers/webgpu-rendering.ts +48 -12
package/dist/index.cjs
CHANGED
|
@@ -4064,7 +4064,7 @@ function captureAudioEvents(context) {
|
|
|
4064
4064
|
}
|
|
4065
4065
|
|
|
4066
4066
|
// src/engine/helpers/webgpu-rendering.ts
|
|
4067
|
-
async function createRenderTestSetup(width = 256, height = 256) {
|
|
4067
|
+
async function createRenderTestSetup(width = 256, height = 256, options = {}) {
|
|
4068
4068
|
const setup = await initHeadlessWebGPU();
|
|
4069
4069
|
const { device } = setup;
|
|
4070
4070
|
const renderTarget = device.createTexture({
|
|
@@ -4073,6 +4073,16 @@ async function createRenderTestSetup(width = 256, height = 256) {
|
|
|
4073
4073
|
usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC
|
|
4074
4074
|
});
|
|
4075
4075
|
const renderTargetView = renderTarget.createView();
|
|
4076
|
+
let depthTarget;
|
|
4077
|
+
let depthTargetView;
|
|
4078
|
+
if (options.depth) {
|
|
4079
|
+
depthTarget = device.createTexture({
|
|
4080
|
+
size: { width, height, depthOrArrayLayers: 1 },
|
|
4081
|
+
format: "depth24plus",
|
|
4082
|
+
usage: GPUTextureUsage.RENDER_ATTACHMENT
|
|
4083
|
+
});
|
|
4084
|
+
depthTargetView = depthTarget.createView();
|
|
4085
|
+
}
|
|
4076
4086
|
const commandEncoder = device.createCommandEncoder();
|
|
4077
4087
|
const context = {
|
|
4078
4088
|
adapter: setup.adapter,
|
|
@@ -4084,11 +4094,14 @@ async function createRenderTestSetup(width = 256, height = 256) {
|
|
|
4084
4094
|
context,
|
|
4085
4095
|
renderTarget,
|
|
4086
4096
|
renderTargetView,
|
|
4097
|
+
depthTarget,
|
|
4098
|
+
depthTargetView,
|
|
4087
4099
|
commandEncoder,
|
|
4088
4100
|
width,
|
|
4089
4101
|
height,
|
|
4090
4102
|
cleanup: async () => {
|
|
4091
4103
|
renderTarget.destroy();
|
|
4104
|
+
depthTarget?.destroy();
|
|
4092
4105
|
await setup.cleanup();
|
|
4093
4106
|
}
|
|
4094
4107
|
};
|
|
@@ -4137,20 +4150,33 @@ async function captureTexture(device, texture, width, height) {
|
|
|
4137
4150
|
}
|
|
4138
4151
|
async function renderAndCapture(setup, renderFn) {
|
|
4139
4152
|
const { device, queue } = setup.context;
|
|
4140
|
-
const { renderTargetView, commandEncoder, width, height } = setup;
|
|
4141
|
-
const
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4153
|
+
const { renderTargetView, commandEncoder, width, height, depthTargetView } = setup;
|
|
4154
|
+
const colorAttachment = {
|
|
4155
|
+
view: renderTargetView,
|
|
4156
|
+
clearValue: { r: 0, g: 0, b: 0, a: 0 },
|
|
4157
|
+
loadOp: "clear",
|
|
4158
|
+
storeOp: "store"
|
|
4159
|
+
};
|
|
4160
|
+
const descriptor = {
|
|
4161
|
+
colorAttachments: [colorAttachment]
|
|
4162
|
+
};
|
|
4163
|
+
if (depthTargetView) {
|
|
4164
|
+
descriptor.depthStencilAttachment = {
|
|
4165
|
+
view: depthTargetView,
|
|
4166
|
+
depthClearValue: 1,
|
|
4167
|
+
depthLoadOp: "clear",
|
|
4168
|
+
depthStoreOp: "discard"
|
|
4169
|
+
};
|
|
4170
|
+
}
|
|
4171
|
+
device.pushErrorScope("validation");
|
|
4172
|
+
const passEncoder = commandEncoder.beginRenderPass(descriptor);
|
|
4151
4173
|
renderFn(passEncoder);
|
|
4152
4174
|
passEncoder.end();
|
|
4153
4175
|
queue.submit([commandEncoder.finish()]);
|
|
4176
|
+
const error = await device.popErrorScope();
|
|
4177
|
+
if (error) {
|
|
4178
|
+
throw new Error(`WebGPU validation error: ${error.message}`);
|
|
4179
|
+
}
|
|
4154
4180
|
return captureTexture(device, setup.renderTarget, width, height);
|
|
4155
4181
|
}
|
|
4156
4182
|
async function createComputeTestSetup(outputSize) {
|