* More helpers on `Promise`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Sync `GPUBuffer`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set some good expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Some bad expect
also on firefox
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Extract DataBlock, DataView impl from GPUBuffer
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fix size check to work on 32bit platforms
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update wgpu to c0e7c1ef94
This is few commits ahead of wgpu 22.0
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Make it compile
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Move usage checking to device timeline as per spec
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Add logging (trace) of WEBGPU messages
This is very useful when debugging
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* update wgpu again
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* set good
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* skip `webgpu:api,operation,memory_sync,texture,same_subresource` for flakyness
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* rm r.json
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update wgpu and revamp RenderPass
* Set good expectations
* Set one bad expectation
* send_render_command
* small fixups
* docs
* doc
* Put RenderPass inside PassState
* Use Pass enum for ComputePass too
* fix docs
* Do not wait on drop, but rather wake poller thread
* Update wgpu and render stuff
* Set some good expectations
* Update wgpu again
* handle IPC error as warning
* More good expectations
* Some more expectations
CTS does not match the spec: https://github.com/gpuweb/cts/issues/3806
* This expectations are due to other changes in servo
also happening on main
* Explain error_command_encoders and remove RefCell around it
* fixup
* store validness of passes
* More good expectations
* More docs
* this assert is wrong
* This is even more right per CTS/spec
Only Command encoder state errors are allowed here, but wgpu does not exposes them.
* More good expectations
* One bad expectation
* Fix my english
* Make device cleanup right
* Use weakref for GPUDevice in globalscope
* No need to destroy device on drop
* DeviceReason early return
* make remove_gpu_device to be the only way to remove device
* device lost promise should be init at creation of device object
* device lost impl
* lock for device poll
workaround for wgpu deadlocks
* expect
* Less lost reason reasoning in script
* 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
For a long time, `gfx_traits` has held a lot of things unrelated to graphics
and also unrelated to the `gfx` crate (which is mostly about fonts).
This is a cleanup which does a few things:
1. Move non `gfx` crate things out of `gfx_traits`. This is important in
order to prevent dependency cycles with a different integration between
layout, script, and fonts.
2. Rename the `msg` crate to `base`. It didn't really contain anything
to do with messages and instead mostly holds ids, which are used
across many different crates in Servo. This new crate will hold the
*rare* data types that are widely used.
Details:
- All BackgroundHangMonitor-related things from base to a new
`background_hang_monitor_api` crate.
- Moved `TraversalDirection` to `script_traits`
- Moved `Epoch`-related things from `gfx_traits` to `base`.
- Moved `PrintTree` to base. This should be widely useful in Servo.
- Moved `WebrenderApi` from `base` to `webrender_traits` and renamed it
to `WebRenderFontApi`.
* Use special WGPU poller thread for poll_all_devices
* Switch to latest wgpu
This is required to fix some deadlocks.
* non-blocking poll unconditionally
* small fixes