Skip to content

Commit 1aabf22

Browse files
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>
1 parent c655d52 commit 1aabf22

File tree

4 files changed

+67
-70
lines changed

4 files changed

+67
-70
lines changed

cts_runner/src/main.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ mod native {
141141
.unwrap();
142142
}
143143

144-
js_runtime.op_state().borrow_mut().put(Permissions {});
145-
146144
let mod_id = js_runtime.load_main_es_module(&specifier).await?;
147145
let result = js_runtime.mod_evaluate(mod_id);
148146
js_runtime.run_event_loop(Default::default()).await?;
@@ -157,6 +155,9 @@ mod native {
157155
ops = [op_exit, op_read_file_sync, op_write_file_sync],
158156
esm_entry_point = "ext:cts_runner/src/bootstrap.js",
159157
esm = ["src/bootstrap.js"],
158+
state = |state| {
159+
state.put(Permissions {});
160+
}
160161
);
161162

162163
#[op2(fast)]

deno_webgpu/compute_pass.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub fn op_webgpu_compute_pass_set_pipeline(
3232
.get::<WebGpuComputePass>(compute_pass_rid)?;
3333

3434
state
35-
.borrow::<wgpu_core::global::Global>()
35+
.borrow::<super::Instance>()
3636
.compute_pass_set_pipeline(
3737
&mut compute_pass_resource.0.borrow_mut(),
3838
compute_pipeline_resource.1,
@@ -55,7 +55,7 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups(
5555
.get::<WebGpuComputePass>(compute_pass_rid)?;
5656

5757
state
58-
.borrow::<wgpu_core::global::Global>()
58+
.borrow::<super::Instance>()
5959
.compute_pass_dispatch_workgroups(&mut compute_pass_resource.0.borrow_mut(), x, y, z)?;
6060

6161
Ok(WebGpuResult::empty())
@@ -77,7 +77,7 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups_indirect(
7777
.get::<WebGpuComputePass>(compute_pass_rid)?;
7878

7979
state
80-
.borrow::<wgpu_core::global::Global>()
80+
.borrow::<super::Instance>()
8181
.compute_pass_dispatch_workgroups_indirect(
8282
&mut compute_pass_resource.0.borrow_mut(),
8383
buffer_resource.1,
@@ -91,14 +91,15 @@ pub fn op_webgpu_compute_pass_dispatch_workgroups_indirect(
9191
#[serde]
9292
pub fn op_webgpu_compute_pass_end(
9393
state: &mut OpState,
94+
#[smi] _command_encoder_rid: ResourceId,
9495
#[smi] compute_pass_rid: ResourceId,
9596
) -> Result<WebGpuResult, AnyError> {
9697
let compute_pass_resource = state
9798
.resource_table
9899
.take::<WebGpuComputePass>(compute_pass_rid)?;
99100

100101
state
101-
.borrow::<wgpu_core::global::Global>()
102+
.borrow::<super::Instance>()
102103
.compute_pass_end(&mut compute_pass_resource.0.borrow_mut())?;
103104

104105
Ok(WebGpuResult::empty())
@@ -132,7 +133,7 @@ pub fn op_webgpu_compute_pass_set_bind_group(
132133
let dynamic_offsets_data: &[u32] = &dynamic_offsets_data[start..start + len];
133134

134135
state
135-
.borrow::<wgpu_core::global::Global>()
136+
.borrow::<super::Instance>()
136137
.compute_pass_set_bind_group(
137138
&mut compute_pass_resource.0.borrow_mut(),
138139
index,
@@ -155,7 +156,7 @@ pub fn op_webgpu_compute_pass_push_debug_group(
155156
.get::<WebGpuComputePass>(compute_pass_rid)?;
156157

157158
state
158-
.borrow::<wgpu_core::global::Global>()
159+
.borrow::<super::Instance>()
159160
.compute_pass_push_debug_group(
160161
&mut compute_pass_resource.0.borrow_mut(),
161162
group_label,
@@ -176,7 +177,7 @@ pub fn op_webgpu_compute_pass_pop_debug_group(
176177
.get::<WebGpuComputePass>(compute_pass_rid)?;
177178

178179
state
179-
.borrow::<wgpu_core::global::Global>()
180+
.borrow::<super::Instance>()
180181
.compute_pass_pop_debug_group(&mut compute_pass_resource.0.borrow_mut())?;
181182

182183
Ok(WebGpuResult::empty())
@@ -194,7 +195,7 @@ pub fn op_webgpu_compute_pass_insert_debug_marker(
194195
.get::<WebGpuComputePass>(compute_pass_rid)?;
195196

196197
state
197-
.borrow::<wgpu_core::global::Global>()
198+
.borrow::<super::Instance>()
198199
.compute_pass_insert_debug_marker(
199200
&mut compute_pass_resource.0.borrow_mut(),
200201
marker_label,

deno_webgpu/render_pass.rs

Lines changed: 44 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,15 @@ pub fn op_webgpu_render_pass_set_viewport(
5050
.resource_table
5151
.get::<WebGpuRenderPass>(args.render_pass_rid)?;
5252

53-
state
54-
.borrow::<wgpu_core::global::Global>()
55-
.render_pass_set_viewport(
56-
&mut render_pass_resource.0.borrow_mut(),
57-
args.x,
58-
args.y,
59-
args.width,
60-
args.height,
61-
args.min_depth,
62-
args.max_depth,
63-
)?;
53+
state.borrow::<super::Instance>().render_pass_set_viewport(
54+
&mut render_pass_resource.0.borrow_mut(),
55+
args.x,
56+
args.y,
57+
args.width,
58+
args.height,
59+
args.min_depth,
60+
args.max_depth,
61+
)?;
6462

6563
Ok(WebGpuResult::empty())
6664
}
@@ -80,7 +78,7 @@ pub fn op_webgpu_render_pass_set_scissor_rect(
8078
.get::<WebGpuRenderPass>(render_pass_rid)?;
8179

8280
state
83-
.borrow::<wgpu_core::global::Global>()
81+
.borrow::<super::Instance>()
8482
.render_pass_set_scissor_rect(
8583
&mut render_pass_resource.0.borrow_mut(),
8684
x,
@@ -104,7 +102,7 @@ pub fn op_webgpu_render_pass_set_blend_constant(
104102
.get::<WebGpuRenderPass>(render_pass_rid)?;
105103

106104
state
107-
.borrow::<wgpu_core::global::Global>()
105+
.borrow::<super::Instance>()
108106
.render_pass_set_blend_constant(&mut render_pass_resource.0.borrow_mut(), color)?;
109107

110108
Ok(WebGpuResult::empty())
@@ -122,7 +120,7 @@ pub fn op_webgpu_render_pass_set_stencil_reference(
122120
.get::<WebGpuRenderPass>(render_pass_rid)?;
123121

124122
state
125-
.borrow::<wgpu_core::global::Global>()
123+
.borrow::<super::Instance>()
126124
.render_pass_set_stencil_reference(&mut render_pass_resource.0.borrow_mut(), reference)?;
127125

128126
Ok(WebGpuResult::empty())
@@ -140,7 +138,7 @@ pub fn op_webgpu_render_pass_begin_occlusion_query(
140138
.get::<WebGpuRenderPass>(render_pass_rid)?;
141139

142140
state
143-
.borrow::<wgpu_core::global::Global>()
141+
.borrow::<super::Instance>()
144142
.render_pass_begin_occlusion_query(&mut render_pass_resource.0.borrow_mut(), query_index)?;
145143

146144
Ok(WebGpuResult::empty())
@@ -157,7 +155,7 @@ pub fn op_webgpu_render_pass_end_occlusion_query(
157155
.get::<WebGpuRenderPass>(render_pass_rid)?;
158156

159157
state
160-
.borrow::<wgpu_core::global::Global>()
158+
.borrow::<super::Instance>()
161159
.render_pass_end_occlusion_query(&mut render_pass_resource.0.borrow_mut())?;
162160

163161
Ok(WebGpuResult::empty())
@@ -185,7 +183,7 @@ pub fn op_webgpu_render_pass_execute_bundles(
185183
.get::<WebGpuRenderPass>(render_pass_rid)?;
186184

187185
state
188-
.borrow::<wgpu_core::global::Global>()
186+
.borrow::<super::Instance>()
189187
.render_pass_execute_bundles(&mut render_pass_resource.0.borrow_mut(), &bundles)?;
190188

191189
Ok(WebGpuResult::empty())
@@ -195,14 +193,15 @@ pub fn op_webgpu_render_pass_execute_bundles(
195193
#[serde]
196194
pub fn op_webgpu_render_pass_end(
197195
state: &mut OpState,
196+
#[smi] _command_encoder_rid: ResourceId,
198197
#[smi] render_pass_rid: ResourceId,
199198
) -> Result<WebGpuResult, deno_core::error::AnyError> {
200199
let render_pass_resource = state
201200
.resource_table
202201
.take::<WebGpuRenderPass>(render_pass_rid)?;
203202

204203
state
205-
.borrow::<wgpu_core::global::Global>()
204+
.borrow::<super::Instance>()
206205
.render_pass_end(&mut render_pass_resource.0.borrow_mut())?;
207206

208207
Ok(WebGpuResult::empty())
@@ -236,7 +235,7 @@ pub fn op_webgpu_render_pass_set_bind_group(
236235
let dynamic_offsets_data: &[u32] = &dynamic_offsets_data[start..start + len];
237236

238237
state
239-
.borrow::<wgpu_core::global::Global>()
238+
.borrow::<super::Instance>()
240239
.render_pass_set_bind_group(
241240
&mut render_pass_resource.0.borrow_mut(),
242241
index,
@@ -259,7 +258,7 @@ pub fn op_webgpu_render_pass_push_debug_group(
259258
.get::<WebGpuRenderPass>(render_pass_rid)?;
260259

261260
state
262-
.borrow::<wgpu_core::global::Global>()
261+
.borrow::<super::Instance>()
263262
.render_pass_push_debug_group(
264263
&mut render_pass_resource.0.borrow_mut(),
265264
group_label,
@@ -280,7 +279,7 @@ pub fn op_webgpu_render_pass_pop_debug_group(
280279
.get::<WebGpuRenderPass>(render_pass_rid)?;
281280

282281
state
283-
.borrow::<wgpu_core::global::Global>()
282+
.borrow::<super::Instance>()
284283
.render_pass_pop_debug_group(&mut render_pass_resource.0.borrow_mut())?;
285284

286285
Ok(WebGpuResult::empty())
@@ -298,7 +297,7 @@ pub fn op_webgpu_render_pass_insert_debug_marker(
298297
.get::<WebGpuRenderPass>(render_pass_rid)?;
299298

300299
state
301-
.borrow::<wgpu_core::global::Global>()
300+
.borrow::<super::Instance>()
302301
.render_pass_insert_debug_marker(
303302
&mut render_pass_resource.0.borrow_mut(),
304303
marker_label,
@@ -322,12 +321,10 @@ pub fn op_webgpu_render_pass_set_pipeline(
322321
.resource_table
323322
.get::<WebGpuRenderPass>(render_pass_rid)?;
324323

325-
state
326-
.borrow::<wgpu_core::global::Global>()
327-
.render_pass_set_pipeline(
328-
&mut render_pass_resource.0.borrow_mut(),
329-
render_pipeline_resource.1,
330-
)?;
324+
state.borrow::<super::Instance>().render_pass_set_pipeline(
325+
&mut render_pass_resource.0.borrow_mut(),
326+
render_pipeline_resource.1,
327+
)?;
331328

332329
Ok(WebGpuResult::empty())
333330
}
@@ -358,7 +355,7 @@ pub fn op_webgpu_render_pass_set_index_buffer(
358355
};
359356

360357
state
361-
.borrow::<wgpu_core::global::Global>()
358+
.borrow::<super::Instance>()
362359
.render_pass_set_index_buffer(
363360
&mut render_pass_resource.0.borrow_mut(),
364361
buffer_resource.1,
@@ -396,7 +393,7 @@ pub fn op_webgpu_render_pass_set_vertex_buffer(
396393
};
397394

398395
state
399-
.borrow::<wgpu_core::global::Global>()
396+
.borrow::<super::Instance>()
400397
.render_pass_set_vertex_buffer(
401398
&mut render_pass_resource.0.borrow_mut(),
402399
slot,
@@ -422,15 +419,13 @@ pub fn op_webgpu_render_pass_draw(
422419
.resource_table
423420
.get::<WebGpuRenderPass>(render_pass_rid)?;
424421

425-
state
426-
.borrow::<wgpu_core::global::Global>()
427-
.render_pass_draw(
428-
&mut render_pass_resource.0.borrow_mut(),
429-
vertex_count,
430-
instance_count,
431-
first_vertex,
432-
first_instance,
433-
)?;
422+
state.borrow::<super::Instance>().render_pass_draw(
423+
&mut render_pass_resource.0.borrow_mut(),
424+
vertex_count,
425+
instance_count,
426+
first_vertex,
427+
first_instance,
428+
)?;
434429

435430
Ok(WebGpuResult::empty())
436431
}
@@ -450,16 +445,14 @@ pub fn op_webgpu_render_pass_draw_indexed(
450445
.resource_table
451446
.get::<WebGpuRenderPass>(render_pass_rid)?;
452447

453-
state
454-
.borrow::<wgpu_core::global::Global>()
455-
.render_pass_draw_indexed(
456-
&mut render_pass_resource.0.borrow_mut(),
457-
index_count,
458-
instance_count,
459-
first_index,
460-
base_vertex,
461-
first_instance,
462-
)?;
448+
state.borrow::<super::Instance>().render_pass_draw_indexed(
449+
&mut render_pass_resource.0.borrow_mut(),
450+
index_count,
451+
instance_count,
452+
first_index,
453+
base_vertex,
454+
first_instance,
455+
)?;
463456

464457
Ok(WebGpuResult::empty())
465458
}
@@ -480,7 +473,7 @@ pub fn op_webgpu_render_pass_draw_indirect(
480473
.get::<WebGpuRenderPass>(render_pass_rid)?;
481474

482475
state
483-
.borrow::<wgpu_core::global::Global>()
476+
.borrow::<super::Instance>()
484477
.render_pass_draw_indirect(
485478
&mut render_pass_resource.0.borrow_mut(),
486479
buffer_resource.1,
@@ -506,7 +499,7 @@ pub fn op_webgpu_render_pass_draw_indexed_indirect(
506499
.get::<WebGpuRenderPass>(render_pass_rid)?;
507500

508501
state
509-
.borrow::<wgpu_core::global::Global>()
502+
.borrow::<super::Instance>()
510503
.render_pass_draw_indexed_indirect(
511504
&mut render_pass_resource.0.borrow_mut(),
512505
buffer_resource.1,

wgpu-types/src/lib.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4701,16 +4701,18 @@ fn texture_format_deserialize() {
47014701
);
47024702
}
47034703

4704+
/// Color write mask. Disabled color channels will not be written to.
4705+
///
4706+
/// Corresponds to [WebGPU `GPUColorWriteFlags`](
4707+
/// https://gpuweb.github.io/gpuweb/#typedefdef-gpucolorwriteflags).
4708+
#[repr(transparent)]
4709+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
4710+
#[cfg_attr(feature = "serde", serde(transparent))]
4711+
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
4712+
pub struct ColorWrites(u32);
4713+
47044714
bitflags::bitflags! {
4705-
/// Color write mask. Disabled color channels will not be written to.
4706-
///
4707-
/// Corresponds to [WebGPU `GPUColorWriteFlags`](
4708-
/// https://gpuweb.github.io/gpuweb/#typedefdef-gpucolorwriteflags).
4709-
#[repr(transparent)]
4710-
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
4711-
#[cfg_attr(feature = "serde", serde(transparent))]
4712-
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
4713-
pub struct ColorWrites: u32 {
4715+
impl ColorWrites: u32 {
47144716
/// Enable red channel writes
47154717
const RED = 1 << 0;
47164718
/// Enable green channel writes

0 commit comments

Comments
 (0)