fix cts_runner (#6840)

* fix: unbreak compute_pass execution and state

* fix: cts_runner js_runtime needs Permissions struct

* fix: ColorWrites bitflags serde

---------

Co-authored-by: turbocrime <turbocrime@users.noreply.github.com>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
This commit is contained in:
the letter L 2025-01-10 08:46:10 -08:00 committed by GitHub
parent c655d5290b
commit 1aabf22e7a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 67 additions and 70 deletions

View File

@ -141,8 +141,6 @@ mod native {
.unwrap(); .unwrap();
} }
js_runtime.op_state().borrow_mut().put(Permissions {});
let mod_id = js_runtime.load_main_es_module(&specifier).await?; let mod_id = js_runtime.load_main_es_module(&specifier).await?;
let result = js_runtime.mod_evaluate(mod_id); let result = js_runtime.mod_evaluate(mod_id);
js_runtime.run_event_loop(Default::default()).await?; js_runtime.run_event_loop(Default::default()).await?;
@ -157,6 +155,9 @@ mod native {
ops = [op_exit, op_read_file_sync, op_write_file_sync], ops = [op_exit, op_read_file_sync, op_write_file_sync],
esm_entry_point = "ext:cts_runner/src/bootstrap.js", esm_entry_point = "ext:cts_runner/src/bootstrap.js",
esm = ["src/bootstrap.js"], esm = ["src/bootstrap.js"],
state = |state| {
state.put(Permissions {});
}
); );
#[op2(fast)] #[op2(fast)]

View File

