diff --git a/components/script/dom/gpuconvert.rs b/components/script/dom/gpuconvert.rs index ca580f613fc..10fe9b6ded3 100644 --- a/components/script/dom/gpuconvert.rs +++ b/components/script/dom/gpuconvert.rs @@ -6,8 +6,10 @@ use std::borrow::Cow; use std::num::NonZeroU64; use webgpu::wgc::command as wgpu_com; +use webgpu::wgc::pipeline::ProgrammableStageDescriptor; use webgpu::wgt::{self, AstcBlock, AstcChannel}; +use super::bindings::codegen::Bindings::WebGPUBinding::GPUProgrammableStage; use super::bindings::error::Error; use crate::dom::bindings::codegen::Bindings::WebGPUBinding::{ GPUAddressMode, GPUBindGroupLayoutEntry, GPUBlendComponent, GPUBlendFactor, GPUBlendOperation, @@ -473,7 +475,7 @@ pub fn convert_ic_texture( }) } -pub fn convert_label(parent: &GPUObjectDescriptorBase) -> Option> { +pub fn convert_label<'a>(parent: &GPUObjectDescriptorBase) -> Option> { if parent.label.is_empty() { None } else { @@ -579,3 +581,23 @@ pub fn convert_color(color: &GPUColor) -> Fallible { }), } } + +impl<'a> From<&GPUProgrammableStage> for ProgrammableStageDescriptor<'a> { + fn from(stage: &GPUProgrammableStage) -> Self { + Self { + module: stage.module.id().0, + entry_point: stage + .entryPoint + .as_ref() + .map(|ep| Cow::Owned(ep.to_string())), + constants: Cow::Owned( + stage + .constants + .as_ref() + .map(|records| records.iter().map(|(k, v)| (k.0.clone(), **v)).collect()) + .unwrap_or_default(), + ), + zero_initialize_workgroup_memory: true, + } + } +} diff --git a/components/script/dom/gpudevice.rs b/components/script/dom/gpudevice.rs index a07a00d65c7..1d512794a10 100644 --- a/components/script/dom/gpudevice.rs +++ b/components/script/dom/gpudevice.rs @@ -6,7 +6,6 @@ use std::borrow::Cow; use std::cell::Cell; -use std::collections::HashMap; use std::rc::Rc; use dom_struct::dom_struct; @@ -246,12 +245,12 @@ impl GPUDevice { } } - fn parse_render_pipeline( + fn parse_render_pipeline<'a>( &self, descriptor: &GPURenderPipelineDescriptor, ) -> Fallible<( Option<(PipelineLayoutId, Vec)>, - RenderPipelineDescriptor<'static>, + RenderPipelineDescriptor<'a>, )> { let (layout, implicit_ids, _) = self.get_pipeline_layout_data(&descriptor.parent.layout); @@ -260,17 +259,7 @@ impl GPUDevice { layout, cache: None, vertex: wgpu_pipe::VertexState { - stage: wgpu_pipe::ProgrammableStageDescriptor { - module: descriptor.vertex.parent.module.id().0, - entry_point: descriptor - .vertex - .parent - .entryPoint - .as_ref() - .map(|ep| Cow::Owned(ep.to_string())), - constants: Cow::Owned(HashMap::new()), - zero_initialize_workgroup_memory: true, - }, + stage: (&descriptor.vertex.parent).into(), buffers: Cow::Owned( descriptor .vertex @@ -302,16 +291,7 @@ impl GPUDevice { .as_ref() .map(|stage| -> Fallible { Ok(wgpu_pipe::FragmentState { - stage: wgpu_pipe::ProgrammableStageDescriptor { - module: stage.parent.module.id().0, - entry_point: stage - .parent - .entryPoint - .as_ref() - .map(|ep| Cow::Owned(ep.to_string())), - constants: Cow::Owned(HashMap::new()), - zero_initialize_workgroup_memory: true, - }, + stage: (&stage.parent).into(), targets: Cow::Owned( stage .targets @@ -670,16 +650,7 @@ impl GPUDeviceMethods for GPUDevice { let desc = wgpu_pipe::ComputePipelineDescriptor { label: convert_label(&descriptor.parent.parent), layout, - stage: wgpu_pipe::ProgrammableStageDescriptor { - module: descriptor.compute.module.id().0, - entry_point: descriptor - .compute - .entryPoint - .as_ref() - .map(|ep| Cow::Owned(ep.to_string())), - constants: Cow::Owned(HashMap::new()), - zero_initialize_workgroup_memory: true, - }, + stage: (&descriptor.compute).into(), cache: None, }; @@ -721,16 +692,7 @@ impl GPUDeviceMethods for GPUDevice { let desc = wgpu_pipe::ComputePipelineDescriptor { label: convert_label(&descriptor.parent.parent), layout, - stage: wgpu_pipe::ProgrammableStageDescriptor { - module: descriptor.compute.module.id().0, - entry_point: descriptor - .compute - .entryPoint - .as_ref() - .map(|ep| Cow::Owned(ep.to_string())), - constants: Cow::Owned(HashMap::new()), - zero_initialize_workgroup_memory: true, - }, + stage: (&descriptor.compute).into(), cache: None, }; diff --git a/components/script/dom/webidls/WebGPU.webidl b/components/script/dom/webidls/WebGPU.webidl index 2de46855b19..b3a9c1841b6 100644 --- a/components/script/dom/webidls/WebGPU.webidl +++ b/components/script/dom/webidls/WebGPU.webidl @@ -625,8 +625,11 @@ interface mixin GPUPipelineBase { dictionary GPUProgrammableStage { required GPUShaderModule module; USVString entryPoint; + record constants; }; +typedef double GPUPipelineConstantValue; // May represent WGSL's bool, f32, i32, u32, and f16 if enabled. + [Exposed=(Window, DedicatedWorker), Serializable, Pref="dom.webgpu.enabled"] interface GPUComputePipeline { }; diff --git a/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini b/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini index cbbfcfc5d1c..044d782a0c2 100644 --- a/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini +++ b/tests/wpt/webgpu/meta/webgpu/cts.https.html.ini @@ -2252,18 +2252,12 @@ [cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:basic:*] [:isAsync=false] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:computed:*] [:] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:multi_entry_points:*] @@ -2278,32 +2272,20 @@ [cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:numeric_id:*] [:isAsync=false] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:precision:*] [:isAsync=false] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:shared_shader_module:*] [:isAsync=false] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:workgroup_size:*] @@ -5107,12 +5089,8 @@ [cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:basic:*] [:isAsync=false] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:multi_entry_points:*] @@ -5127,22 +5105,14 @@ [cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:precision:*] [:isAsync=false] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:shared_shader_module:*] [:isAsync=false] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,operation,render_pipeline,pipeline_output_targets:color,attachments:*] @@ -18270,24 +18240,16 @@ [cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,uninitialized:*] [:isAsync=false;constants={"c0":0,"c2":0,"c5":0,"c8":0,"c1":0}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"c0":0,"c2":0,"c5":0,"c8":0}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"c0":0,"c2":0,"c8":0}] [:isAsync=false;constants={}] [:isAsync=true;constants={"c0":0,"c2":0,"c5":0,"c8":0,"c1":0}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"c0":0,"c2":0,"c5":0,"c8":0}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"c0":0,"c2":0,"c8":0}] @@ -18296,30 +18258,18 @@ [cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,value,type_error:*] [:isAsync=false;constants={"cf":"_nan_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"cf":"_neginfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"cf":"_posinfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"cf":1}] [:isAsync=true;constants={"cf":"_nan_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"cf":"_neginfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"cf":"_posinfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"cf":1}] @@ -18366,38 +18316,26 @@ [:isAsync=false;constants={"cf":-3.4028234663852886e%2B38}] [:isAsync=false;constants={"cf":-3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"cf":3.4028234663852886e%2B38}] [:isAsync=false;constants={"cf":3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"ci":-2147483648}] [:isAsync=false;constants={"ci":-2147483649}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"ci":2147483647}] [:isAsync=false;constants={"ci":2147483648}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"cu":-1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;constants={"cu":0}] [:isAsync=false;constants={"cu":4294967295}] [:isAsync=false;constants={"cu":4294967296}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"cb":-2147483649}] @@ -18406,38 +18344,26 @@ [:isAsync=true;constants={"cf":-3.4028234663852886e%2B38}] [:isAsync=true;constants={"cf":-3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"cf":3.4028234663852886e%2B38}] [:isAsync=true;constants={"cf":3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"ci":-2147483648}] [:isAsync=true;constants={"ci":-2147483649}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"ci":2147483647}] [:isAsync=true;constants={"ci":2147483648}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"cu":-1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;constants={"cu":0}] [:isAsync=true;constants={"cu":4294967295}] [:isAsync=true;constants={"cu":4294967296}] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,workgroup_size,limits,workgroup_storage_size:*] @@ -52742,24 +52668,16 @@ [cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:uninitialized,fragment:*] [:isAsync=false;fragmentConstants={"r":1,"b":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"r":1,"g":1,"b":1,"a":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"r":1,"g":1}] [:isAsync=false;fragmentConstants={}] [:isAsync=true;fragmentConstants={"r":1,"b":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"r":1,"g":1,"b":1,"a":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"r":1,"g":1}] @@ -52768,86 +52686,54 @@ [cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:uninitialized,vertex:*] [:isAsync=false;vertexConstants={"x":1,"y":1,"z":1,"w":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"x":1,"y":1}] [:isAsync=false;vertexConstants={"x":1,"z":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={}] [:isAsync=true;vertexConstants={"x":1,"y":1,"z":1,"w":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"x":1,"y":1}] [:isAsync=true;vertexConstants={"x":1,"z":1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={}] [cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,type_error,fragment:*] [:isAsync=false;fragmentConstants={"cf":"_nan_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"cf":"_neginfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"cf":"_posinfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"cf":1}] [:isAsync=true;fragmentConstants={"cf":"_nan_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"cf":"_neginfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"cf":"_posinfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"cf":1}] [cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,type_error,vertex:*] [:isAsync=false;vertexConstants={"cf":"_nan_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"cf":"_neginfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"cf":"_posinfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"cf":1}] [:isAsync=true;vertexConstants={"cf":"_nan_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"cf":"_neginfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"cf":"_posinfinity_"}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"cf":1}] @@ -52928,38 +52814,26 @@ [:isAsync=false;fragmentConstants={"cf":-3.4028234663852886e%2B38}] [:isAsync=false;fragmentConstants={"cf":-3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"cf":3.4028234663852886e%2B38}] [:isAsync=false;fragmentConstants={"cf":3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"ci":-2147483648}] [:isAsync=false;fragmentConstants={"ci":-2147483649}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"ci":2147483647}] [:isAsync=false;fragmentConstants={"ci":2147483648}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"cu":-1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;fragmentConstants={"cu":0}] [:isAsync=false;fragmentConstants={"cu":4294967295}] [:isAsync=false;fragmentConstants={"cu":4294967296}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"cb":-2147483649}] @@ -52968,38 +52842,26 @@ [:isAsync=true;fragmentConstants={"cf":-3.4028234663852886e%2B38}] [:isAsync=true;fragmentConstants={"cf":-3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"cf":3.4028234663852886e%2B38}] [:isAsync=true;fragmentConstants={"cf":3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"ci":-2147483648}] [:isAsync=true;fragmentConstants={"ci":-2147483649}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"ci":2147483647}] [:isAsync=true;fragmentConstants={"ci":2147483648}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"cu":-1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;fragmentConstants={"cu":0}] [:isAsync=true;fragmentConstants={"cu":4294967295}] [:isAsync=true;fragmentConstants={"cu":4294967296}] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,validation_error,vertex:*] @@ -53010,38 +52872,26 @@ [:isAsync=false;vertexConstants={"cf":-3.4028234663852886e%2B38}] [:isAsync=false;vertexConstants={"cf":-3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"cf":3.4028234663852886e%2B38}] [:isAsync=false;vertexConstants={"cf":3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"ci":-2147483648}] [:isAsync=false;vertexConstants={"ci":-2147483649}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"ci":2147483647}] [:isAsync=false;vertexConstants={"ci":2147483648}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"cu":-1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=false;vertexConstants={"cu":0}] [:isAsync=false;vertexConstants={"cu":4294967295}] [:isAsync=false;vertexConstants={"cu":4294967296}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"cb":-2147483649}] @@ -53050,38 +52900,26 @@ [:isAsync=true;vertexConstants={"cf":-3.4028234663852886e%2B38}] [:isAsync=true;vertexConstants={"cf":-3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"cf":3.4028234663852886e%2B38}] [:isAsync=true;vertexConstants={"cf":3.4028235677973366e%2B38}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"ci":-2147483648}] [:isAsync=true;vertexConstants={"ci":-2147483649}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"ci":2147483647}] [:isAsync=true;vertexConstants={"ci":2147483648}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"cu":-1}] - expected: - if os == "linux" and not debug: FAIL [:isAsync=true;vertexConstants={"cu":0}] [:isAsync=true;vertexConstants={"cu":4294967295}] [:isAsync=true;vertexConstants={"cu":4294967296}] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:api,validation,render_pipeline,primitive_state:strip_index_format:*] @@ -122385,8 +122223,6 @@ if os == "linux" and not debug: FAIL [:type="f32";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="f32";lowStage="override";highStage="constant"] expected: @@ -122397,20 +122233,12 @@ if os == "linux" and not debug: FAIL [:type="f32";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="f32";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="f32";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="f32";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="i32";lowStage="constant";highStage="constant"] expected: @@ -122421,8 +122249,6 @@ if os == "linux" and not debug: FAIL [:type="i32";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="i32";lowStage="override";highStage="constant"] expected: @@ -122433,20 +122259,12 @@ if os == "linux" and not debug: FAIL [:type="i32";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="i32";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="i32";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="i32";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="u32";lowStage="constant";highStage="constant"] expected: @@ -122457,8 +122275,6 @@ if os == "linux" and not debug: FAIL [:type="u32";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="u32";lowStage="override";highStage="constant"] expected: @@ -122469,20 +122285,12 @@ if os == "linux" and not debug: FAIL [:type="u32";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="u32";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="u32";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="u32";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cf16%3E";lowStage="constant";highStage="constant"] @@ -122511,8 +122319,6 @@ if os == "linux" and not debug: FAIL [:type="vec2%3Cf32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cf32%3E";lowStage="override";highStage="constant"] expected: @@ -122523,20 +122329,12 @@ if os == "linux" and not debug: FAIL [:type="vec2%3Cf32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cf32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cf32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cf32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Ci32%3E";lowStage="constant";highStage="constant"] expected: @@ -122547,8 +122345,6 @@ if os == "linux" and not debug: FAIL [:type="vec2%3Ci32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Ci32%3E";lowStage="override";highStage="constant"] expected: @@ -122559,20 +122355,12 @@ if os == "linux" and not debug: FAIL [:type="vec2%3Ci32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Ci32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Ci32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Ci32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cu32%3E";lowStage="constant";highStage="constant"] expected: @@ -122583,8 +122371,6 @@ if os == "linux" and not debug: FAIL [:type="vec2%3Cu32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cu32%3E";lowStage="override";highStage="constant"] expected: @@ -122595,20 +122381,12 @@ if os == "linux" and not debug: FAIL [:type="vec2%3Cu32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cu32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cu32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec2%3Cu32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cf16%3E";lowStage="constant";highStage="constant"] @@ -122637,8 +122415,6 @@ if os == "linux" and not debug: FAIL [:type="vec3%3Cf32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cf32%3E";lowStage="override";highStage="constant"] expected: @@ -122649,20 +122425,12 @@ if os == "linux" and not debug: FAIL [:type="vec3%3Cf32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cf32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cf32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cf32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Ci32%3E";lowStage="constant";highStage="constant"] expected: @@ -122673,8 +122441,6 @@ if os == "linux" and not debug: FAIL [:type="vec3%3Ci32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Ci32%3E";lowStage="override";highStage="constant"] expected: @@ -122685,20 +122451,12 @@ if os == "linux" and not debug: FAIL [:type="vec3%3Ci32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Ci32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Ci32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Ci32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cu32%3E";lowStage="constant";highStage="constant"] expected: @@ -122709,8 +122467,6 @@ if os == "linux" and not debug: FAIL [:type="vec3%3Cu32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cu32%3E";lowStage="override";highStage="constant"] expected: @@ -122721,20 +122477,12 @@ if os == "linux" and not debug: FAIL [:type="vec3%3Cu32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cu32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cu32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec3%3Cu32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cf16%3E";lowStage="constant";highStage="constant"] @@ -122763,8 +122511,6 @@ if os == "linux" and not debug: FAIL [:type="vec4%3Cf32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cf32%3E";lowStage="override";highStage="constant"] expected: @@ -122775,20 +122521,12 @@ if os == "linux" and not debug: FAIL [:type="vec4%3Cf32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cf32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cf32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cf32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Ci32%3E";lowStage="constant";highStage="constant"] expected: @@ -122799,8 +122537,6 @@ if os == "linux" and not debug: FAIL [:type="vec4%3Ci32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Ci32%3E";lowStage="override";highStage="constant"] expected: @@ -122811,20 +122547,12 @@ if os == "linux" and not debug: FAIL [:type="vec4%3Ci32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Ci32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Ci32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Ci32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cu32%3E";lowStage="constant";highStage="constant"] expected: @@ -122835,8 +122563,6 @@ if os == "linux" and not debug: FAIL [:type="vec4%3Cu32%3E";lowStage="constant";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cu32%3E";lowStage="override";highStage="constant"] expected: @@ -122847,20 +122573,12 @@ if os == "linux" and not debug: FAIL [:type="vec4%3Cu32%3E";lowStage="override";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cu32%3E";lowStage="runtime";highStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cu32%3E";lowStage="runtime";highStage="override"] - expected: - if os == "linux" and not debug: FAIL [:type="vec4%3Cu32%3E";lowStage="runtime";highStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:low_high_abstract:*] @@ -125008,8 +124726,6 @@ if os == "linux" and not debug: FAIL [:offsetStage="constant";countStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="override";countStage="constant"] expected: @@ -125020,20 +124736,12 @@ if os == "linux" and not debug: FAIL [:offsetStage="override";countStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="runtime";countStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="runtime";countStage="override"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="runtime";countStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,extractBits:must_use:*] @@ -126039,8 +125747,6 @@ if os == "linux" and not debug: FAIL [:offsetStage="constant";countStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="override";countStage="constant"] expected: @@ -126051,20 +125757,12 @@ if os == "linux" and not debug: FAIL [:offsetStage="override";countStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="runtime";countStage="constant"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="runtime";countStage="override"] - expected: - if os == "linux" and not debug: FAIL [:offsetStage="runtime";countStage="runtime"] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,insertBits:mismatched:*] @@ -126595,26 +126293,18 @@ [:stage="runtime";typeA="f16";typeB="i32"] [:stage="runtime";typeA="f32";typeB="i32"] - expected: - if os == "linux" and not debug: FAIL [:stage="runtime";typeA="vec2%3Cf16%3E";typeB="vec2%3Ci32%3E"] [:stage="runtime";typeA="vec2%3Cf32%3E";typeB="vec2%3Ci32%3E"] - expected: - if os == "linux" and not debug: FAIL [:stage="runtime";typeA="vec3%3Cf16%3E";typeB="vec3%3Ci32%3E"] [:stage="runtime";typeA="vec3%3Cf32%3E";typeB="vec3%3Ci32%3E"] - expected: - if os == "linux" and not debug: FAIL [:stage="runtime";typeA="vec4%3Cf16%3E";typeB="vec4%3Ci32%3E"] [:stage="runtime";typeA="vec4%3Cf32%3E";typeB="vec4%3Ci32%3E"] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,ldexp:values:*] @@ -131932,26 +131622,18 @@ [:lowStage="constant";highStage="runtime";type="f16"] [:lowStage="constant";highStage="runtime";type="f32"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="constant";highStage="runtime";type="vec2%3Cf16%3E"] [:lowStage="constant";highStage="runtime";type="vec2%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="constant";highStage="runtime";type="vec3%3Cf16%3E"] [:lowStage="constant";highStage="runtime";type="vec3%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="constant";highStage="runtime";type="vec4%3Cf16%3E"] [:lowStage="constant";highStage="runtime";type="vec4%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="override";highStage="constant";type="f16"] @@ -132004,98 +131686,66 @@ [:lowStage="override";highStage="runtime";type="f16"] [:lowStage="override";highStage="runtime";type="f32"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="override";highStage="runtime";type="vec2%3Cf16%3E"] [:lowStage="override";highStage="runtime";type="vec2%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="override";highStage="runtime";type="vec3%3Cf16%3E"] [:lowStage="override";highStage="runtime";type="vec3%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="override";highStage="runtime";type="vec4%3Cf16%3E"] [:lowStage="override";highStage="runtime";type="vec4%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="constant";type="f16"] [:lowStage="runtime";highStage="constant";type="f32"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="constant";type="vec2%3Cf16%3E"] [:lowStage="runtime";highStage="constant";type="vec2%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="constant";type="vec3%3Cf16%3E"] [:lowStage="runtime";highStage="constant";type="vec3%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="constant";type="vec4%3Cf16%3E"] [:lowStage="runtime";highStage="constant";type="vec4%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="override";type="f16"] [:lowStage="runtime";highStage="override";type="f32"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="override";type="vec2%3Cf16%3E"] [:lowStage="runtime";highStage="override";type="vec2%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="override";type="vec3%3Cf16%3E"] [:lowStage="runtime";highStage="override";type="vec3%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="override";type="vec4%3Cf16%3E"] [:lowStage="runtime";highStage="override";type="vec4%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="runtime";type="f16"] [:lowStage="runtime";highStage="runtime";type="f32"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="runtime";type="vec2%3Cf16%3E"] [:lowStage="runtime";highStage="runtime";type="vec2%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="runtime";type="vec3%3Cf16%3E"] [:lowStage="runtime";highStage="runtime";type="vec3%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [:lowStage="runtime";highStage="runtime";type="vec4%3Cf16%3E"] [:lowStage="runtime";highStage="runtime";type="vec4%3Cf32%3E"] - expected: - if os == "linux" and not debug: FAIL [cts.https.html?q=webgpu:shader,validation,expression,call,builtin,smoothstep:values:*]