aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock18
-rw-r--r--Cargo.toml4
-rw-r--r--components/script/dom/gpucommandencoder.rs153
-rw-r--r--components/script/dom/gpucomputepassencoder.rs5
-rw-r--r--components/script/dom/gpurenderpassencoder.rs248
-rw-r--r--components/script/dom/identityhub.rs12
-rw-r--r--components/script/dom/webidls/WebGPU.webidl2
-rw-r--r--components/script/script_thread.rs2
-rw-r--r--components/webgpu/dom_messages.rs23
-rw-r--r--components/webgpu/identity.rs9
-rw-r--r--components/webgpu/lib.rs2
-rw-r--r--components/webgpu/render_commands.rs151
-rw-r--r--components/webgpu/script_messages.rs6
-rw-r--r--components/webgpu/wgpu_thread.rs172
-rw-r--r--tests/wpt/webgpu/meta/webgpu/cts.https.html.ini778
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