diff options
-rw-r--r-- | Cargo.lock | 18 | ||||
-rw-r--r-- | Cargo.toml | 4 | ||||
-rw-r--r-- | components/script/dom/gpucommandencoder.rs | 153 | ||||
-rw-r--r-- | components/script/dom/gpucomputepassencoder.rs | 5 | ||||
-rw-r--r-- | components/script/dom/gpurenderpassencoder.rs | 248 | ||||
-rw-r--r-- | components/script/dom/identityhub.rs | 12 | ||||
-rw-r--r-- | components/script/dom/webidls/WebGPU.webidl | 2 | ||||
-rw-r--r-- | components/script/script_thread.rs | 2 | ||||
-rw-r--r-- | components/webgpu/dom_messages.rs | 23 | ||||
-rw-r--r-- | components/webgpu/identity.rs | 9 | ||||
-rw-r--r-- | components/webgpu/lib.rs | 2 | ||||
-rw-r--r-- | components/webgpu/render_commands.rs | 151 | ||||
-rw-r--r-- | components/webgpu/script_messages.rs | 6 | ||||
-rw-r--r-- | components/webgpu/wgpu_thread.rs | 172 | ||||
-rw-r--r-- | tests/wpt/webgpu/meta/webgpu/cts.https.html.ini | 778 |
15 files changed, 556 insertions, 1029 deletions
diff --git a/Cargo.lock b/Cargo.lock index fb2cae670e3..f9d1d6e50c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -391,18 +391,18 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" [[package]] name = "bit_field" @@ -1195,7 +1195,7 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" [[package]] name = "d3d12" version = "0.20.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=1e784c9c0af7a785b62e3b6840ed012a7477520f#1e784c9c0af7a785b62e3b6840ed012a7477520f" +source = "git+https://github.com/gfx-rs/wgpu?rev=f25e07b984ab391628d9568296d5970981d79d8b#f25e07b984ab391628d9568296d5970981d79d8b" dependencies = [ "bitflags 2.6.0", "libloading", @@ -4036,7 +4036,7 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" [[package]] name = "naga" version = "0.20.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=1e784c9c0af7a785b62e3b6840ed012a7477520f#1e784c9c0af7a785b62e3b6840ed012a7477520f" +source = "git+https://github.com/gfx-rs/wgpu?rev=f25e07b984ab391628d9568296d5970981d79d8b#f25e07b984ab391628d9568296d5970981d79d8b" dependencies = [ "arrayvec", "bit-set", @@ -7385,7 +7385,7 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "wgpu-core" version = "0.20.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=1e784c9c0af7a785b62e3b6840ed012a7477520f#1e784c9c0af7a785b62e3b6840ed012a7477520f" +source = "git+https://github.com/gfx-rs/wgpu?rev=f25e07b984ab391628d9568296d5970981d79d8b#f25e07b984ab391628d9568296d5970981d79d8b" dependencies = [ "arrayvec", "bit-vec", @@ -7410,7 +7410,7 @@ dependencies = [ [[package]] name = "wgpu-hal" version = "0.20.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=1e784c9c0af7a785b62e3b6840ed012a7477520f#1e784c9c0af7a785b62e3b6840ed012a7477520f" +source = "git+https://github.com/gfx-rs/wgpu?rev=f25e07b984ab391628d9568296d5970981d79d8b#f25e07b984ab391628d9568296d5970981d79d8b" dependencies = [ "android_system_properties", "arrayvec", @@ -7451,7 +7451,7 @@ dependencies = [ [[package]] name = "wgpu-types" version = "0.20.0" -source = "git+https://github.com/gfx-rs/wgpu?rev=1e784c9c0af7a785b62e3b6840ed012a7477520f#1e784c9c0af7a785b62e3b6840ed012a7477520f" +source = "git+https://github.com/gfx-rs/wgpu?rev=f25e07b984ab391628d9568296d5970981d79d8b#f25e07b984ab391628d9568296d5970981d79d8b" dependencies = [ "bitflags 2.6.0", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index 2de83648326..6042e2da92a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -136,8 +136,8 @@ webpki-roots = "0.25" webrender = { git = "https://github.com/servo/webrender", branch = "0.64", features = ["capture"] } webrender_api = { git = "https://github.com/servo/webrender", branch = "0.64" } webrender_traits = { path = "components/shared/webrender" } -wgpu-core = { git = "https://github.com/gfx-rs/wgpu", rev = "1e784c9c0af7a785b62e3b6840ed012a7477520f" } -wgpu-types = { git = "https://github.com/gfx-rs/wgpu", rev = "1e784c9c0af7a785b62e3b6840ed012a7477520f" } +wgpu-core = { git = "https://github.com/gfx-rs/wgpu", rev = "f25e07b984ab391628d9568296d5970981d79d8b" } +wgpu-types = { git = "https://github.com/gfx-rs/wgpu", rev = "f25e07b984ab391628d9568296d5970981d79d8b" } windows-sys = "0.52" xi-unicode = "0.1.0" xml5ever = "0.18" diff --git a/components/script/dom/gpucommandencoder.rs b/components/script/dom/gpucommandencoder.rs index f926853b794..9243176be11 100644 --- a/components/script/dom/gpucommandencoder.rs +++ b/components/script/dom/gpucommandencoder.rs @@ -2,13 +2,12 @@ * 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 std::borrow::Cow; use std::cell::Cell; use std::collections::HashSet; use dom_struct::dom_struct; use webgpu::wgc::command as wgpu_com; -use webgpu::{self, wgt, WebGPU, WebGPUComputePass, WebGPURequest}; +use webgpu::{self, wgt, WebGPU, WebGPUComputePass, WebGPURenderPass, WebGPURequest}; use super::gpuconvert::convert_label; use crate::dom::bindings::cell::DomRefCell; @@ -134,89 +133,85 @@ impl GPUCommandEncoderMethods for GPUCommandEncoder { &self, descriptor: &GPURenderPassDescriptor, ) -> DomRoot<GPURenderPassEncoder> { - let render_pass = if !self.valid.get() { - None - } else { - let depth_stencil = descriptor.depthStencilAttachment.as_ref().map(|depth| { - wgpu_com::RenderPassDepthStencilAttachment { - depth: wgpu_com::PassChannel { - load_op: convert_load_op(depth.depthLoadOp), - store_op: convert_store_op(depth.depthStoreOp), - clear_value: *depth.depthClearValue.unwrap_or_default(), - read_only: depth.depthReadOnly, - }, - stencil: wgpu_com::PassChannel { - load_op: convert_load_op(depth.stencilLoadOp), - store_op: convert_store_op(depth.stencilStoreOp), - clear_value: depth.stencilClearValue, - read_only: depth.stencilReadOnly, + let depth_stencil_attachment = descriptor.depthStencilAttachment.as_ref().map(|depth| { + wgpu_com::RenderPassDepthStencilAttachment { + depth: wgpu_com::PassChannel { + load_op: convert_load_op(depth.depthLoadOp), + store_op: convert_store_op(depth.depthStoreOp), + clear_value: *depth.depthClearValue.unwrap_or_default(), + read_only: depth.depthReadOnly, + }, + stencil: wgpu_com::PassChannel { + load_op: convert_load_op(depth.stencilLoadOp), + store_op: convert_store_op(depth.stencilStoreOp), + clear_value: depth.stencilClearValue, + read_only: depth.stencilReadOnly, + }, + view: depth.view.id().0, + } + }); + + let color_attachments = descriptor + .colorAttachments + .iter() + .map(|color| { + let channel = wgpu_com::PassChannel { + load_op: convert_load_op(Some(color.loadOp)), + store_op: convert_store_op(Some(color.storeOp)), + clear_value: if let Some(clear_val) = &color.clearValue { + match clear_val { + DoubleSequenceOrGPUColorDict::DoubleSequence(s) => { + let mut w = s.clone(); + if w.len() < 3 { + w.resize(3, Finite::wrap(0.0f64)); + } + w.resize(4, Finite::wrap(1.0f64)); + wgt::Color { + r: *w[0], + g: *w[1], + b: *w[2], + a: *w[3], + } + }, + DoubleSequenceOrGPUColorDict::GPUColorDict(d) => wgt::Color { + r: *d.r, + g: *d.g, + b: *d.b, + a: *d.a, + }, + } + } else { + wgt::Color::TRANSPARENT }, - view: depth.view.id().0, - } - }); + read_only: false, + }; + Some(wgpu_com::RenderPassColorAttachment { + resolve_target: color.resolveTarget.as_ref().map(|t| t.id().0), + channel, + view: color.view.id().0, + }) + }) + .collect::<Vec<_>>(); + let render_pass_id = self + .global() + .wgpu_id_hub() + .create_render_pass_id(self.device.id().0.backend()); - let desc = wgpu_com::RenderPassDescriptor { - color_attachments: Cow::Owned( - descriptor - .colorAttachments - .iter() - .map(|color| { - let channel = wgpu_com::PassChannel { - load_op: convert_load_op(Some(color.loadOp)), - store_op: convert_store_op(Some(color.storeOp)), - clear_value: if let Some(clear_val) = &color.clearValue { - match clear_val { - DoubleSequenceOrGPUColorDict::DoubleSequence(s) => { - let mut w = s.clone(); - if w.len() < 3 { - w.resize(3, Finite::wrap(0.0f64)); - } - w.resize(4, Finite::wrap(1.0f64)); - wgt::Color { - r: *w[0], - g: *w[1], - b: *w[2], - a: *w[3], - } - }, - DoubleSequenceOrGPUColorDict::GPUColorDict(d) => { - wgt::Color { - r: *d.r, - g: *d.g, - b: *d.b, - a: *d.a, - } - }, - } - } else { - wgt::Color::TRANSPARENT - }, - read_only: false, - }; - Some(wgpu_com::RenderPassColorAttachment { - resolve_target: color.resolveTarget.as_ref().map(|t| t.id().0), - channel, - view: color.view.id().0, - }) - }) - .collect::<Vec<_>>(), - ), - depth_stencil_attachment: depth_stencil.as_ref(), - label: descriptor - .parent - .label - .as_ref() - .map(|l| Cow::Borrowed(&**l)), - timestamp_writes: None, - occlusion_query_set: None, - }; - Some(wgpu_com::RenderPass::new(self.encoder.0, &desc)) - }; + if let Err(e) = self.channel.0.send(WebGPURequest::BeginRenderPass { + command_encoder_id: self.id().0, + render_pass_id, + label: convert_label(&descriptor.parent), + depth_stencil_attachment, + color_attachments, + device_id: self.device.id().0, + }) { + warn!("Failed to send WebGPURequest::BeginRenderPass {e:?}"); + } GPURenderPassEncoder::new( &self.global(), self.channel.clone(), - render_pass, + WebGPURenderPass(render_pass_id), self, descriptor.parent.label.clone().unwrap_or_default(), ) diff --git a/components/script/dom/gpucomputepassencoder.rs b/components/script/dom/gpucomputepassencoder.rs index 4fd943fd3bc..ccdfbb05f99 100644 --- a/components/script/dom/gpucomputepassencoder.rs +++ b/components/script/dom/gpucomputepassencoder.rs @@ -5,7 +5,6 @@ use dom_struct::dom_struct; use webgpu::{WebGPU, WebGPUComputePass, WebGPURequest}; -use super::bindings::error::Fallible; use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::WebGPUBinding::GPUComputePassEncoderMethods; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; @@ -109,7 +108,7 @@ impl GPUComputePassEncoderMethods for GPUComputePassEncoder { } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderpassencoder-endpass> - fn End(&self) -> Fallible<()> { + fn End(&self) { if let Err(e) = self.channel.0.send(WebGPURequest::EndComputePass { compute_pass_id: self.compute_pass.0, device_id: self.command_encoder.device_id().0, @@ -117,11 +116,9 @@ impl GPUComputePassEncoderMethods for GPUComputePassEncoder { }) { warn!("Failed to send WebGPURequest::EndComputePass: {e:?}"); } - Ok(()) } /// <https://gpuweb.github.io/gpuweb/#dom-gpuprogrammablepassencoder-setbindgroup> - #[allow(unsafe_code)] fn SetBindGroup(&self, index: u32, bind_group: &GPUBindGroup, offsets: Vec<u32>) { if let Err(e) = self.channel.0.send(WebGPURequest::ComputePassSetBindGroup { compute_pass_id: self.compute_pass.0, diff --git a/components/script/dom/gpurenderpassencoder.rs b/components/script/dom/gpurenderpassencoder.rs index 5fc3d20c3df..19a9850519e 100644 --- a/components/script/dom/gpurenderpassencoder.rs +++ b/components/script/dom/gpurenderpassencoder.rs @@ -3,11 +3,9 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use dom_struct::dom_struct; -use webgpu::wgc::command::{render_commands as wgpu_render, RenderPass}; -use webgpu::{wgt, WebGPU, WebGPURequest}; +use webgpu::{wgt, RenderCommand, WebGPU, WebGPURenderPass, WebGPURequest}; use super::bindings::codegen::Bindings::WebGPUBinding::GPUIndexFormat; -use super::bindings::error::Fallible; use crate::dom::bindings::cell::DomRefCell; use crate::dom::bindings::codegen::Bindings::WebGPUBinding::{ GPUColor, GPURenderPassEncoderMethods, @@ -30,16 +28,15 @@ pub struct GPURenderPassEncoder { #[no_trace] channel: WebGPU, label: DomRefCell<USVString>, - #[ignore_malloc_size_of = "defined in wgpu-core"] #[no_trace] - render_pass: DomRefCell<Option<RenderPass>>, + render_pass: WebGPURenderPass, command_encoder: Dom<GPUCommandEncoder>, } impl GPURenderPassEncoder { fn new_inherited( channel: WebGPU, - render_pass: Option<RenderPass>, + render_pass: WebGPURenderPass, parent: &GPUCommandEncoder, label: USVString, ) -> Self { @@ -47,7 +44,7 @@ impl GPURenderPassEncoder { channel, reflector_: Reflector::new(), label: DomRefCell::new(label), - render_pass: DomRefCell::new(render_pass), + render_pass, command_encoder: Dom::from_ref(parent), } } @@ -55,7 +52,7 @@ impl GPURenderPassEncoder { pub fn new( global: &GlobalScope, channel: WebGPU, - render_pass: Option<RenderPass>, + render_pass: WebGPURenderPass, parent: &GPUCommandEncoder, label: USVString, ) -> DomRoot<Self> { @@ -69,6 +66,16 @@ impl GPURenderPassEncoder { global, ) } + + fn send_render_command(&self, render_command: RenderCommand) { + if let Err(e) = self.channel.0.send(WebGPURequest::RenderPassCommand { + render_pass_id: self.render_pass.0, + render_command, + device_id: self.command_encoder.device_id().0, + }) { + warn!("Error sending WebGPURequest::RenderPassCommand: {e:?}") + } + } } impl GPURenderPassEncoderMethods for GPURenderPassEncoder { @@ -83,16 +90,12 @@ impl GPURenderPassEncoderMethods for GPURenderPassEncoder { } /// <https://gpuweb.github.io/gpuweb/#dom-gpuprogrammablepassencoder-setbindgroup> - #[allow(unsafe_code)] - fn SetBindGroup(&self, index: u32, bind_group: &GPUBindGroup, dynamic_offsets: Vec<u32>) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_set_bind_group( - render_pass, - index, - bind_group.id().0, - &dynamic_offsets, - ) - } + fn SetBindGroup(&self, index: u32, bind_group: &GPUBindGroup, offsets: Vec<u32>) { + self.send_render_command(RenderCommand::SetBindGroup { + index, + bind_group_id: bind_group.id().0, + offsets, + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderpassencoder-setviewport> @@ -105,79 +108,70 @@ impl GPURenderPassEncoderMethods for GPURenderPassEncoder { min_depth: Finite<f32>, max_depth: Finite<f32>, ) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_set_viewport( - render_pass, - *x, - *y, - *width, - *height, - *min_depth, - *max_depth, - ); - } + self.send_render_command(RenderCommand::SetViewport { + x: *x, + y: *y, + width: *width, + height: *height, + min_depth: *min_depth, + max_depth: *max_depth, + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderpassencoder-setscissorrect> fn SetScissorRect(&self, x: u32, y: u32, width: u32, height: u32) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_set_scissor_rect(render_pass, x, y, width, height); - } + self.send_render_command(RenderCommand::SetScissorRect { + x, + y, + width, + height, + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderpassencoder-setblendcolor> fn SetBlendConstant(&self, color: GPUColor) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - let colors = match color { - GPUColor::GPUColorDict(d) => wgt::Color { - r: *d.r, - g: *d.g, - b: *d.b, - a: *d.a, - }, - GPUColor::DoubleSequence(mut s) => { - if s.len() < 3 { - s.resize(3, Finite::wrap(0.0f64)); - } - s.resize(4, Finite::wrap(1.0f64)); - wgt::Color { - r: *s[0], - g: *s[1], - b: *s[2], - a: *s[3], - } - }, - }; - wgpu_render::wgpu_render_pass_set_blend_constant(render_pass, &colors); - } + let color = match color { + GPUColor::GPUColorDict(d) => wgt::Color { + r: *d.r, + g: *d.g, + b: *d.b, + a: *d.a, + }, + GPUColor::DoubleSequence(mut s) => { + if s.len() < 3 { + s.resize(3, Finite::wrap(0.0f64)); + } + s.resize(4, Finite::wrap(1.0f64)); + wgt::Color { + r: *s[0], + g: *s[1], + b: *s[2], + a: *s[3], + } + }, + }; + self.send_render_command(RenderCommand::SetBlendConstant(color)) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderpassencoder-setstencilreference> fn SetStencilReference(&self, reference: u32) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_set_stencil_reference(render_pass, reference); - } + self.send_render_command(RenderCommand::SetStencilReference(reference)) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderpassencoder-end> - fn End(&self) -> Fallible<()> { - let render_pass = self.render_pass.borrow_mut().take(); - self.channel - .0 - .send(WebGPURequest::EndRenderPass { - render_pass, - device_id: self.command_encoder.device_id().0, - }) - .expect("Failed to send RunRenderPass"); - - Ok(()) + fn End(&self) { + if let Err(e) = self.channel.0.send(WebGPURequest::EndRenderPass { + render_pass_id: self.render_pass.0, + device_id: self.command_encoder.device_id().0, + command_encoder_id: self.command_encoder.id().0, + }) { + warn!("Failed to send WebGPURequest::EndRenderPass: {e:?}"); + } } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderencoderbase-setpipeline> fn SetPipeline(&self, pipeline: &GPURenderPipeline) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_set_pipeline(render_pass, pipeline.id().0); - } + self.send_render_command(RenderCommand::SetPipeline(pipeline.id().0)) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurendercommandsmixin-setindexbuffer> @@ -188,44 +182,35 @@ impl GPURenderPassEncoderMethods for GPURenderPassEncoder { offset: u64, size: u64, ) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_set_index_buffer( - render_pass, - buffer.id().0, - match index_format { - GPUIndexFormat::Uint16 => wgt::IndexFormat::Uint16, - GPUIndexFormat::Uint32 => wgt::IndexFormat::Uint32, - }, - offset, - wgt::BufferSize::new(size), - ); - } + self.send_render_command(RenderCommand::SetIndexBuffer { + buffer_id: buffer.id().0, + index_format: match index_format { + GPUIndexFormat::Uint16 => wgt::IndexFormat::Uint16, + GPUIndexFormat::Uint32 => wgt::IndexFormat::Uint32, + }, + offset, + size: wgt::BufferSize::new(size), + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderencoderbase-setvertexbuffer> fn SetVertexBuffer(&self, slot: u32, buffer: &GPUBuffer, offset: u64, size: u64) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_set_vertex_buffer( - render_pass, - slot, - buffer.id().0, - offset, - wgt::BufferSize::new(size), - ); - } + self.send_render_command(RenderCommand::SetVertexBuffer { + slot, + buffer_id: buffer.id().0, + offset, + size: wgt::BufferSize::new(size), + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderencoderbase-draw> fn Draw(&self, vertex_count: u32, instance_count: u32, first_vertex: u32, first_instance: u32) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_draw( - render_pass, - vertex_count, - instance_count, - first_vertex, - first_instance, - ); - } + self.send_render_command(RenderCommand::Draw { + vertex_count, + instance_count, + first_vertex, + first_instance, + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderencoderbase-drawindexed> @@ -237,46 +222,47 @@ impl GPURenderPassEncoderMethods for GPURenderPassEncoder { base_vertex: i32, first_instance: u32, ) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_draw_indexed( - render_pass, - index_count, - instance_count, - first_index, - base_vertex, - first_instance, - ); - } + self.send_render_command(RenderCommand::DrawIndexed { + index_count, + instance_count, + first_index, + base_vertex, + first_instance, + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderencoderbase-drawindirect> - fn DrawIndirect(&self, indirect_buffer: &GPUBuffer, indirect_offset: u64) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_draw_indirect( - render_pass, - indirect_buffer.id().0, - indirect_offset, - ); - } + fn DrawIndirect(&self, buffer: &GPUBuffer, offset: u64) { + self.send_render_command(RenderCommand::DrawIndirect { + buffer_id: buffer.id().0, + offset, + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderencoderbase-drawindexedindirect> - fn DrawIndexedIndirect(&self, indirect_buffer: &GPUBuffer, indirect_offset: u64) { - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_draw_indexed_indirect( - render_pass, - indirect_buffer.id().0, - indirect_offset, - ); - } + fn DrawIndexedIndirect(&self, buffer: &GPUBuffer, offset: u64) { + self.send_render_command(RenderCommand::DrawIndexedIndirect { + buffer_id: buffer.id().0, + offset, + }) } /// <https://gpuweb.github.io/gpuweb/#dom-gpurenderpassencoder-executebundles> #[allow(unsafe_code)] fn ExecuteBundles(&self, bundles: Vec<DomRoot<GPURenderBundle>>) { - let bundle_ids = bundles.iter().map(|b| b.id().0).collect::<Vec<_>>(); - if let Some(render_pass) = self.render_pass.borrow_mut().as_mut() { - wgpu_render::wgpu_render_pass_execute_bundles(render_pass, &bundle_ids) + let bundle_ids: Vec<_> = bundles.iter().map(|b| b.id().0).collect(); + self.send_render_command(RenderCommand::ExecuteBundles(bundle_ids)) + } +} + +impl Drop for GPURenderPassEncoder { + fn drop(&mut self) { + if let Err(e) = self + .channel + .0 + .send(WebGPURequest::DropRenderPass(self.render_pass.0)) + { + warn!("Failed to send WebGPURequest::DropRenderPass with {e:?}"); } } } diff --git a/components/script/dom/identityhub.rs b/components/script/dom/identityhub.rs index 7b3733c6ab4..1ab8d84bb3d 100644 --- a/components/script/dom/identityhub.rs +++ b/components/script/dom/identityhub.rs @@ -3,7 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use smallvec::SmallVec; -use webgpu::identity::{ComputePass, ComputePassId}; +use webgpu::identity::{ComputePass, ComputePassId, RenderPass, RenderPassId}; use webgpu::wgc::id::markers::{ Adapter, BindGroup, BindGroupLayout, Buffer, CommandEncoder, ComputePipeline, Device, PipelineLayout, RenderBundle, RenderPipeline, Sampler, ShaderModule, Texture, TextureView, @@ -33,6 +33,7 @@ pub struct IdentityHub { render_pipelines: IdentityManager<RenderPipeline>, render_bundles: IdentityManager<RenderBundle>, compute_passes: IdentityManager<ComputePass>, + render_passes: IdentityManager<RenderPass>, } impl IdentityHub { @@ -53,6 +54,7 @@ impl IdentityHub { render_pipelines: IdentityManager::new(), render_bundles: IdentityManager::new(), compute_passes: IdentityManager::new(), + render_passes: IdentityManager::new(), } } } @@ -236,6 +238,14 @@ impl Identities { pub fn free_compute_pass_id(&self, id: ComputePassId) { self.select(id.backend()).compute_passes.free(id); } + + pub fn create_render_pass_id(&self, backend: Backend) -> RenderPassId { + self.select(backend).render_passes.process(backend) + } + + pub fn free_render_pass_id(&self, id: RenderPassId) { + self.select(id.backend()).render_passes.free(id); + } } impl Default for Identities { diff --git a/components/script/dom/webidls/WebGPU.webidl b/components/script/dom/webidls/WebGPU.webidl index 95db913c5e3..4454f59f6cf 100644 --- a/components/script/dom/webidls/WebGPU.webidl +++ b/components/script/dom/webidls/WebGPU.webidl @@ -840,7 +840,6 @@ interface GPUComputePassEncoder { //[Pref="dom.webgpu.indirect-dispatch.enabled"] undefined dispatchWorkgroupsIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset); - [Throws] undefined end(); }; GPUComputePassEncoder includes GPUObjectBase; @@ -871,7 +870,6 @@ interface GPURenderPassEncoder { undefined executeBundles(sequence<GPURenderBundle> bundles); - [Throws] undefined end(); }; GPURenderPassEncoder includes GPUObjectBase; diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index 86c92b5f997..0d70eea49e2 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -2444,6 +2444,8 @@ impl ScriptThread { WebGPUMsg::FreeRenderPipeline(id) => self.gpu_id_hub.free_render_pipeline_id(id), WebGPUMsg::FreeTexture(id) => self.gpu_id_hub.free_texture_id(id), WebGPUMsg::FreeTextureView(id) => self.gpu_id_hub.free_texture_view_id(id), + WebGPUMsg::FreeComputePass(id) => self.gpu_id_hub.free_compute_pass_id(id), + WebGPUMsg::FreeRenderPass(id) => self.gpu_id_hub.free_render_pass_id(id), WebGPUMsg::Exit => *self.webgpu_port.borrow_mut() = None, WebGPUMsg::DeviceLost { pipeline_id, diff --git a/components/webgpu/dom_messages.rs b/components/webgpu/dom_messages.rs index ec407a77858..a79aeea4b3d 100644 --- a/components/webgpu/dom_messages.rs +++ b/components/webgpu/dom_messages.rs @@ -16,7 +16,7 @@ use wgc::binding_model::{ BindGroupDescriptor, BindGroupLayoutDescriptor, PipelineLayoutDescriptor, }; use wgc::command::{ - ImageCopyBuffer, ImageCopyTexture, RenderBundleDescriptor, RenderBundleEncoder, RenderPass, + ImageCopyBuffer, ImageCopyTexture, RenderBundleDescriptor, RenderBundleEncoder, }; use wgc::device::HostMap; use wgc::id; @@ -25,10 +25,12 @@ use wgc::pipeline::{ComputePipelineDescriptor, RenderPipelineDescriptor}; use wgc::resource::{ BufferDescriptor, SamplerDescriptor, TextureDescriptor, TextureViewDescriptor, }; +use wgpu_core::command::{RenderPassColorAttachment, RenderPassDepthStencilAttachment}; use wgpu_core::pipeline::CreateShaderModuleError; pub use {wgpu_core as wgc, wgpu_types as wgt}; use crate::identity::*; +use crate::render_commands::RenderCommand; use crate::{Error, ErrorFilter, PopError, WebGPU, PRESENTATION_BUFFER_COUNT}; #[derive(Clone, Debug, Default, Deserialize, Serialize)] @@ -236,6 +238,7 @@ pub enum WebGPURequest { DropRenderBundle(id::RenderBundleId), DropQuerySet(id::QuerySetId), DropComputePass(id::ComputePassEncoderId), + DropRenderPass(id::RenderPassEncoderId), Exit(IpcSender<()>), RenderBundleEncoderFinish { render_bundle_encoder: RenderBundleEncoder, @@ -255,6 +258,7 @@ pub enum WebGPURequest { device_id: id::DeviceId, pipeline_id: PipelineId, }, + // Compute Pass BeginComputePass { command_encoder_id: id::CommandEncoderId, compute_pass_id: ComputePassId, @@ -291,9 +295,24 @@ pub enum WebGPURequest { device_id: id::DeviceId, command_encoder_id: id::CommandEncoderId, }, + // Render Pass + BeginRenderPass { + command_encoder_id: id::CommandEncoderId, + render_pass_id: RenderPassId, + label: Option<Cow<'static, str>>, + color_attachments: Vec<Option<RenderPassColorAttachment>>, + depth_stencil_attachment: Option<RenderPassDepthStencilAttachment>, + device_id: id::DeviceId, + }, + RenderPassCommand { + render_pass_id: RenderPassId, + render_command: RenderCommand, + device_id: id::DeviceId, + }, EndRenderPass { - render_pass: Option<RenderPass>, + render_pass_id: RenderPassId, device_id: id::DeviceId, + command_encoder_id: id::CommandEncoderId, }, Submit { queue_id: id::QueueId, diff --git a/components/webgpu/identity.rs b/components/webgpu/identity.rs index bb1cb1ca4a0..2203f6db35a 100644 --- a/components/webgpu/identity.rs +++ b/components/webgpu/identity.rs @@ -5,13 +5,17 @@ use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use serde::{Deserialize, Serialize}; -pub use crate::wgc::id::markers::ComputePassEncoder as ComputePass; -pub use crate::wgc::id::ComputePassEncoderId as ComputePassId; +pub use crate::wgc::id::markers::{ + ComputePassEncoder as ComputePass, RenderPassEncoder as RenderPass, +}; use crate::wgc::id::{ AdapterId, BindGroupId, BindGroupLayoutId, BufferId, CommandBufferId, CommandEncoderId, ComputePipelineId, DeviceId, PipelineLayoutId, QueueId, RenderBundleId, RenderPipelineId, SamplerId, ShaderModuleId, SurfaceId, TextureId, TextureViewId, }; +pub use crate::wgc::id::{ + ComputePassEncoderId as ComputePassId, RenderPassEncoderId as RenderPassId, +}; macro_rules! webgpu_resource { ($name:ident, $id:ty) => { @@ -46,3 +50,4 @@ webgpu_resource!(WebGPUSurface, SurfaceId); webgpu_resource!(WebGPUTexture, TextureId); webgpu_resource!(WebGPUTextureView, TextureViewId); webgpu_resource!(WebGPUComputePass, ComputePassId); +webgpu_resource!(WebGPURenderPass, RenderPassId); diff --git a/components/webgpu/lib.rs b/components/webgpu/lib.rs index d3fc3068b97..cb2e4f7ebe5 100644 --- a/components/webgpu/lib.rs +++ b/components/webgpu/lib.rs @@ -19,6 +19,7 @@ use arrayvec::ArrayVec; use euclid::default::Size2D; pub use gpu_error::{Error, ErrorFilter, PopError}; use ipc_channel::ipc::{self, IpcReceiver, IpcSender}; +pub use render_commands::RenderCommand; use serde::{Deserialize, Serialize}; use servo_config::pref; use webrender_api::{DocumentId, ImageData, ImageDescriptor, ImageKey}; @@ -29,6 +30,7 @@ use wgc::id; mod dom_messages; mod gpu_error; +mod render_commands; mod script_messages; pub use dom_messages::*; pub use identity::*; diff --git a/components/webgpu/render_commands.rs b/components/webgpu/render_commands.rs new file mode 100644 index 00000000000..b66c9d616c6 --- /dev/null +++ b/components/webgpu/render_commands.rs @@ -0,0 +1,151 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +//! Render pass commands + +use serde::{Deserialize, Serialize}; +use wgpu_core::command::{DynRenderPass, RenderPassError}; +use wgpu_core::global::Global; + +use crate::wgc::id; +use crate::wgt; + +/// <https://github.com/gfx-rs/wgpu/blob/f25e07b984ab391628d9568296d5970981d79d8b/wgpu-core/src/command/render_command.rs#L17> +#[derive(Debug, Deserialize, Serialize)] +pub enum RenderCommand { + SetPipeline(id::RenderPipelineId), + SetBindGroup { + index: u32, + bind_group_id: id::BindGroupId, + offsets: Vec<u32>, + }, + SetViewport { + x: f32, + y: f32, + width: f32, + height: f32, + min_depth: f32, + max_depth: f32, + }, + SetScissorRect { + x: u32, + y: u32, + width: u32, + height: u32, + }, + SetBlendConstant(wgt::Color), + SetStencilReference(u32), + SetIndexBuffer { + buffer_id: id::BufferId, + index_format: wgt::IndexFormat, + offset: u64, + size: Option<wgt::BufferSize>, + }, + SetVertexBuffer { + slot: u32, + buffer_id: id::BufferId, + offset: u64, + size: Option<wgt::BufferSize>, + }, + Draw { + vertex_count: u32, + instance_count: u32, + first_vertex: u32, + first_instance: u32, + }, + DrawIndexed { + index_count: u32, + instance_count: u32, + first_index: u32, + base_vertex: i32, + first_instance: u32, + }, + DrawIndirect { + buffer_id: id::BufferId, + offset: u64, + }, + DrawIndexedIndirect { + buffer_id: id::BufferId, + offset: u64, + }, + ExecuteBundles(Vec<id::RenderBundleId>), +} + +pub fn apply_render_command( + context: &Global, + pass: &mut Box<dyn DynRenderPass>, + command: RenderCommand, +) -> Result<(), RenderPassError> { + match command { + RenderCommand::SetPipeline(pipeline_id) => pass.set_pipeline(context, pipeline_id), + RenderCommand::SetBindGroup { + index, + bind_group_id, + offsets, + } => pass.set_bind_group(context, index, bind_group_id, &offsets), + RenderCommand::SetViewport { + x, + y, + width, + height, + min_depth, + max_depth, + } => pass.set_viewport(context, x, y, width, height, min_depth, max_depth), + RenderCommand::SetScissorRect { + x, + y, + width, + height, + } => pass.set_scissor_rect(context, x, y, width, height), + RenderCommand::SetBlendConstant(color) => pass.set_blend_constant(context, color), + RenderCommand::SetStencilReference(reference) => { + pass.set_stencil_reference(context, reference) + }, + RenderCommand::SetIndexBuffer { + buffer_id, + index_format, + offset, + size, + } => pass.set_index_buffer(context, buffer_id, index_format, offset, size), + RenderCommand::SetVertexBuffer { + slot, + buffer_id, + offset, + size, + } => pass.set_vertex_buffer(context, slot, buffer_id, offset, size), + RenderCommand::Draw { + vertex_count, + instance_count, + first_vertex, + first_instance, + } => pass.draw( + context, + vertex_count, + instance_count, + first_vertex, + first_instance, + ), + RenderCommand::DrawIndexed { + index_count, + instance_count, + first_index, + base_vertex, + first_instance, + } => pass.draw_indexed( + context, + index_count, + instance_count, + first_index, + base_vertex, + first_instance, + ), + RenderCommand::DrawIndirect { buffer_id, offset } => { + pass.draw_indirect(context, buffer_id, offset) + }, + RenderCommand::DrawIndexedIndirect { buffer_id, offset } => { + pass.draw_indexed_indirect(context, buffer_id, offset) + }, + RenderCommand::ExecuteBundles(bundles) => pass.execute_bundles(context, &bundles), + } +} diff --git a/components/webgpu/script_messages.rs b/components/webgpu/script_messages.rs index 774bfd6cb7c..35571bb9242 100644 --- a/components/webgpu/script_messages.rs +++ b/components/webgpu/script_messages.rs @@ -11,8 +11,9 @@ use crate::gpu_error::Error; use crate::identity::WebGPUDevice; use crate::wgc::id::{ AdapterId, BindGroupId, BindGroupLayoutId, BufferId, CommandBufferId, ComputePassEncoderId, - ComputePipelineId, DeviceId, PipelineLayoutId, QuerySetId, RenderBundleId, RenderPipelineId, - SamplerId, ShaderModuleId, StagingBufferId, SurfaceId, TextureId, TextureViewId, + ComputePipelineId, DeviceId, PipelineLayoutId, QuerySetId, RenderBundleId, RenderPassEncoderId, + RenderPipelineId, SamplerId, ShaderModuleId, StagingBufferId, SurfaceId, TextureId, + TextureViewId, }; /// <https://gpuweb.github.io/gpuweb/#enumdef-gpudevicelostreason> @@ -45,6 +46,7 @@ pub enum WebGPUMsg { FreeStagingBuffer(StagingBufferId), FreeQuerySet(QuerySetId), FreeComputePass(ComputePassEncoderId), + FreeRenderPass(RenderPassEncoderId), UncapturedError { device: WebGPUDevice, pipeline_id: PipelineId, diff --git a/components/webgpu/wgpu_thread.rs b/components/webgpu/wgpu_thread.rs index 4e77813551b..04ff5b2a25a 100644 --- a/components/webgpu/wgpu_thread.rs +++ b/components/webgpu/wgpu_thread.rs @@ -18,7 +18,9 @@ use servo_config::pref; use webrender::{RenderApi, RenderApiSender, Transaction}; use webrender_api::{DirtyRect, DocumentId}; use webrender_traits::{WebrenderExternalImageRegistry, WebrenderImageHandlerType}; -use wgc::command::{ImageCopyBuffer, ImageCopyTexture}; +use wgc::command::{ + ComputePassDescriptor, DynComputePass, DynRenderPass, ImageCopyBuffer, ImageCopyTexture, +}; use wgc::device::queue::SubmittedWorkDoneClosure; use wgc::device::{DeviceDescriptor, DeviceLostClosure, HostMap, ImplicitPipelineIds}; use wgc::id::DeviceId; @@ -26,15 +28,16 @@ use wgc::instance::parse_backends_from_comma_list; use wgc::pipeline::ShaderModuleDescriptor; use wgc::resource::{BufferMapCallback, BufferMapOperation}; use wgc::{gfx_select, id}; -use wgpu_core::command::{ComputePassDescriptor, DynComputePass}; +use wgpu_core::command::RenderPassDescriptor; use wgt::InstanceDescriptor; pub use {wgpu_core as wgc, wgpu_types as wgt}; use crate::gpu_error::ErrorScope; use crate::poll_thread::Poller; +use crate::render_commands::apply_render_command; use crate::{ - ComputePassId, Error, PopError, PresentationData, Transmute, WebGPU, WebGPUAdapter, - WebGPUDevice, WebGPUMsg, WebGPUQueue, WebGPURequest, WebGPUResponse, + ComputePassId, Error, PopError, PresentationData, RenderPassId, Transmute, WebGPU, + WebGPUAdapter, WebGPUDevice, WebGPUMsg, WebGPUQueue, WebGPURequest, WebGPUResponse, }; pub const PRESENTATION_BUFFER_COUNT: usize = 10; @@ -64,6 +67,34 @@ impl DeviceScope { } } +/// This roughly matches <https://www.w3.org/TR/2024/WD-webgpu-20240703/#encoder-state> +#[derive(Debug, Default, Eq, PartialEq)] +enum Pass<P: ?Sized> { + /// Pass is open (not ended) + Open { + /// Actual pass + pass: Box<P>, + /// we need to store valid field + /// because wgpu does not invalidate pass on error + valid: bool, + }, + /// When pass is ended we need to drop it so we replace it with this + #[default] + Ended, +} + +impl<P: ?Sized> Pass<P> { + /// Creates new open pass + fn new(pass: Box<P>, valid: bool) -> Self { + Self::Open { pass, valid } + } + + /// Replaces pass with ended + fn take(&mut self) -> Self { + std::mem::take(self) + } +} + #[allow(clippy::upper_case_acronyms)] // Name of the library pub(crate) struct WGPU { receiver: IpcReceiver<WebGPURequest>, @@ -85,9 +116,10 @@ pub(crate) struct WGPU { wgpu_image_map: Arc<Mutex<HashMap<u64, PresentationData>>>, /// Provides access to poller thread poller: Poller, - /// Store compute passes (that have not ended yet) and their validity - compute_passes: HashMap<ComputePassId, (Box<dyn DynComputePass>, bool)>, - //render_passes: HashMap<RenderPassId, Box<dyn DynRenderPass>>, + /// Store compute passes + compute_passes: HashMap<ComputePassId, Pass<dyn DynComputePass>>, + /// Store render passes + render_passes: HashMap<RenderPassId, Pass<dyn DynRenderPass>>, } impl WGPU { @@ -132,6 +164,7 @@ impl WGPU { external_images, wgpu_image_map, compute_passes: HashMap::new(), + render_passes: HashMap::new(), } } @@ -774,7 +807,7 @@ impl WGPU { )); assert!( self.compute_passes - .insert(compute_pass_id, (pass, error.is_none())) + .insert(compute_pass_id, Pass::new(pass, error.is_none())) .is_none(), "ComputePass should not exist yet." ); @@ -786,7 +819,11 @@ impl WGPU { pipeline_id, device_id, } => { - if let Some((pass, valid)) = self.compute_passes.get_mut(&compute_pass_id) { + let pass = self + .compute_passes + .get_mut(&compute_pass_id) + .expect("ComputePass should exists"); + if let Pass::Open { pass, valid } = pass { *valid &= pass.set_pipeline(&self.global, pipeline_id).is_ok(); } else { self.maybe_dispatch_error( @@ -802,7 +839,11 @@ impl WGPU { offsets, device_id, } => { - if let Some((pass, valid)) = self.compute_passes.get_mut(&compute_pass_id) { + let pass = self + .compute_passes + .get_mut(&compute_pass_id) + .expect("ComputePass should exists"); + if let Pass::Open { pass, valid } = pass { *valid &= pass .set_bind_group(&self.global, index, bind_group_id, &offsets) .is_ok(); @@ -820,7 +861,11 @@ impl WGPU { z, device_id, } => { - if let Some((pass, valid)) = self.compute_passes.get_mut(&compute_pass_id) { + let pass = self + .compute_passes + .get_mut(&compute_pass_id) + .expect("ComputePass should exists"); + if let Pass::Open { pass, valid } = pass { *valid &= pass.dispatch_workgroups(&self.global, x, y, z).is_ok(); } else { self.maybe_dispatch_error( @@ -835,7 +880,11 @@ impl WGPU { offset, device_id, } => { - if let Some((pass, valid)) = self.compute_passes.get_mut(&compute_pass_id) { + let pass = self + .compute_passes + .get_mut(&compute_pass_id) + .expect("ComputePass should exists"); + if let Pass::Open { pass, valid } = pass { *valid &= pass .dispatch_workgroups_indirect(&self.global, buffer_id, offset) .is_ok(); @@ -851,10 +900,15 @@ impl WGPU { device_id, command_encoder_id, } => { + // https://www.w3.org/TR/2024/WD-webgpu-20240703/#dom-gpucomputepassencoder-end + let pass = self + .compute_passes + .get_mut(&compute_pass_id) + .expect("ComputePass should exists"); // TODO: Command encoder state error - if let Some((mut pass, valid)) = - self.compute_passes.remove(&compute_pass_id) - { + if let Pass::Open { mut pass, valid } = pass.take() { + // `pass.end` does step 1-4 + // and if it returns ok we check the validity of the pass at step 5 if pass.end(&self.global).is_ok() && !valid { self.encoder_record_error( command_encoder_id, @@ -868,21 +922,81 @@ impl WGPU { ); }; }, + WebGPURequest::BeginRenderPass { + command_encoder_id, + render_pass_id, + label, + color_attachments, + depth_stencil_attachment, + device_id: _device_id, + } => { + let global = &self.global; + let desc = &RenderPassDescriptor { + label, + color_attachments: color_attachments.into(), + depth_stencil_attachment: depth_stencil_attachment.as_ref(), + timestamp_writes: None, + occlusion_query_set: None, + }; + let (pass, error) = gfx_select!( + command_encoder_id => global.command_encoder_create_render_pass_dyn( + command_encoder_id, + desc, + )); + assert!( + self.render_passes + .insert(render_pass_id, Pass::new(pass, error.is_none())) + .is_none(), + "RenderPass should not exist yet." + ); + // TODO: Command encoder state errors + // self.maybe_dispatch_wgpu_error(device_id, error); + }, + WebGPURequest::RenderPassCommand { + render_pass_id, + render_command, + device_id, + } => { + let pass = self + .render_passes + .get_mut(&render_pass_id) + .expect("RenderPass should exists"); + if let Pass::Open { pass, valid } = pass { + *valid &= + apply_render_command(&self.global, pass, render_command).is_ok(); + } else { + self.maybe_dispatch_error( + device_id, + Some(Error::Validation("pass already ended".to_string())), + ); + }; + }, WebGPURequest::EndRenderPass { - render_pass, + render_pass_id, device_id, + command_encoder_id, } => { - if let Some(render_pass) = render_pass { - let command_encoder_id = render_pass.parent_id(); - let global = &self.global; - let result = gfx_select!(command_encoder_id => global.render_pass_end(&render_pass)); - self.maybe_dispatch_wgpu_error(device_id, result.err()) + // https://www.w3.org/TR/2024/WD-webgpu-20240703/#dom-gpurenderpassencoder-end + let pass = self + .render_passes + .get_mut(&render_pass_id) + .expect("RenderPass should exists"); + // TODO: Command encoder state error + if let Pass::Open { mut pass, valid } = pass.take() { + // `pass.end` does step 1-4 + // and if it returns ok we check the validity of the pass at step 5 + if pass.end(&self.global).is_ok() && !valid { + self.encoder_record_error( + command_encoder_id, + &Err::<(), _>("Pass is invalid".to_string()), + ); + } } else { self.dispatch_error( device_id, - Error::Validation("Render pass already ended".to_string()), - ) - } + Error::Validation("Pass already ended".to_string()), + ); + }; }, WebGPURequest::Submit { queue_id, @@ -1171,12 +1285,20 @@ impl WGPU { }; }, WebGPURequest::DropComputePass(id) => { - // Compute pass might have already ended + // Pass might have already ended. self.compute_passes.remove(&id); if let Err(e) = self.script_sender.send(WebGPUMsg::FreeComputePass(id)) { warn!("Unable to send FreeComputePass({:?}) ({:?})", id, e); }; }, + WebGPURequest::DropRenderPass(id) => { + self.render_passes + .remove(&id) + .expect("RenderPass should exists"); + if let Err(e) = self.script_sender.send(WebGPUMsg::FreeRenderPass(id)) { + warn!("Unable to send FreeRenderPass({:?}) ({:?})", id, e); + }; + }, WebGPURequest::DropRenderPipeline(id) => { let global = &self.global; gfx_select!(id => global.render_pipeline_drop(id)); diff --git a/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini b/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini index a0b6f7afc65..5d9ef99f68d 100644 --- a/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini +++ b/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini @@ -7644,24 +7644,32 @@ [cts.https.html?q=webgpu:api,operation,texture_view,format_reinterpretation:render_and_resolve_attachment:*] [:format="bgra8unorm";viewFormat="bgra8unorm-srgb";sampleCount=1] + expected: + if os == "linux" and not debug: FAIL [:format="bgra8unorm";viewFormat="bgra8unorm-srgb";sampleCount=4] expected: if os == "linux" and not debug: FAIL [:format="bgra8unorm-srgb";viewFormat="bgra8unorm";sampleCount=1] + expected: + if os == "linux" and not debug: FAIL [:format="bgra8unorm-srgb";viewFormat="bgra8unorm";sampleCount=4] expected: if os == "linux" and not debug: FAIL [:format="rgba8unorm";viewFormat="rgba8unorm-srgb";sampleCount=1] + expected: + if os == "linux" and not debug: FAIL [:format="rgba8unorm";viewFormat="rgba8unorm-srgb";sampleCount=4] expected: if os == "linux" and not debug: FAIL [:format="rgba8unorm-srgb";viewFormat="rgba8unorm";sampleCount=1] + expected: + if os == "linux" and not debug: FAIL [:format="rgba8unorm-srgb";viewFormat="rgba8unorm";sampleCount=4] expected: @@ -27577,16 +27585,10 @@ [cts.https.html?q=webgpu:api,validation,encoding,beginRenderPass:color_attachments,device_mismatch:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,beginRenderPass:depth_stencil_attachment,device_mismatch:*] - expected: - if os == "linux" and not debug: CRASH [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,beginRenderPass:occlusion_query_set,device_mismatch:*] @@ -28585,56 +28587,32 @@ [:indexCount=0;firstIndex=6;instanceCount=10000] [:indexCount=0;firstIndex=7;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=0;firstIndex=7;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=10000;firstIndex=0;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=10000;firstIndex=0;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=1;firstIndex=5;instanceCount=1] [:indexCount=1;firstIndex=5;instanceCount=10000] [:indexCount=1;firstIndex=6;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=1;firstIndex=6;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=2;firstIndex=4294967295;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=2;firstIndex=4294967295;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=4294967295;firstIndex=2;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=4294967295;firstIndex=2;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=4294967295;firstIndex=4294967295;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=4294967295;firstIndex=4294967295;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=5;firstIndex=1;instanceCount=1] @@ -28645,28 +28623,16 @@ [:indexCount=6;firstIndex=0;instanceCount=10000] [:indexCount=6;firstIndex=10000;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=6;firstIndex=10000;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=6;firstIndex=1;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=6;firstIndex=1;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [:indexCount=7;firstIndex=0;instanceCount=1] - expected: - if os == "linux" and not debug: FAIL [:indexCount=7;firstIndex=0;instanceCount=10000] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,cmds,index_access:out_of_bounds_zero_sized_index_buffer:*] @@ -29079,8 +29045,6 @@ [cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setScissorRect,xy_rect_contained_in_attachment:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setStencilReference:*] @@ -29207,14 +29171,10 @@ [cts.https.html?q=webgpu:api,validation,encoding,cmds,render,state_tracking:vertex_buffers_do_not_inherit_between_render_passes:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,cmds,render,state_tracking:vertex_buffers_inherit_from_previous_pipeline:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,cmds,setBindGroup:bind_group,device_mismatch:*] @@ -29291,36 +29251,24 @@ [:encoderType="compute%20pass";dynamicOffsets=[\];useU32array=true] [:encoderType="render%20bundle";dynamicOffsets=[0,1024\];useU32array=false] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[0,1024\];useU32array=true] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[0,4294967295\];useU32array=false] [:encoderType="render%20bundle";dynamicOffsets=[0,4294967295\];useU32array=true] [:encoderType="render%20bundle";dynamicOffsets=[0,512\];useU32array=false] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[0,512\];useU32array=true] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[1,2\];useU32array=false] [:encoderType="render%20bundle";dynamicOffsets=[1,2\];useU32array=true] [:encoderType="render%20bundle";dynamicOffsets=[1024,0\];useU32array=false] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[1024,0\];useU32array=true] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[256,0,0\];useU32array=false] @@ -29339,12 +29287,8 @@ [:encoderType="render%20bundle";dynamicOffsets=[4294967295,0\];useU32array=true] [:encoderType="render%20bundle";dynamicOffsets=[512,0\];useU32array=false] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[512,0\];useU32array=true] - expected: - if os == "linux" and not debug: FAIL [:encoderType="render%20bundle";dynamicOffsets=[\];useU32array=false] @@ -30011,22 +29955,14 @@ [:pass0Type="compute";pass1Type="compute"] [:pass0Type="compute";pass1Type="render"] - expected: - if os == "linux" and not debug: FAIL [:pass0Type="render";pass1Type="compute"] - expected: - if os == "linux" and not debug: FAIL [:pass0Type="render";pass1Type="render"] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,encoder_state:pass_end_none:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,encoder_state:pass_end_twice,basic:*] @@ -30035,8 +29971,6 @@ [cts.https.html?q=webgpu:api,validation,encoding,encoder_state:pass_end_twice,render_pass_invalid:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_binding_mismatch:*] @@ -30315,20 +30249,12 @@ [cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:empty_bind_group_layouts_requires_empty_bind_groups,render_pass:*] [:bindGroupLayoutEntryCount=3;renderCommand="draw"] - expected: - if os == "linux" and not debug: FAIL [:bindGroupLayoutEntryCount=3;renderCommand="drawIndexed"] - expected: - if os == "linux" and not debug: FAIL [:bindGroupLayoutEntryCount=3;renderCommand="drawIndexedIndirect"] - expected: - if os == "linux" and not debug: FAIL [:bindGroupLayoutEntryCount=3;renderCommand="drawIndirect"] - expected: - if os == "linux" and not debug: FAIL [:bindGroupLayoutEntryCount=4;renderCommand="draw"] @@ -42971,14 +42897,10 @@ [cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,device_mismatch:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,sample_count:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_or_bundle_and_pipeline,color_count:*] @@ -43102,8 +43024,6 @@ [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,color_depth_mismatch:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,layer_count:*] @@ -43116,8 +43036,6 @@ if os == "linux" and not debug: FAIL [:arrayLayerCount=5;baseArrayLayer=0] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,mip_level_count:*] @@ -43126,8 +43044,6 @@ [:mipLevelCount=1;baseMipLevel=3] [:mipLevelCount=2;baseMipLevel=0] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,one_color_attachment:*] @@ -43140,8 +43056,6 @@ [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,same_size:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,depthSlice,bound_check:*] @@ -43223,20 +43137,14 @@ if os == "linux" and not debug: FAIL [:colorAttachmentsCountVariant={"mult":1,"add":1}] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,non_multisampled:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,sample_count:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:depth_stencil_attachment,depth_clear_value:*] @@ -43323,8 +43231,6 @@ [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:depth_stencil_attachment,sample_counts_mismatch:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:occlusionQuerySet,query_set_type:*] @@ -43339,26 +43245,18 @@ [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,array_layer_count:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,different_format:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,different_size:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,error_state:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,format_supports_resolve:*] @@ -43369,44 +43267,26 @@ [:format="r16float"] [:format="r16sint"] - expected: - if os == "linux" and not debug: FAIL [:format="r16uint"] - expected: - if os == "linux" and not debug: FAIL [:format="r32float"] - expected: - if os == "linux" and not debug: FAIL [:format="r8sint"] - expected: - if os == "linux" and not debug: FAIL [:format="r8uint"] - expected: - if os == "linux" and not debug: FAIL [:format="r8unorm"] [:format="rg16float"] [:format="rg16sint"] - expected: - if os == "linux" and not debug: FAIL [:format="rg16uint"] - expected: - if os == "linux" and not debug: FAIL [:format="rg8sint"] - expected: - if os == "linux" and not debug: FAIL [:format="rg8uint"] - expected: - if os == "linux" and not debug: FAIL [:format="rg8unorm"] @@ -43419,20 +43299,12 @@ [:format="rgba16float"] [:format="rgba16sint"] - expected: - if os == "linux" and not debug: FAIL [:format="rgba16uint"] - expected: - if os == "linux" and not debug: FAIL [:format="rgba8sint"] - expected: - if os == "linux" and not debug: FAIL [:format="rgba8uint"] - expected: - if os == "linux" and not debug: FAIL [:format="rgba8unorm"] @@ -43441,14 +43313,10 @@ [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,mipmap_level_count:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,sample_count:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,single_sample_count:*] @@ -43457,18 +43325,12 @@ [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,usage:*] [:usage=12] - expected: - if os == "linux" and not debug: FAIL [:usage=20] [:usage=3] - expected: - if os == "linux" and not debug: FAIL [:usage=8] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:timestampWrite,query_index:*] @@ -43491,74 +43353,42 @@ [:] [:colorAttachmentFormat="bgra8unorm"] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentFormat="rgba8unorm-srgb"] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentHeight=4] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentSamples=1] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentWidth=4] - expected: - if os == "linux" and not debug: FAIL [:otherAttachmentFormat="bgra8unorm"] [:resolveTargetFormat="bgra8unorm"] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetFormat="rgba8unorm-srgb"] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetHeight=4] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetInvalid=true] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetSamples=4] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetUsage=1] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetViewArrayLayerCount=2] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetViewBaseArrayLayer=1] [:resolveTargetViewBaseArrayLayer=1;resolveTargetViewArrayLayerCount=2] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetViewBaseMipLevel=1;resolveTargetHeight=4;resolveTargetWidth=4] [:resolveTargetViewBaseMipLevel=1;resolveTargetViewMipCount=2;resolveTargetHeight=4;resolveTargetWidth=4] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetViewMipCount=2] - expected: - if os == "linux" and not debug: FAIL [:resolveTargetWidth=4] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pipeline,depth_stencil_state:depthCompare_optional:*] @@ -51733,8 +51563,6 @@ [:usage0="index";usage1="read-only-storage"] [:usage0="index";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="index";usage1="uniform"] @@ -51745,38 +51573,26 @@ [:usage0="read-only-storage";usage1="read-only-storage"] [:usage0="read-only-storage";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="read-only-storage";usage1="uniform"] [:usage0="read-only-storage";usage1="vertex"] [:usage0="storage";usage1="index"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="read-only-storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="storage"] [:usage0="storage";usage1="uniform"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="vertex"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="index"] [:usage0="uniform";usage1="read-only-storage"] [:usage0="uniform";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="uniform"] @@ -51787,8 +51603,6 @@ [:usage0="vertex";usage1="read-only-storage"] [:usage0="vertex";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="vertex";usage1="uniform"] @@ -51805,8 +51619,6 @@ [:usage0="index";usage1="read-only-storage"] [:usage0="index";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="index";usage1="uniform"] @@ -51817,8 +51629,6 @@ [:usage0="indexedIndirect";usage1="read-only-storage"] [:usage0="indexedIndirect";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="indexedIndirect";usage1="uniform"] @@ -51829,8 +51639,6 @@ [:usage0="indirect";usage1="read-only-storage"] [:usage0="indirect";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="indirect";usage1="uniform"] @@ -51845,36 +51653,22 @@ [:usage0="read-only-storage";usage1="read-only-storage"] [:usage0="read-only-storage";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="read-only-storage";usage1="uniform"] [:usage0="read-only-storage";usage1="vertex"] [:usage0="storage";usage1="index"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="indexedIndirect"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="indirect"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="read-only-storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="uniform"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="vertex"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="index"] @@ -51885,8 +51679,6 @@ [:usage0="uniform";usage1="read-only-storage"] [:usage0="uniform";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="uniform"] @@ -51901,8 +51693,6 @@ [:usage0="vertex";usage1="read-only-storage"] [:usage0="vertex";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="vertex";usage1="uniform"] @@ -51919,8 +51709,6 @@ [:usage0="index";usage1="read-only-storage"] [:usage0="index";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="index";usage1="uniform"] @@ -51935,8 +51723,6 @@ [:usage0="indexedIndirect";usage1="read-only-storage"] [:usage0="indexedIndirect";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="indexedIndirect";usage1="uniform"] @@ -51951,8 +51737,6 @@ [:usage0="indirect";usage1="read-only-storage"] [:usage0="indirect";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="indirect";usage1="uniform"] @@ -51967,38 +51751,24 @@ [:usage0="read-only-storage";usage1="read-only-storage"] [:usage0="read-only-storage";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="read-only-storage";usage1="uniform"] [:usage0="read-only-storage";usage1="vertex"] [:usage0="storage";usage1="index"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="indexedIndirect"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="indirect"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="read-only-storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="storage"] [:usage0="storage";usage1="uniform"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="vertex"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="index"] @@ -52009,8 +51779,6 @@ [:usage0="uniform";usage1="read-only-storage"] [:usage0="uniform";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="uniform"] @@ -52025,8 +51793,6 @@ [:usage0="vertex";usage1="read-only-storage"] [:usage0="vertex";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="vertex";usage1="uniform"] @@ -52165,8 +51931,6 @@ [:usage0="index";usage1="read-only-storage"] [:usage0="index";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="index";usage1="uniform"] @@ -52181,38 +51945,24 @@ [:usage0="read-only-storage";usage1="read-only-storage"] [:usage0="read-only-storage";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="read-only-storage";usage1="uniform"] [:usage0="read-only-storage";usage1="vertex"] [:usage0="storage";usage1="index"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="indexedIndirect"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="indirect"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="read-only-storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="storage"] [:usage0="storage";usage1="uniform"] - expected: - if os == "linux" and not debug: FAIL [:usage0="storage";usage1="vertex"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="index"] @@ -52223,8 +51973,6 @@ [:usage0="uniform";usage1="read-only-storage"] [:usage0="uniform";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="uniform";usage1="uniform"] @@ -52239,8 +51987,6 @@ [:usage0="vertex";usage1="read-only-storage"] [:usage0="vertex";usage1="storage"] - expected: - if os == "linux" and not debug: FAIL [:usage0="vertex";usage1="uniform"] @@ -52251,8 +51997,6 @@ [:type0="multisampled-texture";type1="multisampled-texture"] [:type0="multisampled-texture";type1="render-target"] - expected: - if os == "linux" and not debug: FAIL [:type0="readonly-storage-texture";type1="readonly-storage-texture"] expected: @@ -52295,8 +52039,6 @@ if os == "linux" and not debug: FAIL [:type0="render-target";type1="multisampled-texture"] - expected: - if os == "linux" and not debug: FAIL [:type0="render-target";type1="readonly-storage-texture"] expected: @@ -52307,12 +52049,8 @@ if os == "linux" and not debug: FAIL [:type0="render-target";type1="sampled-texture"] - expected: - if os == "linux" and not debug: FAIL [:type0="render-target";type1="writeonly-storage-texture"] - expected: - if os == "linux" and not debug: FAIL [:type0="sampled-texture";type1="readonly-storage-texture"] expected: @@ -52323,14 +52061,10 @@ if os == "linux" and not debug: FAIL [:type0="sampled-texture";type1="render-target"] - expected: - if os == "linux" and not debug: FAIL [:type0="sampled-texture";type1="sampled-texture"] [:type0="sampled-texture";type1="writeonly-storage-texture"] - expected: - if os == "linux" and not debug: FAIL [:type0="writeonly-storage-texture";type1="readonly-storage-texture"] expected: @@ -52341,12 +52075,8 @@ if os == "linux" and not debug: FAIL [:type0="writeonly-storage-texture";type1="render-target"] - expected: - if os == "linux" and not debug: FAIL [:type0="writeonly-storage-texture";type1="sampled-texture"] - expected: - if os == "linux" and not debug: FAIL [:type0="writeonly-storage-texture";type1="writeonly-storage-texture"] @@ -52361,8 +52091,6 @@ if os == "linux" and not debug: FAIL [:compute=false;callDrawOrDispatch=false;entry={"storageTexture":{"access":"write-only","format":"r32float"}}] - expected: - if os == "linux" and not debug: FAIL [:compute=false;callDrawOrDispatch=false;entry={"texture":{"sampleType":"unfilterable-float"}}] @@ -52375,8 +52103,6 @@ if os == "linux" and not debug: FAIL [:compute=false;callDrawOrDispatch=true;entry={"storageTexture":{"access":"write-only","format":"r32float"}}] - expected: - if os == "linux" and not debug: FAIL [:compute=false;callDrawOrDispatch=true;entry={"texture":{"sampleType":"unfilterable-float"}}] @@ -52501,16 +52227,10 @@ if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=false;binding1InBundle=false;format="depth24plus"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=false;binding1InBundle=false;format="depth24plus-stencil8"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=false;binding1InBundle=false;format="depth32float"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=false;binding1InBundle=false;format="depth32float-stencil8"] expected: @@ -52543,16 +52263,10 @@ if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=true;binding1InBundle=false;format="depth24plus"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=true;binding1InBundle=false;format="depth24plus-stencil8"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=true;binding1InBundle=false;format="depth32float"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;binding0InBundle=true;binding1InBundle=false;format="depth32float-stencil8"] expected: @@ -52637,22 +52351,16 @@ if os == "linux" and not debug: FAIL [:compute=false;type0="sampled-texture";type1="render-target"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;type0="sampled-texture";type1="sampled-texture"] [:compute=false;type0="sampled-texture";type1="writeonly-storage-texture"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;type0="writeonly-storage-texture";type1="readwrite-storage-texture"] expected: if os == "linux" and not debug: FAIL [:compute=false;type0="writeonly-storage-texture";type1="render-target"] - expected: - if os == "linux" and not debug: FAIL [:compute=false;type0="writeonly-storage-texture";type1="writeonly-storage-texture"] @@ -53207,260 +52915,132 @@ [:compute=false;readOnlyUsage="sampled-texture";writableUsage="readwrite-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=false;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=false;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="common";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="after";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="before";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="middle";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=false] - expected: - if os == "linux" and not debug: FAIL [:compute=false;readOnlyUsage="sampled-texture";writableUsage="writeonly-storage-texture";useBindGroup0=true;useBindGroup1=true;setBindGroupsOrder="reversed";setPipeline="none";callDrawOrDispatch=true] - expected: - if os == "linux" and not debug: FAIL [:compute=true;readOnlyUsage="readonly-storage-texture";writableUsage="readwrite-storage-texture";useBindGroup0=false;useBindGroup1=false;setBindGroupsOrder="common";setPipeline="after";callDrawOrDispatch=false] @@ -54123,14 +53703,10 @@ [:colorAttachmentLevel=0;colorAttachmentLayer=0;bgLevel=0;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=0;colorAttachmentLayer=0;bgLevel=0;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=0;colorAttachmentLayer=0;bgLevel=0;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=false] [:colorAttachmentLevel=0;colorAttachmentLayer=0;bgLevel=0;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=0;colorAttachmentLayer=0;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="readonly-storage-texture";inSamePass=false] expected: @@ -54307,14 +53883,10 @@ [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=false] [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="readonly-storage-texture";inSamePass=false] expected: @@ -54335,14 +53907,10 @@ [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="writeonly-storage-texture";inSamePass=false] [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=0;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="writeonly-storage-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=0;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="readonly-storage-texture";inSamePass=false] expected: @@ -54519,14 +54087,10 @@ [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=1;bgLayer=0;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="readonly-storage-texture";inSamePass=false] expected: @@ -54579,8 +54143,6 @@ [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=2;bgLayer=0;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=2;bgLayer=0;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=0;bgLevel=1;bgLevelCount=2;bgLayer=1;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] @@ -54705,14 +54267,10 @@ [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=1;bgUsage="writeonly-storage-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="readonly-storage-texture";inSamePass=false] expected: @@ -54733,14 +54291,10 @@ [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="writeonly-storage-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=1;bgLayer=1;bgLayerCount=2;bgUsage="writeonly-storage-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=2;bgLayer=0;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] @@ -54749,14 +54303,10 @@ [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=2;bgLayer=1;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=2;bgLayer=1;bgLayerCount=1;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=2;bgLayer=1;bgLayerCount=2;bgUsage="sampled-texture";inSamePass=false] [:colorAttachmentLevel=1;colorAttachmentLayer=1;bgLevel=1;bgLevelCount=2;bgLayer=1;bgLayerCount=2;bgUsage="sampled-texture";inSamePass=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_common:subresources,color_attachments:*] @@ -56311,8 +55861,6 @@ [:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="sampled-texture";view2Binding="sampled-texture"] [:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="sampled-texture";view2Binding="writeonly-storage-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="readonly-storage-texture"] expected: @@ -56323,8 +55871,6 @@ if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="sampled-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=false;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="writeonly-storage-texture"] @@ -56371,8 +55917,6 @@ [:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="sampled-texture";view2Binding="sampled-texture"] [:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="sampled-texture";view2Binding="writeonly-storage-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="writeonly-storage-texture";view2Binding="readonly-storage-texture"] expected: @@ -56383,8 +55927,6 @@ if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="writeonly-storage-texture";view2Binding="sampled-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=false;baseLayer2=1;view1Binding="writeonly-storage-texture";view2Binding="writeonly-storage-texture"] @@ -56431,8 +55973,6 @@ [:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="sampled-texture";view2Binding="sampled-texture"] [:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="sampled-texture";view2Binding="writeonly-storage-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="readonly-storage-texture"] expected: @@ -56443,8 +55983,6 @@ if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="sampled-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=true;baseLayer2=0;view1Binding="writeonly-storage-texture";view2Binding="writeonly-storage-texture"] @@ -56491,8 +56029,6 @@ [:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="sampled-texture";view2Binding="sampled-texture"] [:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="sampled-texture";view2Binding="writeonly-storage-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="writeonly-storage-texture";view2Binding="readonly-storage-texture"] expected: @@ -56503,24 +56039,18 @@ if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="writeonly-storage-texture";view2Binding="sampled-texture"] - expected: - if os == "linux" and not debug: FAIL [:useDifferentTextureAsTexture2=true;baseLayer2=1;view1Binding="writeonly-storage-texture";view2Binding="writeonly-storage-texture"] [cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,set_bind_group_on_same_index_depth_stencil_texture:*] [:bindAspect="depth-only";depthStencilReadOnly=false] - expected: - if os == "linux" and not debug: FAIL [:bindAspect="depth-only";depthStencilReadOnly=true] expected: if os == "linux" and not debug: FAIL [:bindAspect="stencil-only";depthStencilReadOnly=false] - expected: - if os == "linux" and not debug: FAIL [:bindAspect="stencil-only";depthStencilReadOnly=true] expected: @@ -63878,8 +63408,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,af_comparison:equals:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -63946,8 +63474,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,af_division:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -64028,8 +63554,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,af_matrix_subtraction:matrix:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] expected: if os == "linux" and not debug: FAIL @@ -64074,8 +63598,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,af_multiplication:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -64118,8 +63640,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,af_remainder:scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -64154,8 +63674,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,af_remainder:vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -64176,8 +63694,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,af_subtraction:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -65362,8 +64878,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_addition:vector_scalar_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] [:inputSource="const";dim=3] @@ -65458,8 +64972,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:greater_than:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -65494,8 +65006,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:less_equals:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -65564,8 +65074,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:not_equals:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -65670,8 +65178,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_division:vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize=2] [:inputSource="const";vectorize=3] @@ -65698,8 +65204,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_division:vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] [:inputSource="const";dim=3] @@ -65726,8 +65230,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_division:vector_scalar_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] [:inputSource="const";dim=3] @@ -66194,8 +65696,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_matrix_scalar_multiplication:matrix_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] [:inputSource="const";cols=2;rows=3] @@ -66418,8 +65918,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_matrix_subtraction:matrix:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] [:inputSource="const";cols=2;rows=3] @@ -66568,8 +66066,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_matrix_vector_multiplication:matrix_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] [:inputSource="const";cols=2;rows=3] @@ -66644,8 +66140,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_matrix_vector_multiplication:vector_matrix:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] [:inputSource="const";cols=2;rows=3] @@ -66756,8 +66250,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_multiplication:scalar_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -66818,8 +66310,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_multiplication:vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize=2] [:inputSource="const";vectorize=3] @@ -66942,8 +66432,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_remainder:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] [:inputSource="const";dim=3] @@ -66996,8 +66484,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_remainder:vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] [:inputSource="const";dim=3] @@ -67094,8 +66580,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_subtraction:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] [:inputSource="const";dim=3] @@ -67148,8 +66632,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f16_subtraction:vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] [:inputSource="const";dim=3] @@ -67202,8 +66684,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_addition:scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -67258,8 +66738,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_addition:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -67388,8 +66866,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:equals:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -67432,8 +66908,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:greater_equals:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -67644,8 +67118,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -67658,8 +67130,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:scalar_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -67702,8 +67172,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -67736,8 +67204,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize=2] expected: if os == "linux" and not debug: FAIL @@ -67770,8 +67236,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -67928,8 +67392,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_addition:matrix_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] expected: if os == "linux" and not debug: FAIL @@ -68022,8 +67484,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_matrix_multiplication:matrix_matrix:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";common_dim=2;x_rows=2;y_cols=2] expected: if os == "linux" and not debug: FAIL @@ -68756,8 +68216,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_subtraction:matrix_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] expected: if os == "linux" and not debug: FAIL @@ -68942,8 +68400,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_vector_multiplication:vector_matrix:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] expected: if os == "linux" and not debug: [FAIL, TIMEOUT] @@ -69036,8 +68492,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_vector_multiplication:vector_matrix_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -69124,8 +68578,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_multiplication:scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -69158,8 +68610,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_multiplication:vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize=2] expected: if os == "linux" and not debug: FAIL @@ -69374,8 +68824,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_remainder:vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -69590,8 +69038,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,f32_subtraction:vector_scalar_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -69708,8 +69154,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_rhs=2] expected: if os == "linux" and not debug: FAIL @@ -69742,8 +69186,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_lhs=2] expected: if os == "linux" and not debug: FAIL @@ -69874,8 +69316,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -69992,8 +69432,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_lhs=2] expected: if os == "linux" and not debug: [FAIL, TIMEOUT] @@ -70094,8 +69532,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -70138,8 +69574,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -70182,8 +69616,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_rhs=2] expected: if os == "linux" and not debug: FAIL @@ -70216,8 +69648,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_lhs=2] expected: if os == "linux" and not debug: FAIL @@ -70250,8 +69680,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_lhs=2] expected: if os == "linux" and not debug: FAIL @@ -70284,8 +69712,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -70352,8 +69778,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_compound:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -70470,8 +69894,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_lhs=2] expected: if os == "linux" and not debug: FAIL @@ -70656,8 +70078,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize_rhs=2] expected: if os == "linux" and not debug: [FAIL, TIMEOUT] @@ -70922,8 +70342,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,i32_comparison:less_than:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -71008,8 +70426,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:addition:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -71472,8 +70888,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -72200,8 +71614,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:greater_than:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -72244,8 +71656,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:less_equals:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: [PASS, FAIL] @@ -72288,8 +71698,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:less_than:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -72620,8 +72028,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acos:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -72698,8 +72104,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acosh:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -73578,8 +72982,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,asin:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -73800,8 +73202,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan2:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -73844,8 +73244,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -73880,8 +73278,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -73958,8 +73354,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atanh:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -79114,8 +78508,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,ceil:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -79278,8 +78670,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -79508,8 +78898,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cos:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -79552,8 +78940,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cosh:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -79922,8 +79308,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cross:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -79934,8 +79318,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cross:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -80094,8 +79476,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,determinant:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";dim=2] expected: if os == "linux" and not debug: FAIL @@ -80172,8 +79552,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f16_vec2:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -80194,8 +79572,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f16_vec4:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -80206,8 +79582,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -80220,8 +79594,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f32_vec2:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: [FAIL, TIMEOUT] @@ -80304,8 +79676,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:abstract_int:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -80326,8 +79696,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:f16_vec3:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -80384,8 +79752,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:i32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -80396,8 +79762,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:u32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -80612,8 +79976,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp2:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -80682,8 +80044,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp2:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -81232,8 +80592,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,floor:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -81276,8 +80634,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fma:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -81842,8 +81198,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,inversesqrt:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -81878,8 +81232,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,inversesqrt:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -82152,8 +81504,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,length:f32_vec2:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: [PASS, FAIL] @@ -82258,8 +81608,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log2:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -82336,8 +81684,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -82372,8 +81718,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: [FAIL, TIMEOUT] @@ -82416,8 +81760,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -82548,8 +81890,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:i32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -82634,8 +81974,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -82688,8 +82026,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -82768,8 +82104,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:i32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -82854,8 +82188,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:abstract_float_matching:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -82886,8 +82218,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:abstract_float_nonmatching_vec4:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: [FAIL, TIMEOUT] @@ -82958,8 +82288,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:f32_matching:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -83002,8 +82330,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:f32_nonmatching_vec2:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83040,8 +82366,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:abstract_fract:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83054,16 +82378,12 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:abstract_vec2_whole:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:abstract_vec3_fract:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83088,16 +82408,12 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:abstract_whole:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_fract:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83108,8 +82424,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec2_fract:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83120,8 +82434,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec2_whole:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83132,8 +82444,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec3_fract:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83154,8 +82464,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec4_fract:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83166,8 +82474,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec4_whole:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83178,8 +82484,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_whole:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83190,8 +82494,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_fract:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83264,8 +82566,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_vec4_whole:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83324,8 +82624,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,normalize:f16_vec2:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83380,8 +82678,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,normalize:f32_vec4:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83394,8 +82690,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pack2x16float:pack:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83550,8 +82844,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pow:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -83696,8 +82988,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,radians:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -83750,8 +83040,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,radians:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -83840,8 +83128,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reflect:f16_vec4:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] [:inputSource="storage_r"] @@ -83876,8 +83162,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reflect:f32_vec4:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -83890,8 +83174,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,refract:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize=2] [:inputSource="const";vectorize=3] @@ -83948,8 +83230,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,refract:f32_vec2:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -84088,8 +83368,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,round:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -84166,8 +83444,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,saturate:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -84724,8 +84000,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -84878,8 +84152,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sin:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -84956,8 +84228,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sinh:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -84992,8 +84262,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sinh:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -85028,8 +84296,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sinh:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -85484,8 +84750,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tan:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -85596,8 +84860,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tanh:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -86634,8 +85896,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,transpose:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";cols=2;rows=2] [:inputSource="const";cols=2;rows=3] @@ -86802,8 +86062,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,trunc:abstract_float:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -86856,8 +86114,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,trunc:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -86900,8 +86156,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,call,builtin,unpack2x16float:unpack:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] expected: if os == "linux" and not debug: FAIL @@ -87240,8 +86494,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,af_assignment:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const"] @@ -87424,8 +86676,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,bool_conversion:u32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -87828,8 +87078,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,f16_conversion:u32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -88056,8 +87304,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,f32_conversion:f32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -88402,8 +87648,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,i32_conversion:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -88504,8 +87748,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,i32_conversion:i32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL @@ -89242,8 +88484,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:f16:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] [:inputSource="const";vectorize=2] @@ -89386,8 +88626,6 @@ [cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:u32:*] - expected: - if os == "linux" and not debug: OK [:inputSource="const";vectorize="_undef_"] expected: if os == "linux" and not debug: FAIL |