Skip to content

Combining storage-read with constant in the same usage scope should be permitted #8485

@andyleiserson

Description

@andyleiserson

The spec says:

We consider a list U to be a compatible usage list if (and only if) it satisfies any of the following rules:

Some relevant tests were added as known failures in https://phabricator.services.mozilla.com/D269147. The failures look like:

INFO - TEST-UNEXPECTED-FAIL | /_mozilla/webgpu/cts/webgpu/api/validation/resource_usages/texture/in_render_common/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_common:subresources,multiple_bind_groups:* | :bg0Levels={"base":1,"count":2};bg0Layers={"base":0,"count":1};bg1Levels={"base":1,"count":1};bg1Layers={"base":0,"count":3};bgUsage0="sampled-texture";bgUsage1="readonly-storage-texture" - assert_unreached: 
INFO -   - (in subcase: inSamePass=true) INFO: subcase ran
INFO -   - (in subcase: inSamePass=false) INFO: subcase ran
INFO -   - EXCEPTION: Error: Unexpected validation error occurred: In a set_bind_group command, caused by: Attempted to use Texture with '' label (mips 1..2 layers 0..1) with conflicting usages. Current usage TextureUses(RESOURCE) and new usage TextureUses(STORAGE_READ_ONLY). TextureUses(STORAGE_READ_ONLY) is an exclusive usage and cannot be used with any other usages within the usage scope (renderpass or compute dispatch).
INFO -     TestFailedButDeviceReusable@https://web-platform.test:8443/_mozilla/webgpu/webgpu/util/device_pool.js:23:1
INFO -     attemptEndTestScope@https://web-platform.test:8443/_mozilla/webgpu/webgpu/util/device_pool.js:465:13
INFO -     
INFO -  Reached unreachable code
INFO - wpt_fn@https://web-platform.test:8443/_mozilla/webgpu/common/runtime/wpt.js:81:25

This could be a regression introduced by #8402, due to previously allowing these usages because they were through different texture views, and now disallowing them because we do not implement the above rule properly. See #8485 (comment).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions