webgpu: Move errorscopes to WGPU thread (#32304)

* Prepare errorscopes logic in wgpu_thread

* remove scope_id from ipc

* new GPUErrors per spec

* remove cotent timeline error_scope

* fixup poperrorscope types

* device_scope -> gpu_error and nice errors

* Handle errors detection more elegantly

* good expectations

* new expectations

* Make error_scope.errors Vec as per spec
This commit is contained in:
Samson 2024-05-22 18:47:35 +02:00 committed by GitHub
parent 9f32809671
commit 794110ebe5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
37 changed files with 3401 additions and 725 deletions

View file

@ -1086,19 +1086,28 @@ partial interface GPUDevice {
readonly attribute Promise<GPUDeviceLostInfo> lost;
};
[Exposed=(Window, DedicatedWorker), Pref="dom.webgpu.enabled"]
interface GPUValidationError {
[Throws]
constructor(DOMString message);
[Exposed=(Window, Worker), Pref="dom.webgpu.enabled"]
interface GPUError {
readonly attribute DOMString message;
};
[Exposed=(Window, DedicatedWorker), Pref="dom.webgpu.enabled"]
interface GPUOutOfMemoryError {
constructor();
[Exposed=(Window, Worker), Pref="dom.webgpu.enabled"]
interface GPUValidationError
: GPUError {
constructor(DOMString message);
};
typedef (GPUOutOfMemoryError or GPUValidationError) GPUError;
[Exposed=(Window, Worker), Pref="dom.webgpu.enabled"]
interface GPUOutOfMemoryError
: GPUError {
constructor(DOMString message);
};
[Exposed=(Window, Worker), Pref="dom.webgpu.enabled"]
interface GPUInternalError
: GPUError {
constructor(DOMString message);
};
enum GPUErrorFilter {
"validation",
@ -1112,7 +1121,7 @@ partial interface GPUDevice {
Promise<GPUError?> popErrorScope();
};
[Exposed=(Window, DedicatedWorker), Pref="dom.webgpu.enabled"]
[Exposed=(Window, Worker), Pref="dom.webgpu.enabled"]
interface GPUUncapturedErrorEvent : Event {
constructor(
DOMString type,