sagudev
73b778e67f
Introduce snapshot concept of canvas ( #36119 )
...
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>
2025-04-23 07:32:47 +00:00
Martin Robinson
0caa271176
compositing
: Combine webrender_traits
and compositing_traits
(#36372 )
...
These two traits both exposed different parts of the compositing API,
but now that the compositor doesn't depend directly on `script` any
longer and the `script_traits` crate has been split into the
`constellation_traits` crate, this can be finally be cleaned up without
causing circular dependencies. In addition, some unit tests for the
`IOPCompositor`'s scroll node tree are also moved into
`compositing_traits` as well.
Testing: This just combines two crates, so no new tests are necessary.
Fixes : #35984 .
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-06 17:34:18 +00:00
Martin Robinson
0d693114ad
webgpu: Add a webgpu_traits
crate ( #36320 )
...
This breaks the `script_traits` dependency on `webgpu`. In general, the
`traits` crates shouldn't depend on Servo non-`traits` crates. This is
necessary to move "script to constellation" messages to the
`constellation_traits` crate, making it the entire API for talking to
the
constellation. This will break a circular dependency when that happens.
Testing: Successfully building is enough of a test for this one as
it is mainly moving types around.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-04 08:06:07 +00:00
Simon Wülker
3d320fa96a
Update rustfmt to the 2024 style edition ( #35764 )
...
* Use 2024 style edition
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Reformat all code
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-03-03 11:26:53 +00:00
Martin Robinson
643885e6f1
deps: Upgrade to webrender@0.66
( #35325 )
...
In addition to some small API changes, this downstream version of
WebRender no longer depends on a very old version of time. This is the
last step toward removing the dependency on `time0.1`.
The review for this commit should also include: 9f552bebab
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-02-07 11:57:26 +00:00
Samson
35835af857
webgpu: implement get image for webgpu canvas ( #35237 )
...
* Implement `get_image_data` for WebGPU canvas
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Add docs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-01-31 15:24:33 +00:00
Samson
d24234ac72
Update wgpu to trunk ( #34607 )
...
* Update wgpu
8f82992b9f
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fix warnings
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* re
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* re
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Allow git source for gfx-rs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-12-13 18:28:47 +00:00
Samson
a01d66df53
webgpu: Move supported context format to content timeline ( #34028 )
...
* Move supported context format to content timeline
https://github.com/gpuweb/gpuweb/pull/4911
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-10-28 09:15:46 +00:00
tanishka
0a5540f6a4
clippy: Fix warnings in components/script
& components/webgpu
( #33653 )
...
* clippy: Fix warnings in component/script & component/webgpu
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
* fix: use same variable name in if-let block
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
---------
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
2024-10-05 14:10:32 +00:00
Samson
20eb927843
chore: Update wgpu again ( #33635 )
...
* Update wgpu again
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update components/webgpu/swapchain.rs
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
* Update components/webgpu/wgpu_thread.rs
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-10-04 17:29:24 +00:00
tanishka
4850caeec4
clippy: Fix too_many_arguments warnings ( #33648 )
...
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
2024-10-04 16:27:23 +00:00
tanishka
03b8034f68
clippy: Fix several warnings in components/script
and components/webgpu
( #33633 )
...
* clippy: Fix several warnings in components
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
* fix: Allow upper_case_acronyms
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
* clippy: Fix more warnings
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
---------
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
2024-10-04 05:29:10 +00:00
Samson
6e043cd09e
webgpu: Introduce PresentationId to ensure updates with newer presentation ( #33613 )
...
* Introduce PresentationId to ensure update with newer presentation
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update swapchain.rs
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
2024-10-04 04:50:26 +00:00
Mercy Bassey
43d559a1c2
replaced .map
with .and_then
and removed .flatten()
( #33631 )
...
Signed-off-by: mercybassey <udohmercy911@gmail.com>
2024-10-03 13:23:01 +00:00
Samson
05ecb8eddb
webgpu: renovate gpucanvascontext and webgpu presentation to match the spec ( #33521 )
...
* Reimpl gpucanvascontext
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* ValidateTextureDescriptorAndCreateSwapChain
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* reconfigure
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* resize
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* work around deadlocks in wgpu core
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* match spec even more by moving all swapchain operations into one updatecontext
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* error handling
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* enable one test
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* label dummy texture
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* update expect
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* clean some expectation (they are not flaky anymore)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* one more
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* change for configuration change in update_wr_image
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* DEFAULT_IMAGE_FORMAT
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixup
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* introduce WebGPUImageDescriptor
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-10-01 10:03:11 +00:00
Samson
bab769a7cf
reuse ImageKey for gpucanvascontext ( #33517 )
...
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-09-22 11:57:50 +00:00
Samson
06bf6124c4
webgpu: Use PresentationBufferState
instead of bucketing buffer_ids per state ( #33457 )
...
* `PresentationBufferState`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixups
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-09-16 14:06:27 +00:00
Samson
261d60e456
webgpu: Do one allocation less on presentation by keeping GPUBuffer mapped ( #33387 )
...
* `GPUPresentationBuffer` in `WGPUExternalImages`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* mv presentation_buffer in if let
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* docs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-09-13 13:32:00 +00:00
Samson
687f356db9
webgpu: Factor out swapchain to separate file ( #33367 )
...
* Move some stuff to swapchain.rs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Use typed WebGPUContextId instead of u64
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Extract create_swapchain function and move more stuff in it
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* extract destroy_swapchain
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* extract swapchain_present
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* extract update_wr_image callback
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixup
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-09-09 13:29:04 +00:00