Module { types: { [1]: Type { name: None, inner: Scalar { kind: Uint, width: 4, }, }, [2]: Type { name: None, inner: Vector { size: Tri, kind: Uint, width: 4, }, }, [3]: Type { name: None, inner: Pointer { base: [2], space: Private, }, }, [4]: Type { name: None, inner: Scalar { kind: Float, width: 4, }, }, [5]: Type { name: None, inner: Vector { size: Bi, kind: Float, width: 4, }, }, [6]: Type { name: None, inner: Image { dim: D2, arrayed: false, class: Storage { format: Rgba16Float, access: StorageAccess( 0x0, ), }, }, }, [7]: Type { name: None, inner: Vector { size: Bi, kind: Uint, width: 4, }, }, [8]: Type { name: None, inner: Scalar { kind: Sint, width: 4, }, }, [9]: Type { name: None, inner: Scalar { kind: Bool, width: 1, }, }, [10]: Type { name: None, inner: Vector { size: Quad, kind: Float, width: 4, }, }, [11]: Type { name: None, inner: Image { dim: D2, arrayed: false, class: Storage { format: Rgba16Float, access: StorageAccess( LOAD | STORE, ), }, }, }, }, special_types: SpecialTypes { ray_desc: None, ray_intersection: None, }, constants: { [1]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 0, ), }, }, [2]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 1, ), }, }, [3]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 2, ), }, }, [4]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 3, ), }, }, [5]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 0, ), }, }, [6]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 8, ), }, }, [7]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 1, ), }, }, [8]: Constant { name: None, specialization: None, inner: Scalar { width: 1, value: Bool( true, ), }, }, [9]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Float( 0.10000000149011612, ), }, }, [10]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Float( 0.20000000298023224, ), }, }, [11]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Float( 0.30000001192092896, ), }, }, [12]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Float( 1.0, ), }, }, [13]: Constant { name: None, specialization: None, inner: Scalar { width: 1, value: Bool( false, ), }, }, [14]: Constant { name: None, specialization: None, inner: Scalar { width: 4, value: Sint( 0, ), }, }, [15]: Constant { name: None, specialization: None, inner: Composite { ty: [10], components: [ [9], [10], [11], [12], ], }, }, }, global_variables: { [1]: GlobalVariable { name: None, space: Private, binding: None, ty: [2], init: None, }, [2]: GlobalVariable { name: None, space: Handle, binding: Some( ResourceBinding { group: 0, binding: 2, }, ), ty: [11], init: None, }, }, functions: { [1]: Function { name: None, arguments: [], result: None, local_variables: { [1]: LocalVariable { name: Some( "phi_79", ), ty: [8], init: None, }, [2]: LocalVariable { name: Some( "phi_89", ), ty: [8], init: None, }, }, expressions: { [1]: GlobalVariable( [2], ), [2]: GlobalVariable( [1], ), [3]: Constant( [1], ), [4]: Constant( [2], ), [5]: Constant( [3], ), [6]: Constant( [4], ), [7]: Constant( [9], ), [8]: Constant( [7], ), [9]: Constant( [5], ), [10]: Constant( [10], ), [11]: Constant( [8], ), [12]: Constant( [15], ), [13]: Constant( [13], ), [14]: Constant( [11], ), [15]: Constant( [6], ), [16]: Constant( [14], ), [17]: Constant( [12], ), [18]: Load { pointer: [2], }, [19]: AccessIndex { base: [18], index: 0, }, [20]: AccessIndex { base: [18], index: 1, }, [21]: Compose { ty: [7], components: [ [19], [20], ], }, [22]: LocalVariable( [1], ), [23]: Load { pointer: [22], }, [24]: Binary { op: Less, left: [23], right: [15], }, [25]: Binary { op: Add, left: [23], right: [8], }, [26]: LocalVariable( [2], ), [27]: Load { pointer: [26], }, [28]: Select { condition: [24], accept: [11], reject: [13], }, [29]: Unary { op: Not, expr: [28], }, [30]: LocalVariable( [1], ), [31]: LocalVariable( [2], ), }, named_expressions: {}, body: Block { body: [ Emit( [18..21], ), Store { pointer: [30], value: [9], }, Loop { body: Block { body: [ Emit( [23..23], ), Emit( [24..24], ), If { condition: [24], accept: Block { body: [ Emit( [25..25], ), Store { pointer: [31], value: [25], }, ], span_info: [ Span { start: 760, end: 780, }, Span { start: 0, end: 0, }, ], }, reject: Block { body: [ ImageStore { image: [1], coordinate: [21], array_index: None, value: [12], }, Store { pointer: [31], value: [16], }, ], span_info: [ Span { start: 812, end: 828, }, Span { start: 0, end: 0, }, ], }, }, Emit( [27..28], ), Continue, ], span_info: [ Span { start: 644, end: 672, }, Span { start: 704, end: 724, }, Span { start: 0, end: 0, }, Span { start: 844, end: 896, }, Span { start: 0, end: 0, }, ], }, continuing: Block { body: [ Emit( [29..29], ), Store { pointer: [30], value: [27], }, ], span_info: [ Span { start: 912, end: 928, }, Span { start: 0, end: 0, }, ], }, break_if: Some( [29], ), }, Return { value: None, }, ], span_info: [ Span { start: 552, end: 628, }, Span { start: 0, end: 0, }, Span { start: 0, end: 0, }, Span { start: 0, end: 0, }, ], }, }, }, entry_points: [ EntryPoint { name: "main", stage: Compute, early_depth_test: None, workgroup_size: [ 8, 8, 1, ], function: Function { name: Some( "main_wrap", ), arguments: [ FunctionArgument { name: None, ty: [2], binding: Some( BuiltIn( GlobalInvocationId, ), ), }, ], result: None, local_variables: {}, expressions: { [1]: FunctionArgument( 0, ), [2]: GlobalVariable( [1], ), }, named_expressions: {}, body: Block { body: [ Store { pointer: [2], value: [1], }, Call { function: [1], arguments: [], result: None, }, ], span_info: [ Span { start: 196, end: 212, }, Span { start: 0, end: 0, }, ], }, }, }, ], } ModuleInfo { type_flags: [ TypeFlags( DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( SIZED | COPY | ARGUMENT, ), TypeFlags( DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( ARGUMENT, ), TypeFlags( DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( DATA | SIZED | COPY | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE, ), TypeFlags( ARGUMENT, ), ], functions: [ FunctionInfo { flags: ValidationFlags( EXPRESSIONS | BLOCKS | CONTROL_FLOW_UNIFORMITY | STRUCT_LAYOUTS | CONSTANTS | BINDINGS, ), available_stages: ShaderStages( VERTEX | FRAGMENT | COMPUTE, ), uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, may_kill: false, sampling_set: {}, global_uses: [ GlobalUse( READ, ), GlobalUse( WRITE, ), ], expressions: [ ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [1], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: Some( [2], ), ty: Handle( [11], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [2], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: Some( [1], ), ty: Value( Pointer { base: [2], space: Private, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Float, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Float, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Bool, width: 1, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Handle( [10], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Bool, width: 1, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Float, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Sint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Float, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [2], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 2, assignable_global: None, ty: Handle( [2], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [2], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Uint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [2], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Uint, width: 4, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [2], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Handle( [7], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [22], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Pointer { base: [8], space: Function, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [22], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 2, assignable_global: None, ty: Handle( [8], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [22], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 2, assignable_global: None, ty: Value( Scalar { kind: Bool, width: 1, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [22], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Handle( [8], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [26], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Pointer { base: [8], space: Function, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [26], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Handle( [8], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [22], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Value( Scalar { kind: Bool, width: 1, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [22], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 0, assignable_global: None, ty: Value( Scalar { kind: Bool, width: 1, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [30], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 2, assignable_global: None, ty: Value( Pointer { base: [8], space: Function, }, ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [31], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 2, assignable_global: None, ty: Value( Pointer { base: [8], space: Function, }, ), }, ], sampling: {}, }, ], entry_points: [ FunctionInfo { flags: ValidationFlags( EXPRESSIONS | BLOCKS | CONTROL_FLOW_UNIFORMITY | STRUCT_LAYOUTS | CONSTANTS | BINDINGS, ), available_stages: ShaderStages( VERTEX | FRAGMENT | COMPUTE, ), uniformity: Uniformity { non_uniform_result: None, requirements: UniformityRequirements( 0x0, ), }, may_kill: false, sampling_set: {}, global_uses: [ GlobalUse( READ | WRITE, ), GlobalUse( WRITE, ), ], expressions: [ ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [1], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: None, ty: Handle( [2], ), }, ExpressionInfo { uniformity: Uniformity { non_uniform_result: Some( [2], ), requirements: UniformityRequirements( 0x0, ), }, ref_count: 1, assignable_global: Some( [1], ), ty: Value( Pointer { base: [2], space: Private, }, ), }, ], sampling: {}, }, ], }