https://github.com/servo/servo/pull/36335 enabled all experimental
features for all wpt tests, but `dom_serviceworker_enabled` makes all
CTS tests fail, because servo reports working service worker impl, but
CTS pre-setup of worker fails due too incomplete impl. The solution is
that we disable service workers in CTS `__dir__.ini` (thus avoiding any
CTS worker code) until impl is stable enough.
Testing: This makes tests works again
Fixes: #36657
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Each canvas context returns snapshot instead of just raw bytes. This
allows as to hold off conversions (BGRA <-> RGBA, (un)premultiply) to
when/if they are actually needed. For example when loading snapshot into
webgl we can load both RGBA and BGRA so no conversion is really needed.
Currently whole thing is designed to be able to be extend on
https://github.com/servo/ipc-channel/pull/356, to make less copies.
Hence some commented out code.
Fixes#35759
There are tests for these changes in WPT
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Updates wgpu to v25 and remove some verbose logging from CTS (that also
causes OOM).
Testing: WebGPU CTS
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This affects the following testsuites:
- tests/wpt/tests/
- tests/wpt/mozilla/tests/
- tests/wpt/webgl/tests/
- tests/wpt/webgpu/tests/
Testing: Several tests improve
This is part of #36315
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Flatten and simplify Servo's preferences code. In addition, have both
preferences and options passed in as arguments to `Servo::new()` and
make sure not to use the globally set preferences in `servoshell` (as
much as possible now).
Instead of a complex procedural macro to generate preferences, just
expose a very simple derive macro that adds string based getters and
setters.
- All command-line parsing is moved to servoshell.
- There is no longer the concept of a missing preference.
- Preferences no longer have to be part of the resources bundle because
they now have reasonable default values.
- servoshell specific preferences are no longer part of the preferences
exposed by the Servo API.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Update wgpu to include local const
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* set expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* 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>
* Sync `GPUObjectDescriptorBase` (label is not option anymore)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Sync `GPUFeatureName`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* shader_f16 feature is not usable in wgpu so disable it
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* sync `GPUTextureFormat`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* `validate_texture_format_required_features`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Sync `GPUTexture` attributes
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Make `entryPoint` in `GPUProgrammableStage` optional
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set good expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Bad expectations because naga does not support cons declarations
Also fail on firefox, where skipped before due to missing device features
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Bad expectation, also fails on firefox
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Bad expectations, because naga does not support `let pos = positions[vertex_index];`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set expectation
external texture does not work in firefox too (again naga)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* set bad expectations, because naga does not support `enable`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set bad expectations for, `Texture with '' label has been destroyed`
also fails in firefox with same reason
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* one bad expectation
also on firefox
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* expect that also matches firefox
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* more expect
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Use only 1 proc for _webgpu
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* better doc comment
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
* 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
* Update wgpu to 0.20
* good expectations
* Throw TypeError in configure on unsupported format instead of panic
* Expect
* `into_command_buffer_id`,`into_command_encoder_id`
* Update WebGPU CTS to ae15a59832
* Add internal to GPUErrorFilter to make more test work
* No crash in CreateRenderBundleEncoder
* getCompilationInfo
* Update expectations