@@ -402,62 +402,66 @@ pub fn map_predeclared_type(
402402 span : Span ,
403403 word : & str ,
404404) -> Result < ' static , Option < PredeclaredType > > {
405+ use Scalar as Sc ;
406+ use TypeInner as Ti ;
407+ use VectorSize as Vs ;
408+
405409 #[ rustfmt:: skip]
406410 let ty = match word {
407411 // predeclared types
408412
409413 // scalars
410- "bool" => TypeInner :: Scalar ( Scalar :: BOOL ) . into ( ) ,
411- "i32" => TypeInner :: Scalar ( Scalar :: I32 ) . into ( ) ,
412- "u32" => TypeInner :: Scalar ( Scalar :: U32 ) . into ( ) ,
413- "f32" => TypeInner :: Scalar ( Scalar :: F32 ) . into ( ) ,
414- "f16" => TypeInner :: Scalar ( Scalar :: F16 ) . into ( ) ,
415- "i64" => TypeInner :: Scalar ( Scalar :: I64 ) . into ( ) ,
416- "u64" => TypeInner :: Scalar ( Scalar :: U64 ) . into ( ) ,
417- "f64" => TypeInner :: Scalar ( Scalar :: F64 ) . into ( ) ,
414+ "bool" => Ti :: Scalar ( Sc :: BOOL ) . into ( ) ,
415+ "i32" => Ti :: Scalar ( Sc :: I32 ) . into ( ) ,
416+ "u32" => Ti :: Scalar ( Sc :: U32 ) . into ( ) ,
417+ "f32" => Ti :: Scalar ( Sc :: F32 ) . into ( ) ,
418+ "f16" => Ti :: Scalar ( Sc :: F16 ) . into ( ) ,
419+ "i64" => Ti :: Scalar ( Sc :: I64 ) . into ( ) ,
420+ "u64" => Ti :: Scalar ( Sc :: U64 ) . into ( ) ,
421+ "f64" => Ti :: Scalar ( Sc :: F64 ) . into ( ) ,
418422 // vector aliases
419- "vec2i" => TypeInner :: Vector { size : VectorSize :: Bi , scalar : Scalar :: I32 } . into ( ) ,
420- "vec3i" => TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: I32 } . into ( ) ,
421- "vec4i" => TypeInner :: Vector { size : VectorSize :: Quad , scalar : Scalar :: I32 } . into ( ) ,
422- "vec2u" => TypeInner :: Vector { size : VectorSize :: Bi , scalar : Scalar :: U32 } . into ( ) ,
423- "vec3u" => TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: U32 } . into ( ) ,
424- "vec4u" => TypeInner :: Vector { size : VectorSize :: Quad , scalar : Scalar :: U32 } . into ( ) ,
425- "vec2f" => TypeInner :: Vector { size : VectorSize :: Bi , scalar : Scalar :: F32 } . into ( ) ,
426- "vec3f" => TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: F32 } . into ( ) ,
427- "vec4f" => TypeInner :: Vector { size : VectorSize :: Quad , scalar : Scalar :: F32 } . into ( ) ,
428- "vec2h" => TypeInner :: Vector { size : VectorSize :: Bi , scalar : Scalar :: F16 } . into ( ) ,
429- "vec3h" => TypeInner :: Vector { size : VectorSize :: Tri , scalar : Scalar :: F16 } . into ( ) ,
430- "vec4h" => TypeInner :: Vector { size : VectorSize :: Quad , scalar : Scalar :: F16 } . into ( ) ,
423+ "vec2i" => Ti :: Vector { size : Vs :: Bi , scalar : Sc :: I32 } . into ( ) ,
424+ "vec3i" => Ti :: Vector { size : Vs :: Tri , scalar : Sc :: I32 } . into ( ) ,
425+ "vec4i" => Ti :: Vector { size : Vs :: Quad , scalar : Sc :: I32 } . into ( ) ,
426+ "vec2u" => Ti :: Vector { size : Vs :: Bi , scalar : Sc :: U32 } . into ( ) ,
427+ "vec3u" => Ti :: Vector { size : Vs :: Tri , scalar : Sc :: U32 } . into ( ) ,
428+ "vec4u" => Ti :: Vector { size : Vs :: Quad , scalar : Sc :: U32 } . into ( ) ,
429+ "vec2f" => Ti :: Vector { size : Vs :: Bi , scalar : Sc :: F32 } . into ( ) ,
430+ "vec3f" => Ti :: Vector { size : Vs :: Tri , scalar : Sc :: F32 } . into ( ) ,
431+ "vec4f" => Ti :: Vector { size : Vs :: Quad , scalar : Sc :: F32 } . into ( ) ,
432+ "vec2h" => Ti :: Vector { size : Vs :: Bi , scalar : Sc :: F16 } . into ( ) ,
433+ "vec3h" => Ti :: Vector { size : Vs :: Tri , scalar : Sc :: F16 } . into ( ) ,
434+ "vec4h" => Ti :: Vector { size : Vs :: Quad , scalar : Sc :: F16 } . into ( ) ,
431435 // matrix aliases
432- "mat2x2f" => TypeInner :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Bi , scalar : Scalar :: F32 } . into ( ) ,
433- "mat2x3f" => TypeInner :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Tri , scalar : Scalar :: F32 } . into ( ) ,
434- "mat2x4f" => TypeInner :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Quad , scalar : Scalar :: F32 } . into ( ) ,
435- "mat3x2f" => TypeInner :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Bi , scalar : Scalar :: F32 } . into ( ) ,
436- "mat3x3f" => TypeInner :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Tri , scalar : Scalar :: F32 } . into ( ) ,
437- "mat3x4f" => TypeInner :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Quad , scalar : Scalar :: F32 } . into ( ) ,
438- "mat4x2f" => TypeInner :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Bi , scalar : Scalar :: F32 } . into ( ) ,
439- "mat4x3f" => TypeInner :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Tri , scalar : Scalar :: F32 } . into ( ) ,
440- "mat4x4f" => TypeInner :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Quad , scalar : Scalar :: F32 } . into ( ) ,
441- "mat2x2h" => TypeInner :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Bi , scalar : Scalar :: F16 } . into ( ) ,
442- "mat2x3h" => TypeInner :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Tri , scalar : Scalar :: F16 } . into ( ) ,
443- "mat2x4h" => TypeInner :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Quad , scalar : Scalar :: F16 } . into ( ) ,
444- "mat3x2h" => TypeInner :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Bi , scalar : Scalar :: F16 } . into ( ) ,
445- "mat3x3h" => TypeInner :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Tri , scalar : Scalar :: F16 } . into ( ) ,
446- "mat3x4h" => TypeInner :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Quad , scalar : Scalar :: F16 } . into ( ) ,
447- "mat4x2h" => TypeInner :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Bi , scalar : Scalar :: F16 } . into ( ) ,
448- "mat4x3h" => TypeInner :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Tri , scalar : Scalar :: F16 } . into ( ) ,
449- "mat4x4h" => TypeInner :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Quad , scalar : Scalar :: F16 } . into ( ) ,
436+ "mat2x2f" => Ti :: Matrix { columns : Vs :: Bi , rows : Vs :: Bi , scalar : Sc :: F32 } . into ( ) ,
437+ "mat2x3f" => Ti :: Matrix { columns : Vs :: Bi , rows : Vs :: Tri , scalar : Sc :: F32 } . into ( ) ,
438+ "mat2x4f" => Ti :: Matrix { columns : Vs :: Bi , rows : Vs :: Quad , scalar : Sc :: F32 } . into ( ) ,
439+ "mat3x2f" => Ti :: Matrix { columns : Vs :: Tri , rows : Vs :: Bi , scalar : Sc :: F32 } . into ( ) ,
440+ "mat3x3f" => Ti :: Matrix { columns : Vs :: Tri , rows : Vs :: Tri , scalar : Sc :: F32 } . into ( ) ,
441+ "mat3x4f" => Ti :: Matrix { columns : Vs :: Tri , rows : Vs :: Quad , scalar : Sc :: F32 } . into ( ) ,
442+ "mat4x2f" => Ti :: Matrix { columns : Vs :: Quad , rows : Vs :: Bi , scalar : Sc :: F32 } . into ( ) ,
443+ "mat4x3f" => Ti :: Matrix { columns : Vs :: Quad , rows : Vs :: Tri , scalar : Sc :: F32 } . into ( ) ,
444+ "mat4x4f" => Ti :: Matrix { columns : Vs :: Quad , rows : Vs :: Quad , scalar : Sc :: F32 } . into ( ) ,
445+ "mat2x2h" => Ti :: Matrix { columns : Vs :: Bi , rows : Vs :: Bi , scalar : Sc :: F16 } . into ( ) ,
446+ "mat2x3h" => Ti :: Matrix { columns : Vs :: Bi , rows : Vs :: Tri , scalar : Sc :: F16 } . into ( ) ,
447+ "mat2x4h" => Ti :: Matrix { columns : Vs :: Bi , rows : Vs :: Quad , scalar : Sc :: F16 } . into ( ) ,
448+ "mat3x2h" => Ti :: Matrix { columns : Vs :: Tri , rows : Vs :: Bi , scalar : Sc :: F16 } . into ( ) ,
449+ "mat3x3h" => Ti :: Matrix { columns : Vs :: Tri , rows : Vs :: Tri , scalar : Sc :: F16 } . into ( ) ,
450+ "mat3x4h" => Ti :: Matrix { columns : Vs :: Tri , rows : Vs :: Quad , scalar : Sc :: F16 } . into ( ) ,
451+ "mat4x2h" => Ti :: Matrix { columns : Vs :: Quad , rows : Vs :: Bi , scalar : Sc :: F16 } . into ( ) ,
452+ "mat4x3h" => Ti :: Matrix { columns : Vs :: Quad , rows : Vs :: Tri , scalar : Sc :: F16 } . into ( ) ,
453+ "mat4x4h" => Ti :: Matrix { columns : Vs :: Quad , rows : Vs :: Quad , scalar : Sc :: F16 } . into ( ) ,
450454 // samplers
451- "sampler" => TypeInner :: Sampler { comparison : false } . into ( ) ,
452- "sampler_comparison" => TypeInner :: Sampler { comparison : true } . into ( ) ,
455+ "sampler" => Ti :: Sampler { comparison : false } . into ( ) ,
456+ "sampler_comparison" => Ti :: Sampler { comparison : true } . into ( ) ,
453457 // depth textures
454- "texture_depth_2d" => TypeInner :: Image { dim : ImageDimension :: D2 , arrayed : false , class : ImageClass :: Depth { multi : false } } . into ( ) ,
455- "texture_depth_2d_array" => TypeInner :: Image { dim : ImageDimension :: D2 , arrayed : true , class : ImageClass :: Depth { multi : false } } . into ( ) ,
456- "texture_depth_cube" => TypeInner :: Image { dim : ImageDimension :: Cube , arrayed : false , class : ImageClass :: Depth { multi : false } } . into ( ) ,
457- "texture_depth_cube_array" => TypeInner :: Image { dim : ImageDimension :: Cube , arrayed : true , class : ImageClass :: Depth { multi : false } } . into ( ) ,
458- "texture_depth_multisampled_2d" => TypeInner :: Image { dim : ImageDimension :: D2 , arrayed : false , class : ImageClass :: Depth { multi : true } } . into ( ) ,
458+ "texture_depth_2d" => Ti :: Image { dim : ImageDimension :: D2 , arrayed : false , class : ImageClass :: Depth { multi : false } } . into ( ) ,
459+ "texture_depth_2d_array" => Ti :: Image { dim : ImageDimension :: D2 , arrayed : true , class : ImageClass :: Depth { multi : false } } . into ( ) ,
460+ "texture_depth_cube" => Ti :: Image { dim : ImageDimension :: Cube , arrayed : false , class : ImageClass :: Depth { multi : false } } . into ( ) ,
461+ "texture_depth_cube_array" => Ti :: Image { dim : ImageDimension :: Cube , arrayed : true , class : ImageClass :: Depth { multi : false } } . into ( ) ,
462+ "texture_depth_multisampled_2d" => Ti :: Image { dim : ImageDimension :: D2 , arrayed : false , class : ImageClass :: Depth { multi : true } } . into ( ) ,
459463 // external texture
460- "texture_external" => TypeInner :: Image { dim : ImageDimension :: D2 , arrayed : false , class : ImageClass :: External } . into ( ) ,
464+ "texture_external" => Ti :: Image { dim : ImageDimension :: D2 , arrayed : false , class : ImageClass :: External } . into ( ) ,
461465 // ray desc
462466 "RayDesc" => PredeclaredType :: RayDesc ,
463467 // ray intersection
@@ -466,19 +470,19 @@ pub fn map_predeclared_type(
466470 // predeclared type generators
467471
468472 // vector
469- "vec2" => TypeGenerator :: Vector { size : VectorSize :: Bi } . into ( ) ,
470- "vec3" => TypeGenerator :: Vector { size : VectorSize :: Tri } . into ( ) ,
471- "vec4" => TypeGenerator :: Vector { size : VectorSize :: Quad } . into ( ) ,
473+ "vec2" => TypeGenerator :: Vector { size : Vs :: Bi } . into ( ) ,
474+ "vec3" => TypeGenerator :: Vector { size : Vs :: Tri } . into ( ) ,
475+ "vec4" => TypeGenerator :: Vector { size : Vs :: Quad } . into ( ) ,
472476 // matrix
473- "mat2x2" => TypeGenerator :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Bi } . into ( ) ,
474- "mat2x3" => TypeGenerator :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Tri } . into ( ) ,
475- "mat2x4" => TypeGenerator :: Matrix { columns : VectorSize :: Bi , rows : VectorSize :: Quad } . into ( ) ,
476- "mat3x2" => TypeGenerator :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Bi } . into ( ) ,
477- "mat3x3" => TypeGenerator :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Tri } . into ( ) ,
478- "mat3x4" => TypeGenerator :: Matrix { columns : VectorSize :: Tri , rows : VectorSize :: Quad } . into ( ) ,
479- "mat4x2" => TypeGenerator :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Bi } . into ( ) ,
480- "mat4x3" => TypeGenerator :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Tri } . into ( ) ,
481- "mat4x4" => TypeGenerator :: Matrix { columns : VectorSize :: Quad , rows : VectorSize :: Quad } . into ( ) ,
477+ "mat2x2" => TypeGenerator :: Matrix { columns : Vs :: Bi , rows : Vs :: Bi } . into ( ) ,
478+ "mat2x3" => TypeGenerator :: Matrix { columns : Vs :: Bi , rows : Vs :: Tri } . into ( ) ,
479+ "mat2x4" => TypeGenerator :: Matrix { columns : Vs :: Bi , rows : Vs :: Quad } . into ( ) ,
480+ "mat3x2" => TypeGenerator :: Matrix { columns : Vs :: Tri , rows : Vs :: Bi } . into ( ) ,
481+ "mat3x3" => TypeGenerator :: Matrix { columns : Vs :: Tri , rows : Vs :: Tri } . into ( ) ,
482+ "mat3x4" => TypeGenerator :: Matrix { columns : Vs :: Tri , rows : Vs :: Quad } . into ( ) ,
483+ "mat4x2" => TypeGenerator :: Matrix { columns : Vs :: Quad , rows : Vs :: Bi } . into ( ) ,
484+ "mat4x3" => TypeGenerator :: Matrix { columns : Vs :: Quad , rows : Vs :: Tri } . into ( ) ,
485+ "mat4x4" => TypeGenerator :: Matrix { columns : Vs :: Quad , rows : Vs :: Quad } . into ( ) ,
482486 // array
483487 "array" => TypeGenerator :: Array . into ( ) ,
484488 // atomic
@@ -507,7 +511,7 @@ pub fn map_predeclared_type(
507511 _ => return Ok ( None ) ,
508512 } ;
509513
510- if matches ! ( ty, PredeclaredType :: TypeInner ( ref ty) if ty. scalar( ) == Some ( Scalar :: F16 ) )
514+ if matches ! ( ty, PredeclaredType :: TypeInner ( ref ty) if ty. scalar( ) == Some ( Sc :: F16 ) )
511515 && !enable_extensions. contains ( ImplementedEnableExtension :: F16 )
512516 {
513517 return Err ( Box :: new ( Error :: EnableExtensionNotEnabled {
0 commit comments