mirror of
https://github.com/servo/servo.git
synced 2025-09-29 16:19:14 +01:00
webgpu: Simplify presentation and handle cleared in script (#38717)
There are many important changes here: - Generalize the presentation buffer into standalone staging buffers that hold their own state. This allow them to be used by getImage. - Move all clear handling to the ScriptThread and send the configuration on each request present/getimage, thus avoiding any recreate/clearing messages. This means that we prepare staging buffers lazily, on the first request. Try run for this change: https://github.com/sagudev/servo/actions/runs/17341982368 Testing: This is covered by existing WebGPU CTS tests. There are some bad expectations updates, but they are also on main (presumably from last update the rendering work) although I think CTS is actually wrong (see https://github.com/gpuweb/cts/issues/4440). Fixes: #36820 Fixes: #37705 Fixes: #33368 (we now keep reference alive in hashmap) --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
parent
8d2723b2c9
commit
1f0f079203
29 changed files with 1023 additions and 935 deletions
|
@ -168,7 +168,7 @@ use servo_rand::{Rng, ServoRng, SliceRandom, random};
|
|||
use servo_url::{Host, ImmutableOrigin, ServoUrl};
|
||||
use style::global_style_data::StyleThreadPool;
|
||||
#[cfg(feature = "webgpu")]
|
||||
use webgpu::swapchain::WGPUImageMap;
|
||||
use webgpu::canvas_context::WGPUImageMap;
|
||||
#[cfg(feature = "webgpu")]
|
||||
use webgpu_traits::{WebGPU, WebGPURequest};
|
||||
use webrender::RenderApiSender;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue