-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement api,validation,state,device_mismatched: Part II #1094
Conversation
- Update DeviceHolder to provide multiple devices with same descriptor at once, and remove the new DevicePool of mismatched device. - Remove selectMismatchedDeviceOrSkipTestCase function. - Implement remaining device mismatch tests under validation/encoding/cmds and validation/encoding/queue. Fixed gpuweb#912
Previews, as seen when this build job started (2581575): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice coverage! Can we split the new tests off from the framework changes though?
I'll be out the rest of this week, you'll need to find another reviewer when you're ready.
src/webgpu/util/device_pool.ts
Outdated
@@ -234,42 +237,55 @@ function supportsFeature( | |||
type DeviceHolderState = 'free' | 'reserved' | 'acquired'; | |||
|
|||
/** | |||
* Holds a GPUDevice and tracks its state (free/reserved/acquired) and handles device loss. | |||
* Holds GPUDevice with same descriptor and tracks device state (free/reserved/acquired) and handles device loss. | |||
* All the devices must be free/reserved/acquired together. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea of getting multiple devices from the device pool was to increase the pool's size so it could have more than 1 default device holder, rather than having multiple devices in each device holder. The device holder is designed to hold just one device (e.g. it has only one lostInfo). Extending it to hold 2 works for these tests, but seems overspecialized for this exact use case, I don't think it can be used for much else.
This new code is overall nicer even though it's weird in a different way, but it also makes every test use 2 devices. That's probably not super costly, but it is surprising and I'd prefer not to.
Possible to split new test coverage and these framework changes? I'd like to land the new tests but I'm wary of the 2-device thing which could have effects on all the tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I will split the new tests to a separate PR, we can land it first. About getting multiple devices, I have different thought, let's dicuss it in another PR when you get back.
src/webgpu/api/validation/encoding/cmds/render/setPipeline.spec.ts
Outdated
Show resolved
Hide resolved
dc3aa95
to
9e6db51
Compare
9e6db51
to
108e5f5
Compare
@austinEng Could you help to review the changes? Thanks! |
Previews, as seen when this build job started (bd38ced): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
validation/encoding/cmds and validation/encoding/queue.
Issue: #912
Requirements for PR author:
.unimplemented()
./** documented */
and new helper files are found inhelper_index.txt
.Requirements for reviewer sign-off:
When landing this PR, be sure to make any necessary issue status updates.