0001 OpCapability Shader 0002 OpMemoryModel Logical Simple 0003 OpEntryPoint Vertex %1 "main" %12 %18 %25 %151 %154 %156 0004 OpName %6 "VertexAttributes" 0005 OpMemberName %6 0 "position" 0006 OpMemberName %6 1 "texcoords" 0007 OpMemberName %6 2 "color" 0008 OpName %5 "VertexAttributesBuffer" 0009 OpMemberName %5 0 "data" 0010 OpName %12 "input-data" 0011 OpName %18 "VertexIndex" 0012 OpName %22 "PlonkUniforms" 0013 OpMemberName %22 0 "mvp" 0014 OpName %25 "uniforms" 0015 OpName %151 "Position" 0016 OpName %154 "vtexcoords" 0017 OpName %156 "vcolor" 0018 OpDecorate %6 Block 0019 OpMemberDecorate %6 0 NonWritable 0020 OpMemberDecorate %6 0 Offset 0 0021 OpMemberDecorate %6 1 NonWritable 0022 OpMemberDecorate %6 1 Offset 8 0023 OpMemberDecorate %6 2 NonWritable 0024 OpMemberDecorate %6 2 Offset 16 0025 OpDecorate %10 ArrayStride 32 0026 OpDecorate %5 Block 0027 OpMemberDecorate %5 0 NonWritable 0028 OpMemberDecorate %5 0 Offset 0 0029 OpDecorate %12 Binding 1 0030 OpDecorate %12 DescriptorSet 0 0031 OpDecorate %18 BuiltIn VertexIndex 0032 OpDecorate %22 Block 0033 OpMemberDecorate %22 0 Offset 0 0034 OpMemberDecorate %22 0 MatrixStride 16 0035 OpMemberDecorate %22 0 ColMajor 0036 OpDecorate %25 Binding 0 0037 OpDecorate %25 DescriptorSet 0 0038 OpDecorate %151 BuiltIn Position 0039 OpDecorate %154 Location 0 0040 OpDecorate %156 Location 1 0041 %2 = OpTypeVoid 0042 %3 = OpTypeFunction %2 0043 %7 = OpTypeFloat 32 0044 %8 = OpTypeVector %7 2 0045 %9 = OpTypeVector %7 4 0046 %6 = OpTypeStruct %8 %8 %9 0047 %10 = OpTypeRuntimeArray %6 0048 %5 = OpTypeStruct %10 0049 %11 = OpTypePointer StorageBuffer %5 0050 %13 = OpTypePointer StorageBuffer %10 0051 %14 = OpTypeInt 32 1 0052 %15 = OpConstant %14 0x00000000 0053 %17 = OpTypePointer Input %14 0054 %20 = OpTypePointer StorageBuffer %6 0055 %23 = OpTypeMatrix %9 4 0056 %22 = OpTypeStruct %23 0057 %24 = OpTypePointer Uniform %22 0058 %26 = OpTypePointer Uniform %23 0059 %28 = OpTypePointer StorageBuffer %8 0060 %30 = OpTypePointer StorageBuffer %7 0061 %32 = OpConstant %14 0x00000001 0062 %35 = OpConstant %7 0x0.000000p+0 0063 %36 = OpConstantComposite %9 %35 %35 %35 %35 0064 %40 = OpConstant %14 0x00000002 0065 %42 = OpConstant %7 0x1.000000p+0 0066 %43 = OpConstant %14 0x00000003 0067 %45 = OpTypePointer Uniform %9 0068 %47 = OpTypePointer Uniform %7 0069 %148 = OpTypePointer StorageBuffer %9 0070 %150 = OpTypePointer Output %9 0071 %153 = OpTypePointer Output %8 0072 %12 = OpVariable %11 StorageBuffer 0073 %18 = OpVariable %17 Input 0074 %25 = OpVariable %24 Uniform 0075 %151 = OpVariable %150 Output 0076 %154 = OpVariable %153 Output 0077 %156 = OpVariable %150 Output 0078 %1 = OpFunction %2 None %3 0079 %4 = OpLabel ; entry label 0080 %16 = OpAccessChain %13 %12 %15 0081 %19 = OpLoad %14 %18 0082 %21 = OpAccessChain %20 %16 %19 0083 %27 = OpAccessChain %26 %25 %15 0084 %29 = OpAccessChain %28 %21 %15 0085 %31 = OpAccessChain %30 %29 %15 0086 %33 = OpAccessChain %30 %29 %32 0087 %34 = OpLoad %7 %31 0088 %37 = OpCompositeInsert %9 %34 %36 0 0089 %38 = OpLoad %7 %33 0090 %39 = OpCompositeInsert %9 %38 %37 1 0091 %41 = OpCompositeInsert %9 %35 %39 2 0092 %44 = OpCompositeInsert %9 %42 %41 3 0093 %46 = OpAccessChain %45 %27 %15 0094 %48 = OpAccessChain %47 %46 %15 0095 %49 = OpLoad %7 %48 0096 %50 = OpCompositeInsert %9 %49 %36 0 0097 %51 = OpAccessChain %45 %27 %32 0098 %52 = OpAccessChain %47 %51 %15 0099 %53 = OpLoad %7 %52 0100 %54 = OpCompositeInsert %9 %53 %50 1 0101 %55 = OpAccessChain %45 %27 %40 0102 %56 = OpAccessChain %47 %55 %15 0103 %57 = OpLoad %7 %56 0104 %58 = OpCompositeInsert %9 %57 %54 2 0105 %59 = OpAccessChain %45 %27 %43 0106 %60 = OpAccessChain %47 %59 %15 0107 %61 = OpLoad %7 %60 0108 %62 = OpCompositeInsert %9 %61 %58 3 0109 %63 = OpFMul %9 %62 %44 0110 %64 = OpCompositeExtract %7 %63 0 0111 %65 = OpCompositeExtract %7 %63 1 0112 %66 = OpFAdd %7 %64 %65 0113 %67 = OpCompositeExtract %7 %63 2 0114 %68 = OpCompositeExtract %7 %63 3 0115 %69 = OpFAdd %7 %67 %68 0116 %70 = OpFAdd %7 %66 %69 0117 %71 = OpCompositeInsert %9 %70 %36 0 0118 %72 = OpAccessChain %45 %27 %15 0119 %73 = OpAccessChain %47 %72 %32 0120 %74 = OpLoad %7 %73 0121 %75 = OpCompositeInsert %9 %74 %36 0 0122 %76 = OpAccessChain %45 %27 %32 0123 %77 = OpAccessChain %47 %76 %32 0124 %78 = OpLoad %7 %77 0125 %79 = OpCompositeInsert %9 %78 %75 1 0126 %80 = OpAccessChain %45 %27 %40 0127 %81 = OpAccessChain %47 %80 %32 0128 %82 = OpLoad %7 %81 0129 %83 = OpCompositeInsert %9 %82 %79 2 0130 %84 = OpAccessChain %45 %27 %43 0131 %85 = OpAccessChain %47 %84 %32 0132 %86 = OpLoad %7 %85 0133 %87 = OpCompositeInsert %9 %86 %83 3 0134 %88 = OpFMul %9 %87 %44 0135 %89 = OpCompositeExtract %7 %88 0 0136 %90 = OpCompositeExtract %7 %88 1 0137 %91 = OpFAdd %7 %89 %90 0138 %92 = OpCompositeExtract %7 %88 2 0139 %93 = OpCompositeExtract %7 %88 3 0140 %94 = OpFAdd %7 %92 %93 0141 %95 = OpFAdd %7 %91 %94 0142 %96 = OpCompositeInsert %9 %95 %71 1 0143 %97 = OpAccessChain %45 %27 %15 0144 %98 = OpAccessChain %47 %97 %40 0145 %99 = OpLoad %7 %98 0146 %100 = OpCompositeInsert %9 %99 %36 0 0147 %101 = OpAccessChain %45 %27 %32 0148 %102 = OpAccessChain %47 %101 %40 0149 %103 = OpLoad %7 %102 0150 %104 = OpCompositeInsert %9 %103 %100 1 0151 %105 = OpAccessChain %45 %27 %40 0152 %106 = OpAccessChain %47 %105 %40 0153 %107 = OpLoad %7 %106 0154 %108 = OpCompositeInsert %9 %107 %104 2 0155 %109 = OpAccessChain %45 %27 %43 0156 %110 = OpAccessChain %47 %109 %40 0157 %111 = OpLoad %7 %110 0158 %112 = OpCompositeInsert %9 %111 %108 3 0159 %113 = OpFMul %9 %112 %44 0160 %114 = OpCompositeExtract %7 %113 0 0161 %115 = OpCompositeExtract %7 %113 1 0162 %116 = OpFAdd %7 %114 %115 0163 %117 = OpCompositeExtract %7 %113 2 0164 %118 = OpCompositeExtract %7 %113 3 0165 %119 = OpFAdd %7 %117 %118 0166 %120 = OpFAdd %7 %116 %119 0167 %121 = OpCompositeInsert %9 %120 %96 2 0168 %122 = OpAccessChain %45 %27 %15 0169 %123 = OpAccessChain %47 %122 %43 0170 %124 = OpLoad %7 %123 0171 %125 = OpCompositeInsert %9 %124 %36 0 0172 %126 = OpAccessChain %45 %27 %32 0173 %127 = OpAccessChain %47 %126 %43 0174 %128 = OpLoad %7 %127 0175 %129 = OpCompositeInsert %9 %128 %125 1 0176 %130 = OpAccessChain %45 %27 %40 0177 %131 = OpAccessChain %47 %130 %43 0178 %132 = OpLoad %7 %131 0179 %133 = OpCompositeInsert %9 %132 %129 2 0180 %134 = OpAccessChain %45 %27 %43 0181 %135 = OpAccessChain %47 %134 %43 0182 %136 = OpLoad %7 %135 0183 %137 = OpCompositeInsert %9 %136 %133 3 0184 %138 = OpFMul %9 %137 %44 0185 %139 = OpCompositeExtract %7 %138 0 0186 %140 = OpCompositeExtract %7 %138 1 0187 %141 = OpFAdd %7 %139 %140 0188 %142 = OpCompositeExtract %7 %138 2 0189 %143 = OpCompositeExtract %7 %138 3 0190 %144 = OpFAdd %7 %142 %143 0191 %145 = OpFAdd %7 %141 %144 0192 %146 = OpCompositeInsert %9 %145 %121 3 0193 %147 = OpAccessChain %28 %21 %32 0194 %149 = OpAccessChain %148 %21 %40 0195 OpStore %151 %146 0196 %152 = OpLoad %8 %147 0197 OpStore %154 %152 0198 %155 = OpLoad %9 %149 0199 OpStore %156 %155 0200 OpReturn 0201 OpFunctionEnd Adapter Dx12 AdapterInfo { name: "Microsoft Basic Render Driver", vendor: 5140, device: 140, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Dx12 } List 0x1ff6d56b440 buffer transitions 0x1ff6d56afe0: usage BufferUses(0x0)..BufferUses(COPY_DST) List 0x1ff6d56b440 buffer transitions 0x1ff6d56afe0: usage BufferUses(COPY_DST)..BufferUses(COPY_SRC) configuring surface with SurfaceConfiguration { usage: TextureUsages(RENDER_ATTACHMENT), format: Bgra8UnormSrgb, width: 3840, height: 1943, present_mode: Fifo, alpha_mode: Auto, view_formats: [] } Automatically choosing alpha mode by rule Auto. Chose Opaque Created texture Valid((0, 1, Dx12)) with TextureDescriptor { label: Some("Bottle Texture"), size: Extent3d { width: 3840, height: 1943, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Bgra8UnormSrgb, usage: TextureUsages(COPY_DST | TEXTURE_BINDING | RENDER_ATTACHMENT), view_formats: [] } tex 0: insert start TextureUses(UNINITIALIZED) Create view for texture (0, 1, Dx12) filters usages to TextureUses(RESOURCE | COLOR_TARGET) texture (0, 1, Dx12) is dropped Created texture Valid((1, 1, Dx12)) with TextureDescriptor { label: Some("Bottle Texture"), size: Extent3d { width: 1, height: 1, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: TextureUsages(COPY_DST | TEXTURE_BINDING), view_formats: [] } tex 1: insert start TextureUses(UNINITIALIZED) tex 1: transition simple TextureUses(UNINITIALIZED) -> TextureUses(COPY_DST) List 0x1ff6d56b440 texture transitions 0x1ff6d62f490: usage TextureUses(UNINITIALIZED)..TextureUses(COPY_DST), range ImageSubresourceRange { aspect: All, base_mip_level: 0, mip_level_count: Some(1), base_array_layer: 0, array_layer_count: Some(1) } List 0x1ff6d56b440 buffer transitions 0x1ff6d62fba0: usage BufferUses(MAP_WRITE)..BufferUses(COPY_SRC) Create view for texture (1, 1, Dx12) filters usages to TextureUses(RESOURCE) Generated by 458752 version 10400 Capability [2] MemoryModel [3] EntryPoint [11] Name [7] MemberName [6] MemberName [6] MemberName [5] Name [8] MemberName [5] Name [5] Name [5] Name [6] MemberName [4] Name [5] Name [5] Name [5] Name [4] Decorate [3] VertexAttributes: Block Unknown decoration Block MemberDecorate [4] position: NonWritable MemberDecorate [5] position: Offset MemberDecorate [4] texcoords: NonWritable MemberDecorate [5] texcoords: Offset MemberDecorate [4] color: NonWritable MemberDecorate [5] color: Offset Decorate [4] ?: ArrayStride Decorate [3] VertexAttributesBuffer: Block Unknown decoration Block MemberDecorate [4] data: NonWritable MemberDecorate [5] data: Offset Decorate [4] input-data: Binding Decorate [4] input-data: DescriptorSet Decorate [4] VertexIndex: BuiltIn Decorate [3] PlonkUniforms: Block Unknown decoration Block MemberDecorate [5] mvp: Offset MemberDecorate [5] mvp: MatrixStride MemberDecorate [4] mvp: ColMajor Decorate [4] uniforms: Binding Decorate [4] uniforms: DescriptorSet Decorate [4] Position: BuiltIn Decorate [4] vtexcoords: Location Decorate [4] vcolor: Location TypeVoid [2] TypeFunction [3] TypeFloat [3] TypeVector [4] TypeVector [4] TypeStruct [5] TypeRuntimeArray [3] TypeStruct [3] TypePointer [4] TypePointer [4] TypeInt [4] Constant [4] TypePointer [4] TypePointer [4] TypeMatrix [4] TypeStruct [3] TypePointer [4] TypePointer [4] TypePointer [4] TypePointer [4] Constant [4] Constant [4] ConstantComposite [7] Constant [4] Constant [4] Constant [4] TypePointer [4] TypePointer [4] TypePointer [4] TypePointer [4] TypePointer [4] Variable [4] Variable [4] Variable [4] Variable [4] Variable [4] Variable [4] Function [5] Label AccessChain [5] looking up expr 2 looking up index expr 20 looking up type 9 Load [4] AccessChain [5] looking up expr 40 looking up index expr 41 looking up type 11 AccessChain [5] looking up expr 4 looking up index expr 20 looking up type 10 AccessChain [5] looking up expr 42 looking up index expr 20 looking up type 8 AccessChain [5] looking up expr 44 looking up index expr 20 looking up type 15 AccessChain [5] looking up expr 44 looking up index expr 28 looking up type 15 Load [4] CompositeInsert [6] Load [4] CompositeInsert [6] CompositeInsert [6] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 20 looking up type 23 AccessChain [5] looking up expr 53 looking up index expr 20 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 28 looking up type 23 AccessChain [5] looking up expr 57 looking up index expr 20 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 31 looking up type 23 AccessChain [5] looking up expr 61 looking up index expr 20 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 33 looking up type 23 AccessChain [5] looking up expr 65 looking up index expr 20 looking up type 16 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 69 looking up type 16 CompositeExtract [5] looking up expr 69 looking up type 16 FAdd [5] CompositeExtract [5] looking up expr 69 looking up type 16 CompositeExtract [5] looking up expr 69 looking up type 16 FAdd [5] FAdd [5] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 20 looking up type 23 AccessChain [5] looking up expr 78 looking up index expr 28 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 28 looking up type 23 AccessChain [5] looking up expr 82 looking up index expr 28 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 31 looking up type 23 AccessChain [5] looking up expr 86 looking up index expr 28 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 33 looking up type 23 AccessChain [5] looking up expr 90 looking up index expr 28 looking up type 16 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 94 looking up type 16 CompositeExtract [5] looking up expr 94 looking up type 16 FAdd [5] CompositeExtract [5] looking up expr 94 looking up type 16 CompositeExtract [5] looking up expr 94 looking up type 16 FAdd [5] FAdd [5] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 20 looking up type 23 AccessChain [5] looking up expr 103 looking up index expr 31 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 28 looking up type 23 AccessChain [5] looking up expr 107 looking up index expr 31 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 31 looking up type 23 AccessChain [5] looking up expr 111 looking up index expr 31 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 33 looking up type 23 AccessChain [5] looking up expr 115 looking up index expr 31 looking up type 16 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 119 looking up type 16 CompositeExtract [5] looking up expr 119 looking up type 16 FAdd [5] CompositeExtract [5] looking up expr 119 looking up type 16 CompositeExtract [5] looking up expr 119 looking up type 16 FAdd [5] FAdd [5] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 20 looking up type 23 AccessChain [5] looking up expr 128 looking up index expr 33 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 28 looking up type 23 AccessChain [5] looking up expr 132 looking up index expr 33 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 31 looking up type 23 AccessChain [5] looking up expr 136 looking up index expr 33 looking up type 16 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 43 looking up index expr 33 looking up type 23 AccessChain [5] looking up expr 140 looking up index expr 33 looking up type 16 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 144 looking up type 16 CompositeExtract [5] looking up expr 144 looking up type 16 FAdd [5] CompositeExtract [5] looking up expr 144 looking up type 16 CompositeExtract [5] looking up expr 144 looking up type 16 FAdd [5] FAdd [5] CompositeInsert [6] AccessChain [5] looking up expr 42 looking up index expr 28 looking up type 8 AccessChain [5] looking up expr 42 looking up index expr 31 looking up type 8 Store [3] Load [4] Store [3] Load [4] Store [3] Return [1] FunctionEnd Patching... var GlobalVariable { name: Some("input-data"), space: Storage { access: LOAD | STORE }, binding: Some(ResourceBinding { group: 0, binding: 1 }), ty: [6], init: None } var GlobalVariable { name: Some("VertexIndex"), space: Private, binding: None, ty: [9], init: None } var GlobalVariable { name: Some("uniforms"), space: Uniform, binding: Some(ResourceBinding { group: 0, binding: 0 }), ty: [13], init: None } var GlobalVariable { name: Some("Position"), space: Private, binding: None, ty: [3], init: Some([12]) } var GlobalVariable { name: Some("vtexcoords"), space: Private, binding: None, ty: [2], init: None } var GlobalVariable { name: Some("vcolor"), space: Private, binding: None, ty: [3], init: None } Generated by 458752 version 10400 Capability [2] Capability [2] MemoryModel [3] EntryPoint [10] ExecutionMode [3] Name [3] Name [3] Name [5] Name [4] Name [4] Decorate [4] t: Binding Decorate [4] t: DescriptorSet Decorate [4] s: Binding Decorate [4] s: DescriptorSet Decorate [4] vtexcoords: Location Decorate [4] vcolor: Location Decorate [4] fcolor: Location TypeVoid [2] TypeFunction [3] TypeFloat [3] TypeImage [9] TypePointer [4] TypeSampler [2] TypePointer [4] TypeSampledImage [3] TypeVector [4] TypePointer [4] TypeVector [4] TypePointer [4] TypePointer [4] Variable [4] tracking [1] for sampling properties Variable [4] tracking [2] for sampling properties Variable [4] Variable [4] Variable [4] Function [5] Label Load [4] Load [4] SampledImage [5] Load [4] ImageSampleImplicitLod [5] Load [4] FMul [5] Store [3] Return [1] FunctionEnd Patching... var GlobalVariable { name: Some("t"), space: Handle, binding: Some(ResourceBinding { group: 1, binding: 1 }), ty: [3], init: None } var GlobalVariable { name: Some("s"), space: Handle, binding: Some(ResourceBinding { group: 1, binding: 0 }), ty: [4], init: None } var GlobalVariable { name: Some("vtexcoords"), space: Private, binding: None, ty: [2], init: None } var GlobalVariable { name: Some("vcolor"), space: Private, binding: None, ty: [6], init: None } var GlobalVariable { name: Some("fcolor"), space: Private, binding: None, ty: [6], init: None } Creating Root Signature '' Param[0] = views (vis = ShaderStages(VERTEX), count = 2) Param[1] = views (vis = ShaderStages(FRAGMENT), count = 1) Param[2] = samplers (vis = ShaderStages(FRAGMENT), count = 1) Param[3] = special [ RootParameter { visibility: 1, kind: Table( [ DescriptorRange { range_type: 2, num: 1, register_space: 0, base_register: 0, table_offset: 4294967295, }, DescriptorRange { range_type: 0, num: 1, register_space: 0, base_register: 0, table_offset: 4294967295, }, ], ), }, RootParameter { visibility: 5, kind: Table( [ DescriptorRange { range_type: 0, num: 1, register_space: 0, base_register: 1, table_offset: 4294967295, }, ], ), }, RootParameter { visibility: 5, kind: Table( [ DescriptorRange { range_type: 3, num: 1, register_space: 0, base_register: 0, table_offset: 4294967295, }, ], ), }, RootParameter { visibility: 0, kind: Constants { binding: Binding { space: 0, register: 1, }, num: 3, }, }, ] Bindings { ResourceBinding { group: 0, binding: 0, }: BindTarget { space: 0, register: 0, binding_array_size: None, }, ResourceBinding { group: 0, binding: 1, }: BindTarget { space: 0, register: 0, binding_array_size: None, }, ResourceBinding { group: 1, binding: 0, }: BindTarget { space: 0, register: 0, binding_array_size: None, }, ResourceBinding { group: 1, binding: 1, }: BindTarget { space: 0, register: 1, binding_array_size: None, }, } raw = WeakPtr( ptr: 0x1ff6d647790 ) Naga generated shader for "main" at Vertex: struct NagaConstants { int base_vertex; int base_instance; uint other; }; ConstantBuffer _NagaConstants: register(b1); struct VertexAttributes { float2 position; float2 texcoords; float4 color; }; struct PlonkUniforms { row_major float4x4 mvp; }; struct type_20 { float4 member : SV_Position; float2 member_1 : LOC0; float4 member_2 : LOC1; }; RWByteAddressBuffer inputdata : register(u0); static int VertexIndex_1 = (int)0; cbuffer uniforms : register(b0) { PlonkUniforms uniforms; } static float4 Position = float4(0.0, 0.0, 0.0, 1.0); static float2 vtexcoords = (float2)0; static float4 vcolor = (float4)0; struct VertexOutput_main { float2 member_1 : LOC0; float4 member_2 : LOC1; float4 member : SV_Position; }; void function() { int _expr18 = VertexIndex_1; float _expr24 = asfloat(inputdata.Load(0*4+0+_expr18*32+0)); float unnamed = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr29 = float4(_expr24, float4(0.0, 0.0, 0.0, 0.0).y, float4(0.0, 0.0, 0.0, 0.0).z, float4(0.0, 0.0, 0.0, 0.0).w); float _expr30 = asfloat(inputdata.Load(1*4+0+_expr18*32+0)); float unnamed_1 = _expr29.y; float4 _expr35 = float4(_expr29.x, _expr30, _expr29.z, _expr29.w); float unnamed_2 = _expr35.z; float4 _expr40 = float4(_expr35.x, _expr35.y, 0.0, _expr35.w); float unnamed_3 = _expr40.w; float4 _expr45 = float4(_expr40.x, _expr40.y, _expr40.z, 1.0); float _expr48 = uniforms.mvp[0][0]; float unnamed_4 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr53 = float4(_expr48, float4(0.0, 0.0, 0.0, 0.0).y, float4(0.0, 0.0, 0.0, 0.0).z, float4(0.0, 0.0, 0.0, 0.0).w); float _expr56 = uniforms.mvp[1][0]; float unnamed_5 = _expr53.y; float4 _expr61 = float4(_expr53.x, _expr56, _expr53.z, _expr53.w); float _expr64 = uniforms.mvp[2][0]; float unnamed_6 = _expr61.z; float4 _expr69 = float4(_expr61.x, _expr61.y, _expr64, _expr61.w); float _expr72 = uniforms.mvp[3][0]; float unnamed_7 = _expr69.w; float4 _expr78 = (float4(_expr69.x, _expr69.y, _expr69.z, _expr72) * _expr45); float unnamed_8 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr90 = float4(((_expr78.x + _expr78.y) + (_expr78.z + _expr78.w)), float4(0.0, 0.0, 0.0, 0.0).y, float4(0.0, 0.0, 0.0, 0.0).z, float4(0.0, 0.0, 0.0, 0.0).w); float _expr93 = uniforms.mvp[0][1]; float unnamed_9 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr98 = float4(_expr93, float4(0.0, 0.0, 0.0, 0.0).y, float4(0.0, 0.0, 0.0, 0.0).z, float4(0.0, 0.0, 0.0, 0.0).w); float _expr101 = uniforms.mvp[1][1]; float unnamed_10 = _expr98.y; float4 _expr106 = float4(_expr98.x, _expr101, _expr98.z, _expr98.w); float _expr109 = uniforms.mvp[2][1]; float unnamed_11 = _expr106.z; float4 _expr114 = float4(_expr106.x, _expr106.y, _expr109, _expr106.w); float _expr117 = uniforms.mvp[3][1]; float unnamed_12 = _expr114.w; float4 _expr123 = (float4(_expr114.x, _expr114.y, _expr114.z, _expr117) * _expr45); float unnamed_13 = _expr90.y; float4 _expr135 = float4(_expr90.x, ((_expr123.x + _expr123.y) + (_expr123.z + _expr123.w)), _expr90.z, _expr90.w); float _expr138 = uniforms.mvp[0][2]; float unnamed_14 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr143 = float4(_expr138, float4(0.0, 0.0, 0.0, 0.0).y, float4(0.0, 0.0, 0.0, 0.0).z, float4(0.0, 0.0, 0.0, 0.0).w); float _expr146 = uniforms.mvp[1][2]; float unnamed_15 = _expr143.y; float4 _expr151 = float4(_expr143.x, _expr146, _expr143.z, _expr143.w); float _expr154 = uniforms.mvp[2][2]; float unnamed_16 = _expr151.z; float4 _expr159 = float4(_expr151.x, _expr151.y, _expr154, _expr151.w); float _expr162 = uniforms.mvp[3][2]; float unnamed_17 = _expr159.w; float4 _expr168 = (float4(_expr159.x, _expr159.y, _expr159.z, _expr162) * _expr45); float unnamed_18 = _expr135.z; float4 _expr180 = float4(_expr135.x, _expr135.y, ((_expr168.x + _expr168.y) + (_expr168.z + _expr168.w)), _expr135.w); float _expr183 = uniforms.mvp[0][3]; float unnamed_19 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr188 = float4(_expr183, float4(0.0, 0.0, 0.0, 0.0).y, float4(0.0, 0.0, 0.0, 0.0).z, float4(0.0, 0.0, 0.0, 0.0).w); float _expr191 = uniforms.mvp[1][3]; float unnamed_20 = _expr188.y; float4 _expr196 = float4(_expr188.x, _expr191, _expr188.z, _expr188.w); float _expr199 = uniforms.mvp[2][3]; float unnamed_21 = _expr196.z; float4 _expr204 = float4(_expr196.x, _expr196.y, _expr199, _expr196.w); float _expr207 = uniforms.mvp[3][3]; float unnamed_22 = _expr204.w; float4 _expr213 = (float4(_expr204.x, _expr204.y, _expr204.z, _expr207) * _expr45); float unnamed_23 = _expr180.w; Position = float4(_expr180.x, _expr180.y, _expr180.z, ((_expr213.x + _expr213.y) + (_expr213.z + _expr213.w))); float2 _expr228 = asfloat(inputdata.Load2(8+_expr18*32+0)); vtexcoords = _expr228; float4 _expr229 = asfloat(inputdata.Load4(16+_expr18*32+0)); vcolor = _expr229; return; } type_20 Constructtype_20(float4 arg0, float2 arg1, float4 arg2) { type_20 ret = (type_20)0; ret.member = arg0; ret.member_1 = arg1; ret.member_2 = arg2; return ret; } VertexOutput_main main(uint VertexIndex : SV_VertexID) { VertexIndex_1 = int((_NagaConstants.base_vertex + VertexIndex)); function(); float4 _expr6 = Position; float2 _expr7 = vtexcoords; float4 _expr8 = vcolor; const type_20 type_20_ = Constructtype_20(_expr6, _expr7, _expr8); const VertexOutput_main type_20_1 = { type_20_.member_1, type_20_.member_2, type_20_.member }; return type_20_1; } Naga generated shader for "main" at Fragment: struct NagaConstants { int base_vertex; int base_instance; uint other; }; ConstantBuffer _NagaConstants: register(b1); Texture2D t : register(t1); SamplerState s : register(s0); static float2 vtexcoords_1 = (float2)0; static float4 vcolor_1 = (float4)0; static float4 fcolor = (float4)0; struct FragmentInput_main { float2 vtexcoords_2 : LOC0; float4 vcolor_2 : LOC1; }; void function() { float2 _expr9 = vtexcoords_1; float4 _expr10 = t.Sample(s, _expr9); float4 _expr11 = vcolor_1; fcolor = (_expr10 * _expr11); return; } float4 main(FragmentInput_main fragmentinput_main) : SV_Target0 { float2 vtexcoords = fragmentinput_main.vtexcoords_2; float4 vcolor = fragmentinput_main.vcolor_2; vtexcoords_1 = vtexcoords; vcolor_1 = vcolor; function(); float4 _expr5 = fcolor; return _expr5; } ID3D12Device::CreateGraphicsPipelineState: Root Signature doesn't match Vertex Shader: Shader UAV descriptor range (BaseShaderRegister=0, NumDescriptors=1, RegisterSpace=0) is not fully bound in root signature [ STATE_CREATION ERROR #688: CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH] Shader translation error for stage ShaderStages(VERTEX | FRAGMENT): invalid argument Please report it to https://github.com/gfx-rs/naga Validation Error Caused by: In wgpuDeviceCreateRenderPipeline note: label = `Bottle Render Pipeline` Internal error in ShaderStages(VERTEX | FRAGMENT) shader: invalid argument shader module (1, 1, Dx12) is dropped shader module (0, 1, Dx12) is dropped Created buffer Valid((0, 1, Dx12)) with BufferDescriptor { label: Some("Bottle buffer"), size: 131072, usage: BufferUsages(COPY_SRC | COPY_DST | STORAGE), mapped_at_creation: fal-- eo -- bootstrap . demo.gpu.buffers