@ -32,7 +32,7 @@ pub fn op_webgpu_compute_pass_set_pipeline(
.get::<WebGpuComputePass>(compute_pass_rid)?; .get::<WebGpuComputePass>(compute_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_set_pipeline( .compute_pass_set_pipeline(
&mut compute_pass_resource.0.borrow_mut(), &mut compute_pass_resource.0.borrow_mut(),
compute_pipeline_resource.1, compute_pipeline_resource.1,
@ -55,7 +55,7 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups(
.get::<WebGpuComputePass>(compute_pass_rid)?; .get::<WebGpuComputePass>(compute_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_dispatch_workgroups(&mut compute_pass_resource.0.borrow_mut(), x, y, z)?; .compute_pass_dispatch_workgroups(&mut compute_pass_resource.0.borrow_mut(), x, y, z)?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -77,7 +77,7 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups_indirect(
.get::<WebGpuComputePass>(compute_pass_rid)?; .get::<WebGpuComputePass>(compute_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_dispatch_workgroups_indirect( .compute_pass_dispatch_workgroups_indirect(
&mut compute_pass_resource.0.borrow_mut(), &mut compute_pass_resource.0.borrow_mut(),
buffer_resource.1, buffer_resource.1,
@ -91,6 +91,7 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups_indirect(
#[serde] #[serde]
pub fn op_webgpu_compute_pass_end( pub fn op_webgpu_compute_pass_end(
state: &mut OpState, state: &mut OpState,
#[smi] _command_encoder_rid: ResourceId,
#[smi] compute_pass_rid: ResourceId, #[smi] compute_pass_rid: ResourceId,
) -> Result<WebGpuResult, AnyError> { ) -> Result<WebGpuResult, AnyError> {
let compute_pass_resource = state let compute_pass_resource = state
@ -98,7 +99,7 @@ pub fn op_webgpu_compute_pass_end(
.take::<WebGpuComputePass>(compute_pass_rid)?; .take::<WebGpuComputePass>(compute_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_end(&mut compute_pass_resource.0.borrow_mut())?; .compute_pass_end(&mut compute_pass_resource.0.borrow_mut())?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -132,7 +133,7 @@ pub fn op_webgpu_compute_pass_set_bind_group(
let dynamic_offsets_data: &[u32] = &dynamic_offsets_data[start..start + len]; let dynamic_offsets_data: &[u32] = &dynamic_offsets_data[start..start + len];
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_set_bind_group( .compute_pass_set_bind_group(
&mut compute_pass_resource.0.borrow_mut(), &mut compute_pass_resource.0.borrow_mut(),
index, index,
@ -155,7 +156,7 @@ pub fn op_webgpu_compute_pass_push_debug_group(
.get::<WebGpuComputePass>(compute_pass_rid)?; .get::<WebGpuComputePass>(compute_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_push_debug_group( .compute_pass_push_debug_group(
&mut compute_pass_resource.0.borrow_mut(), &mut compute_pass_resource.0.borrow_mut(),
group_label, group_label,
@ -176,7 +177,7 @@ pub fn op_webgpu_compute_pass_pop_debug_group(
.get::<WebGpuComputePass>(compute_pass_rid)?; .get::<WebGpuComputePass>(compute_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_pop_debug_group(&mut compute_pass_resource.0.borrow_mut())?; .compute_pass_pop_debug_group(&mut compute_pass_resource.0.borrow_mut())?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -194,7 +195,7 @@ pub fn op_webgpu_compute_pass_insert_debug_marker(
.get::<WebGpuComputePass>(compute_pass_rid)?; .get::<WebGpuComputePass>(compute_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.compute_pass_insert_debug_marker( .compute_pass_insert_debug_marker(
&mut compute_pass_resource.0.borrow_mut(), &mut compute_pass_resource.0.borrow_mut(),
marker_label, marker_label,

View File

@ -50,9 +50,7 @@ pub fn op_webgpu_render_pass_set_viewport(
.resource_table .resource_table
.get::<WebGpuRenderPass>(args.render_pass_rid)?; .get::<WebGpuRenderPass>(args.render_pass_rid)?;
state state.borrow::<super::Instance>().render_pass_set_viewport(
.borrow::<wgpu_core::global::Global>()
.render_pass_set_viewport(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
args.x, args.x,
args.y, args.y,
@ -80,7 +78,7 @@ pub fn op_webgpu_render_pass_set_scissor_rect(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_set_scissor_rect( .render_pass_set_scissor_rect(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
x, x,
@ -104,7 +102,7 @@ pub fn op_webgpu_render_pass_set_blend_constant(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_set_blend_constant(&mut render_pass_resource.0.borrow_mut(), color)?; .render_pass_set_blend_constant(&mut render_pass_resource.0.borrow_mut(), color)?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -122,7 +120,7 @@ pub fn op_webgpu_render_pass_set_stencil_reference(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_set_stencil_reference(&mut render_pass_resource.0.borrow_mut(), reference)?; .render_pass_set_stencil_reference(&mut render_pass_resource.0.borrow_mut(), reference)?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -140,7 +138,7 @@ pub fn op_webgpu_render_pass_begin_occlusion_query(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_begin_occlusion_query(&mut render_pass_resource.0.borrow_mut(), query_index)?; .render_pass_begin_occlusion_query(&mut render_pass_resource.0.borrow_mut(), query_index)?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -157,7 +155,7 @@ pub fn op_webgpu_render_pass_end_occlusion_query(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_end_occlusion_query(&mut render_pass_resource.0.borrow_mut())?; .render_pass_end_occlusion_query(&mut render_pass_resource.0.borrow_mut())?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -185,7 +183,7 @@ pub fn op_webgpu_render_pass_execute_bundles(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_execute_bundles(&mut render_pass_resource.0.borrow_mut(), &bundles)?; .render_pass_execute_bundles(&mut render_pass_resource.0.borrow_mut(), &bundles)?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -195,6 +193,7 @@ pub fn op_webgpu_render_pass_execute_bundles(
#[serde] #[serde]
pub fn op_webgpu_render_pass_end( pub fn op_webgpu_render_pass_end(
state: &mut OpState, state: &mut OpState,
#[smi] _command_encoder_rid: ResourceId,
#[smi] render_pass_rid: ResourceId, #[smi] render_pass_rid: ResourceId,
) -> Result<WebGpuResult, deno_core::error::AnyError> { ) -> Result<WebGpuResult, deno_core::error::AnyError> {
let render_pass_resource = state let render_pass_resource = state
@ -202,7 +201,7 @@ pub fn op_webgpu_render_pass_end(
.take::<WebGpuRenderPass>(render_pass_rid)?; .take::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_end(&mut render_pass_resource.0.borrow_mut())?; .render_pass_end(&mut render_pass_resource.0.borrow_mut())?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -236,7 +235,7 @@ pub fn op_webgpu_render_pass_set_bind_group(
let dynamic_offsets_data: &[u32] = &dynamic_offsets_data[start..start + len]; let dynamic_offsets_data: &[u32] = &dynamic_offsets_data[start..start + len];
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_set_bind_group( .render_pass_set_bind_group(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
index, index,
@ -259,7 +258,7 @@ pub fn op_webgpu_render_pass_push_debug_group(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_push_debug_group( .render_pass_push_debug_group(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
group_label, group_label,
@ -280,7 +279,7 @@ pub fn op_webgpu_render_pass_pop_debug_group(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_pop_debug_group(&mut render_pass_resource.0.borrow_mut())?; .render_pass_pop_debug_group(&mut render_pass_resource.0.borrow_mut())?;
Ok(WebGpuResult::empty()) Ok(WebGpuResult::empty())
@ -298,7 +297,7 @@ pub fn op_webgpu_render_pass_insert_debug_marker(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_insert_debug_marker( .render_pass_insert_debug_marker(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
marker_label, marker_label,
@ -322,9 +321,7 @@ pub fn op_webgpu_render_pass_set_pipeline(
.resource_table .resource_table
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state.borrow::<super::Instance>().render_pass_set_pipeline(
.borrow::<wgpu_core::global::Global>()
.render_pass_set_pipeline(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
render_pipeline_resource.1, render_pipeline_resource.1,
)?; )?;
@ -358,7 +355,7 @@ pub fn op_webgpu_render_pass_set_index_buffer(
}; };
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_set_index_buffer( .render_pass_set_index_buffer(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
buffer_resource.1, buffer_resource.1,
@ -396,7 +393,7 @@ pub fn op_webgpu_render_pass_set_vertex_buffer(
}; };
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_set_vertex_buffer( .render_pass_set_vertex_buffer(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
slot, slot,
@ -422,9 +419,7 @@ pub fn op_webgpu_render_pass_draw(
.resource_table .resource_table
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state.borrow::<super::Instance>().render_pass_draw(
.borrow::<wgpu_core::global::Global>()
.render_pass_draw(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
vertex_count, vertex_count,
instance_count, instance_count,
@ -450,9 +445,7 @@ pub fn op_webgpu_render_pass_draw_indexed(
.resource_table .resource_table
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state.borrow::<super::Instance>().render_pass_draw_indexed(
.borrow::<wgpu_core::global::Global>()
.render_pass_draw_indexed(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
index_count, index_count,
instance_count, instance_count,
@ -480,7 +473,7 @@ pub fn op_webgpu_render_pass_draw_indirect(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_draw_indirect( .render_pass_draw_indirect(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
buffer_resource.1, buffer_resource.1,
@ -506,7 +499,7 @@ pub fn op_webgpu_render_pass_draw_indexed_indirect(
.get::<WebGpuRenderPass>(render_pass_rid)?; .get::<WebGpuRenderPass>(render_pass_rid)?;
state state
.borrow::<wgpu_core::global::Global>() .borrow::<super::Instance>()
.render_pass_draw_indexed_indirect( .render_pass_draw_indexed_indirect(
&mut render_pass_resource.0.borrow_mut(), &mut render_pass_resource.0.borrow_mut(),
buffer_resource.1, buffer_resource.1,

View File

@ -4701,7 +4701,6 @@ fn texture_format_deserialize() {
); );
} }
bitflags::bitflags! {
/// Color write mask. Disabled color channels will not be written to. /// Color write mask. Disabled color channels will not be written to.
/// ///
/// Corresponds to [WebGPU `GPUColorWriteFlags`]( /// Corresponds to [WebGPU `GPUColorWriteFlags`](
@ -4710,7 +4709,10 @@ bitflags::bitflags! {
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(transparent))] #[cfg_attr(feature = "serde", serde(transparent))]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct ColorWrites: u32 { pub struct ColorWrites(u32);
bitflags::bitflags! {
impl ColorWrites: u32 {
/// Enable red channel writes /// Enable red channel writes
const RED = 1 << 0; const RED = 1 << 0;
/// Enable green channel writes /// Enable green channel writes