@@ -52,7 +52,7 @@ use crate::{
5252 snatch:: { SnatchGuard , SnatchLock , Snatchable } ,
5353 timestamp_normalization:: TIMESTAMP_NORMALIZATION_BUFFER_USES ,
5454 track:: { BindGroupStates , DeviceTracker , TrackerIndexAllocators , UsageScope , UsageScopePool } ,
55- validation,
55+ validation:: { self , stage_bit_from_shader_stage } ,
5656 weak_vec:: WeakVec ,
5757 FastHashMap , LabelHelpers , OnceCellOrLock ,
5858} ;
@@ -3743,7 +3743,7 @@ impl Device {
37433743 let final_entry_point_name;
37443744
37453745 {
3746- let stage = wgt :: ShaderStages :: COMPUTE ;
3746+ let stage = naga :: ShaderStage :: Compute ;
37473747
37483748 final_entry_point_name = shader_module. finalize_entry_point_name (
37493749 stage,
@@ -4230,13 +4230,16 @@ impl Device {
42304230 pipeline:: RenderPipelineVertexProcessor :: Vertex ( ref vertex) => {
42314231 vertex_stage = {
42324232 let stage_desc = & vertex. stage ;
4233- let stage = wgt:: ShaderStages :: VERTEX ;
4233+ let stage = naga:: ShaderStage :: Vertex ;
4234+ let stage_bit = stage_bit_from_shader_stage ( stage) ;
42344235
42354236 let vertex_shader_module = & stage_desc. module ;
42364237 vertex_shader_module. same_device ( self ) ?;
42374238
4238- let stage_err =
4239- |error| pipeline:: CreateRenderPipelineError :: Stage { stage, error } ;
4239+ let stage_err = |error| pipeline:: CreateRenderPipelineError :: Stage {
4240+ stage : stage_bit,
4241+ error,
4242+ } ;
42404243
42414244 _vertex_entry_point_name = vertex_shader_module
42424245 . finalize_entry_point_name (
@@ -4256,7 +4259,7 @@ impl Device {
42564259 desc. depth_stencil . as_ref ( ) . map ( |d| d. depth_compare ) ,
42574260 )
42584261 . map_err ( stage_err) ?;
4259- validated_stages |= stage ;
4262+ validated_stages |= stage_bit ;
42604263 }
42614264 Some ( hal:: ProgrammableStage {
42624265 module : vertex_shader_module. raw ( ) ,
@@ -4272,12 +4275,15 @@ impl Device {
42724275
42734276 task_stage = if let Some ( task) = task {
42744277 let stage_desc = & task. stage ;
4275- let stage = wgt:: ShaderStages :: TASK ;
4278+ let stage = naga:: ShaderStage :: Task ;
4279+ let stage_bit = stage_bit_from_shader_stage ( stage) ;
42764280 let task_shader_module = & stage_desc. module ;
42774281 task_shader_module. same_device ( self ) ?;
42784282
4279- let stage_err =
4280- |error| pipeline:: CreateRenderPipelineError :: Stage { stage, error } ;
4283+ let stage_err = |error| pipeline:: CreateRenderPipelineError :: Stage {
4284+ stage : stage_bit,
4285+ error,
4286+ } ;
42814287
42824288 _task_entry_point_name = task_shader_module
42834289 . finalize_entry_point_name (
@@ -4297,7 +4303,7 @@ impl Device {
42974303 desc. depth_stencil . as_ref ( ) . map ( |d| d. depth_compare ) ,
42984304 )
42994305 . map_err ( stage_err) ?;
4300- validated_stages |= stage ;
4306+ validated_stages |= stage_bit ;
43014307 }
43024308 Some ( hal:: ProgrammableStage {
43034309 module : task_shader_module. raw ( ) ,
@@ -4311,12 +4317,15 @@ impl Device {
43114317 } ;
43124318 mesh_stage = {
43134319 let stage_desc = & mesh. stage ;
4314- let stage = wgt:: ShaderStages :: MESH ;
4320+ let stage = naga:: ShaderStage :: Mesh ;
4321+ let stage_bit = stage_bit_from_shader_stage ( stage) ;
43154322 let mesh_shader_module = & stage_desc. module ;
43164323 mesh_shader_module. same_device ( self ) ?;
43174324
4318- let stage_err =
4319- |error| pipeline:: CreateRenderPipelineError :: Stage { stage, error } ;
4325+ let stage_err = |error| pipeline:: CreateRenderPipelineError :: Stage {
4326+ stage : stage_bit,
4327+ error,
4328+ } ;
43204329
43214330 _mesh_entry_point_name = mesh_shader_module
43224331 . finalize_entry_point_name (
@@ -4336,7 +4345,7 @@ impl Device {
43364345 desc. depth_stencil . as_ref ( ) . map ( |d| d. depth_compare ) ,
43374346 )
43384347 . map_err ( stage_err) ?;
4339- validated_stages |= stage ;
4348+ validated_stages |= stage_bit ;
43404349 }
43414350 Some ( hal:: ProgrammableStage {
43424351 module : mesh_shader_module. raw ( ) ,
@@ -4352,12 +4361,16 @@ impl Device {
43524361 let fragment_entry_point_name;
43534362 let fragment_stage = match desc. fragment {
43544363 Some ( ref fragment_state) => {
4355- let stage = wgt:: ShaderStages :: FRAGMENT ;
4364+ let stage = naga:: ShaderStage :: Fragment ;
4365+ let stage_bit = stage_bit_from_shader_stage ( stage) ;
43564366
43574367 let shader_module = & fragment_state. stage . module ;
43584368 shader_module. same_device ( self ) ?;
43594369
4360- let stage_err = |error| pipeline:: CreateRenderPipelineError :: Stage { stage, error } ;
4370+ let stage_err = |error| pipeline:: CreateRenderPipelineError :: Stage {
4371+ stage : stage_bit,
4372+ error,
4373+ } ;
43614374
43624375 fragment_entry_point_name = shader_module
43634376 . finalize_entry_point_name (
@@ -4381,14 +4394,14 @@ impl Device {
43814394 desc. depth_stencil . as_ref ( ) . map ( |d| d. depth_compare ) ,
43824395 )
43834396 . map_err ( stage_err) ?;
4384- validated_stages |= stage ;
4397+ validated_stages |= stage_bit ;
43854398 }
43864399
43874400 if let Some ( ref interface) = shader_module. interface {
43884401 shader_expects_dual_source_blending = interface
43894402 . fragment_uses_dual_source_blending ( & fragment_entry_point_name)
43904403 . map_err ( |error| pipeline:: CreateRenderPipelineError :: Stage {
4391- stage,
4404+ stage : stage_bit ,
43924405 error,
43934406 } ) ?;
43944407 }
0 commit comments