Skip to content

Commit aa07196

Browse files
authored
Make render_pass_descriptor:resolveTarget,usage test a valid case together (gpuweb#1660)
The `resolveTarget,usage` test has only tested an invalid case (COPY_SRC | COPY_DST). So this PR adds more cases to check if the resolveTarget usage is valid. Issue: gpuweb#1618
1 parent 6dfee4c commit aa07196

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

src/webgpu/api/validation/render_pass/render_pass_descriptor.spec.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
kRenderableColorTextureFormats,
1212
kTextureFormatInfo,
1313
} from '../../../capability_info.js';
14+
import { GPUConst } from '../../../constants.js';
1415
import { ValidationTest } from '../validation_test.js';
1516

1617
class F extends ValidationTest {
@@ -537,15 +538,19 @@ g.test('resolveTarget,usage')
537538
`
538539
Test that using a resolve target whose usage is not RENDER_ATTACHMENT is invalid for color
539540
attachments.
540-
541-
TODO: Add a control case (include vs exclude RENDER_ATTACHMENT usage)
542541
`
543542
)
543+
.paramsSimple([
544+
{ usage: GPUConst.TextureUsage.COPY_SRC | GPUConst.TextureUsage.COPY_DST },
545+
{ usage: GPUConst.TextureUsage.STORAGE_BINDING | GPUConst.TextureUsage.TEXTURE_BINDING },
546+
{ usage: GPUConst.TextureUsage.STORAGE_BINDING | GPUConst.TextureUsage.STORAGE },
547+
{ usage: GPUConst.TextureUsage.RENDER_ATTACHMENT | GPUConst.TextureUsage.TEXTURE_BINDING },
548+
])
544549
.fn(async t => {
550+
const { usage } = t.params;
551+
545552
const multisampledColorTexture = t.createTexture({ sampleCount: 4 });
546-
const resolveTargetTexture = t.createTexture({
547-
usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST,
548-
});
553+
const resolveTargetTexture = t.createTexture({ usage });
549554

550555
const colorAttachment = t.getColorAttachment(multisampledColorTexture);
551556
colorAttachment.resolveTarget = resolveTargetTexture.createView();
@@ -554,7 +559,8 @@ g.test('resolveTarget,usage')
554559
colorAttachments: [colorAttachment],
555560
};
556561

557-
t.tryRenderPass(false, descriptor);
562+
const isValid = usage & GPUConst.TextureUsage.RENDER_ATTACHMENT ? true : false;
563+
t.tryRenderPass(isValid, descriptor);
558564
});
559565

560566
g.test('resolveTarget,error_state')

0 commit comments

Comments
 (0)