mirror of
https://github.com/servo/servo.git
synced 2025-09-27 23:30:08 +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
|
@ -2,9 +2,9 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use canvas_context::WGPUImageMap;
|
||||
pub use canvas_context::{ContextData, WGPUExternalImages};
|
||||
use log::warn;
|
||||
use swapchain::WGPUImageMap;
|
||||
pub use swapchain::{ContextData, WGPUExternalImages};
|
||||
use webgpu_traits::{WebGPU, WebGPUMsg};
|
||||
use wgpu_thread::WGPU;
|
||||
pub use {wgpu_core as wgc, wgpu_types as wgt};
|
||||
|
@ -19,7 +19,7 @@ use compositing_traits::{CrossProcessCompositorApi, WebrenderExternalImageRegist
|
|||
use ipc_channel::ipc::{self, IpcReceiver};
|
||||
use servo_config::pref;
|
||||
|
||||
pub mod swapchain;
|
||||
pub mod canvas_context;
|
||||
|
||||
pub fn start_webgpu_thread(
|
||||
compositor_api: CrossProcessCompositorApi,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue