Samson
4e51c7be43
Update wgpu and impl WGSLLanguageFeatures
( #34928 )
...
* Update wgpu and impl `WGSLLanguageFeatures`
dc9b2eb718
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>
2025-01-10 17:41:11 +00:00
Samson
d7eb0c5c38
Update wgpu to better handle optional attachment load/store ops ( #34646 )
...
* Update wgpu to better handle attachment load/store ops
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-12-16 18:58:53 +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
43d1601016
Only send mapping back on unmap when MapMode = WRITE ( #34054 )
...
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-10-29 18:42:07 +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
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
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
6f797709cf
webgpu: destroy GPUTexture without erroring ( #33534 )
...
* destroy GPUTexture without erroring (errors can be safely ignored)
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-09-25 09:36:09 +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
24ad2a0526
chore: Update wgpu ( #33506 )
...
* Update wgpu
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* use all backends at runtime
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* clean up some adapter stuff
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* flakes
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-09-21 04:20:18 +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
Samson
817a91f2ac
webgpu: Clean up GPUCommandEncoders
and add some validation ( #33223 )
...
* TextureUsages::from_bits_retain
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fixup CreateBindGroupLayout
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* GPUExtent3D checking and converting
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Cleanup GPUCommandEncoders and some TODOs
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* validate gpuorigin3d
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* validate GPUColor
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* set good expect
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-08-30 11:23:17 +00:00
Samson
12661c1920
Update wgpu ( #33209 )
...
no gfx_select macro and some minor changes to passes
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-08-27 20:31:31 +00:00
Samson
7fce24f9d5
webgpu: Sync GPUBuffer
( #33154 )
...
* 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>
2024-08-27 07:54:55 +00:00
Samson
65bd5a3b99
webgpu: Align writeBuffer
with spec ( #33147 )
...
* Sync `WriteBuffer`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set good expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Change assert to debug_assert
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-08-21 11:46:23 +00:00
Samson
24b1404d12
Update wgpu ( #32981 )
...
* Update wgpu to 781b54a8b9
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-08-08 20:27:16 +00:00
Samson
b8cf0cf9af
webgpu: Implement proper async pipeline creation and GPUPipelineError ( #32636 )
...
* Add GPUPipelineError
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Proper GetBindGroupLayout
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Proper Create*PipelineAsync
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixups
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* more good expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-08-08 11:48:43 +00:00
Samson
f989d3776e
separate Queue&Device Id ( #32966 )
...
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-08-08 07:53:17 +00:00
Samson
5e59988c87
webgpu: Use wgpu's instead of string errors and update limits handling ( #32925 )
...
* Use wgpu specific errors
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixup expect
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* WIP
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fix records erasing enforcerange
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* page can already be destroyed
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Support more limits
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set good results
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Set OK (not PASS) expect CRASH
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixup expectation
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* bad expectations
https://github.com/gfx-rs/wgpu/issues/6075
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* set bad expectation
render bundleencoder needs to be rewritten
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-08-04 17:19:46 +00:00
Samson
ad74bfc4ea
webgpu: Update wgpu to 22.0 ( #32827 )
...
* 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>
2024-07-25 08:27:26 +00:00
Samson
b471f6473f
Remove failure breaks from webgpu thread ( #32814 )
...
* Remove breaks from webgpu requests
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* expect
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* limit,out_of_range TIMEOUT->FAIL
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-07-20 19:57:53 +00:00
Rodion Borovyk
4bf5024ee0
fix a couple of simple clipy warnings ( #32813 )
...
Signed-off-by: Rodion Borovyk <rodion.borovyk@gmail.com>
2024-07-19 13:18:34 +00:00
Samson
34eed29037
Less nesting in webgpu response ( #32799 )
...
* Remove Option wrap of WebGPUResponse
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Replace WebGPUResponseResult with WebGPUResponse
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-07-17 20:37:52 +00:00
Samson
99c1f886b8
webgpu: Update wgpu and revamp RenderPass ( #32665 )
...
* 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
2024-07-04 12:16:42 +00:00
Samson
c0105de82b
webgpu: Implement ShaderCompilationInfo ( #32642 )
...
* ShaderCompilationInfo
* expectations
* Handle CompilationInfo promise in GPUShaderModule
* Fix my english
2024-07-02 13:39:06 +00:00
Samson
e9cf4d4971
webgpu: Update wgpu and revamp computepass ( #32575 )
...
* 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
2024-06-28 04:49:35 +00:00
Samson
bf99cf7f30
Proper GPUDevice cleanup ( #32520 )
...
* 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
2024-06-20 05:56:59 +00:00
Samson
cbc9304c20
webgpu: Implement device lost ( #32354 )
...
* 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
2024-06-17 12:47:25 +00:00
Hieu Do
3d70243438
webgpu: Parse and forward backend prefs to wgpu ( #32410 )
...
Signed-off-by: Hieu Do <hieudn.uh@gmail.com>
2024-05-31 17:51:36 +00:00
Farid
0ccf129be0
clippy: Fix warnings in components/webgpu/wgpu_thread.rs
( #32392 )
...
* clippy: Fix warnings in `components/webgpu/wgpu_thread.rs`
Signed-off-by: Jujumba <far77578@gmail.com>
* clippy: `test-tidy` failure in `components/webgpu/wgpu_thread.rs`
Signed-off-by: Jujumba <far77578@gmail.com>
---------
Signed-off-by: Jujumba <far77578@gmail.com>
2024-05-31 06:49:57 +00:00
Samson
794110ebe5
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
2024-05-22 16:47:35 +00:00
Martin Robinson
3398fc017b
Move non-gfx things out of gfx_traits
and create a base
crate ( #32296 )
...
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`.
2024-05-17 12:28:58 +00:00
Samson
00f267e289
webgpu: Use WGPU poller thread for poll_all_devices ( #32266 )
...
* 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
2024-05-15 03:36:01 +00:00
Samson
168d43f24a
webgpu: Refactor webgpu crate ( #32255 )
...
* wgpu(_core) -> wgc
* Refactor webgpu crate
split lib.rs into multiple modules
2024-05-08 13:53:39 +00:00