Adapter Dx12 AdapterInfo { name: "Microsoft Basic Render Driver", vendor: 5140, device: 140, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Dx12 } List 0x1c35973b670 buffer transitions 0x1c366ecd600: usage BufferUses(0x0)..BufferUses(COPY_DST) List 0x1c35973b670 buffer transitions 0x1c366ecd600: usage BufferUses(COPY_DST)..BufferUses(COPY_SRC) configuring surface with SurfaceConfiguration { usage: TextureUsages(RENDER_ATTACHMENT), format: Bgra8UnormSrgb, width: 1920, height: 971, 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: 1920, height: 971, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 4, 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 0x1c35973b670 texture transitions 0x1c366f89e20: 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 0x1c35973b670 buffer transitions 0x1c366f8e290: 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 [5] position: Offset MemberDecorate [5] texcoords: Offset MemberDecorate [5] color: Offset Decorate [4] ?: ArrayStride Decorate [3] VertexAttributesBuffer: Block Unknown decoration Block 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: 0x1c366fa7be0 ) 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: false } buf 0: insert BufferUses(0x0)..BufferUses(0x0) Created buffer Valid((1, 1, Dx12)) with BufferDescriptor { label: Some("Bottle buffer"), size: 64, usage: BufferUsages(COPY_SRC | COPY_DST | UNIFORM), mapped_at_creation: false } buf 1: insert BufferUses(0x0)..BufferUses(0x0) thread '' panicked at 'Error in wgpuRenderPipelineGetBindGroupLayout: Error reflecting bind group 0: Validation Error Caused by: Pipeline is invalid ', src\lib.rs:3555:9 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace