Adapter Dx12 AdapterInfo { name: "NVIDIA GeForce RTX 3060 Laptop GPU", vendor: 4318, device: 9504, device_type: DiscreteGpu, driver: "", driver_info: "", backend: Dx12 } List 0x2620a324050 buffer transitions 0x2620a3235a0: usage BufferUses(0x0)..BufferUses(COPY_DST) List 0x2620a324050 buffer transitions 0x2620a3235a0: usage BufferUses(COPY_DST)..BufferUses(COPY_SRC) configuring surface with SurfaceConfiguration { usage: TextureUsages(RENDER_ATTACHMENT), format: Bgra8UnormSrgb, width: 1920, height: 1080, 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: 1080, 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 bottle version: git-e96d2da-dev WebGPU v0.1337035264.0.1329983488 over D3D12 NVIDIA GeForce RTX 3060 Laptop GPU (DiscreteGPU) - driver Generated by 1396920144 version 10400 Capability [2] ExtInstImport [6] MemoryModel [3] EntryPoint [11] Source [3] Name [4] Name [4] MemberName [6] Name [5] MemberName [5] Name [5] Name [5] MemberName [4] MemberName [5] Name [5] Name [4] Decorate [4] ?: ArrayStride MemberDecorate [5] position: Offset Decorate [4] ?: ArrayStride Decorate [3] QuadArray: Block Unknown decoration Block MemberDecorate [5] data: Offset Decorate [4] input-data: Binding Decorate [4] input-data: DescriptorSet Decorate [4] ?: BuiltIn Decorate [4] ?: BuiltIn Decorate [3] Uniforms: Block Unknown decoration Block MemberDecorate [5] mvp: Offset MemberDecorate [5] mvp: MatrixStride MemberDecorate [4] mvp: ColMajor MemberDecorate [5] time: Offset Decorate [4] uniforms: Binding Decorate [4] uniforms: DescriptorSet Decorate [4] ?: BuiltIn Decorate [4] vcolor: Location TypeVoid [2] TypeFunction [3] TypeFloat [3] TypeVector [4] TypeInt [4] Constant [4] TypeArray [4] TypePointer [4] Constant [4] ConstantComposite [5] Constant [4] ConstantComposite [5] ConstantComposite [5] ConstantComposite [5] ConstantComposite [7] TypeVector [4] TypeStruct [3] TypeRuntimeArray [3] TypeStruct [3] TypePointer [4] Variable [4] TypeInt [4] Constant [4] TypePointer [4] TypePointer [4] Variable [4] TypePointer [4] TypePointer [4] Variable [4] TypePointer [4] Constant [4] Constant [4] ConstantComposite [5] TypeMatrix [4] TypeStruct [4] TypePointer [4] Variable [4] TypePointer [4] TypePointer [4] TypePointer [4] ConstantComposite [7] Constant [4] Constant [4] Constant [4] TypePointer [4] Variable [4] Variable [4] ConstantComposite [7] Function [5] Label Variable [4] Store [3] AccessChain [5] looking up expr 25 looking up index expr 27 looking up type 23 Load [4] AccessChain [5] looking up expr 29 looking up index expr 32 looking up type 22 AccessChain [5] looking up expr 34 looking up index expr 27 looking up type 21 Load [4] AccessChain [5] looking up expr 12 looking up index expr 38 looking up type 10 Load [4] VectorShuffle [9] Load [4] FAdd [5] AccessChain [5] looking up expr 51 looking up index expr 27 looking up type 49 AccessChain [5] looking up expr 53 looking up index expr 27 looking up type 48 AccessChain [5] looking up expr 55 looking up index expr 27 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 61 looking up type 48 AccessChain [5] looking up expr 62 looking up index expr 27 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 66 looking up type 48 AccessChain [5] looking up expr 67 looking up index expr 27 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 71 looking up type 48 AccessChain [5] looking up expr 72 looking up index expr 27 looking up type 20 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 76 looking up type 20 CompositeExtract [5] looking up expr 76 looking up type 20 FAdd [5] CompositeExtract [5] looking up expr 76 looking up type 20 CompositeExtract [5] looking up expr 76 looking up type 20 FAdd [5] FAdd [5] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 27 looking up type 48 AccessChain [5] looking up expr 85 looking up index expr 61 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 61 looking up type 48 AccessChain [5] looking up expr 89 looking up index expr 61 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 66 looking up type 48 AccessChain [5] looking up expr 93 looking up index expr 61 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 71 looking up type 48 AccessChain [5] looking up expr 97 looking up index expr 61 looking up type 20 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 101 looking up type 20 CompositeExtract [5] looking up expr 101 looking up type 20 FAdd [5] CompositeExtract [5] looking up expr 101 looking up type 20 CompositeExtract [5] looking up expr 101 looking up type 20 FAdd [5] FAdd [5] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 27 looking up type 48 AccessChain [5] looking up expr 110 looking up index expr 66 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 61 looking up type 48 AccessChain [5] looking up expr 114 looking up index expr 66 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 66 looking up type 48 AccessChain [5] looking up expr 118 looking up index expr 66 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 71 looking up type 48 AccessChain [5] looking up expr 122 looking up index expr 66 looking up type 20 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 126 looking up type 20 CompositeExtract [5] looking up expr 126 looking up type 20 FAdd [5] CompositeExtract [5] looking up expr 126 looking up type 20 CompositeExtract [5] looking up expr 126 looking up type 20 FAdd [5] FAdd [5] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 27 looking up type 48 AccessChain [5] looking up expr 135 looking up index expr 71 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 61 looking up type 48 AccessChain [5] looking up expr 139 looking up index expr 71 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 66 looking up type 48 AccessChain [5] looking up expr 143 looking up index expr 71 looking up type 20 Load [4] CompositeInsert [6] AccessChain [5] looking up expr 53 looking up index expr 71 looking up type 48 AccessChain [5] looking up expr 147 looking up index expr 71 looking up type 20 Load [4] CompositeInsert [6] FMul [5] CompositeExtract [5] looking up expr 151 looking up type 20 CompositeExtract [5] looking up expr 151 looking up type 20 FAdd [5] CompositeExtract [5] looking up expr 151 looking up type 20 CompositeExtract [5] looking up expr 151 looking up type 20 FAdd [5] FAdd [5] CompositeInsert [6] Store [3] Store [3] Return [1] FunctionEnd Patching... var GlobalVariable { name: Some("input-data"), space: Storage { access: LOAD | STORE }, binding: Some(ResourceBinding { group: 0, binding: 0 }), ty: [9], init: None } var GlobalVariable { name: None, space: Private, binding: None, ty: [11], init: None } var GlobalVariable { name: None, space: Private, binding: None, ty: [11], init: None } var GlobalVariable { name: Some("uniforms"), space: Uniform, binding: Some(ResourceBinding { group: 0, binding: 1 }), ty: [18], init: None } var GlobalVariable { name: None, space: Private, binding: None, ty: [6], init: Some([21]) } var GlobalVariable { name: Some("vcolor"), space: Private, binding: None, ty: [6], init: None } var LocalVariable { name: None, ty: [4], init: None } Generated by 1396920144 version 10400 Capability [2] ExtInstImport [6] MemoryModel [3] EntryPoint [7] ExecutionMode [3] Source [3] Name [4] Name [4] Name [4] Decorate [4] vcolor: Location Decorate [4] fcolor: Location TypeVoid [2] TypeFunction [3] TypeFloat [3] TypeVector [4] TypePointer [4] Variable [4] TypePointer [4] Variable [4] Function [5] Label Load [4] Store [3] Return [1] FunctionEnd Patching... var GlobalVariable { name: Some("vcolor"), space: Private, binding: None, ty: [2], init: None } var GlobalVariable { name: Some("fcolor"), space: Private, binding: None, ty: [2], init: None } Creating Root Signature '' Param[0] = views (vis = ShaderStages(NONE | VERTEX), count = 2) Param[1] = special [ RootParameter { visibility: 1, kind: Table( [ DescriptorRange { range_type: 0, num: 1, register_space: 0, base_register: 0, table_offset: 4294967295, }, DescriptorRange { range_type: 2, 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, }, } raw = WeakPtr( ptr: 0x2620a1065b0 ) Naga generated shader for "main" at Vertex: struct NagaConstants { int base_vertex; int base_instance; uint other; }; ConstantBuffer _NagaConstants: register(b1); struct Quad2_ { float4 position; }; struct Uniforms { row_major float4x4 mvp; float time; int _end_pad_0; int _end_pad_1; int _end_pad_2; }; struct type_20 { float4 member : SV_Position; float4 member_1 : LOC0; }; typedef float2 ret_Constructarray4_float2_[4]; ret_Constructarray4_float2_ Constructarray4_float2_(float2 arg0, float2 arg1, float2 arg2, float2 arg3) { float2 ret[4] = { arg0, arg1, arg2, arg3 }; return ret; } RWByteAddressBuffer inputdata : register(u0); static int global = (int)0; static int global_1 = (int)0; cbuffer uniforms : register(b0) { Uniforms uniforms; } static float4 global_2 = float4(0.0, 0.0, 0.0, 1.0); static float4 vcolor = (float4)0; struct VertexOutput_main { float4 member_1 : LOC0; float4 member : SV_Position; }; void vert() { float2 local[4] = (float2[4])0; local = Constructarray4_float2_(float2(-0.5, -0.5), float2(0.5, -0.5), float2(-0.5, 0.5), float2(0.5, 0.5)); int _expr29 = global; int _expr32 = global_1; float2 _expr34 = local[_expr32]; float4 _expr40 = asfloat(inputdata.Load4(0+_expr29*16+0)); float4 _expr41 = (_expr40 + float4(_expr34.x, _expr34.y, float2(0.0, 1.0).x, float2(0.0, 1.0).y)); float _expr45 = uniforms.mvp[0][0]; float unnamed = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr50 = float4(_expr45, 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 _expr53 = uniforms.mvp[1][0]; float unnamed_1 = _expr50.y; float4 _expr58 = float4(_expr50.x, _expr53, _expr50.z, _expr50.w); float _expr61 = uniforms.mvp[2][0]; float unnamed_2 = _expr58.z; float4 _expr66 = float4(_expr58.x, _expr58.y, _expr61, _expr58.w); float _expr69 = uniforms.mvp[3][0]; float unnamed_3 = _expr66.w; float4 _expr75 = (float4(_expr66.x, _expr66.y, _expr66.z, _expr69) * _expr41); float unnamed_4 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr87 = float4(((_expr75.x + _expr75.y) + (_expr75.z + _expr75.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 _expr90 = uniforms.mvp[0][1]; float unnamed_5 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr95 = float4(_expr90, 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 _expr98 = uniforms.mvp[1][1]; float unnamed_6 = _expr95.y; float4 _expr103 = float4(_expr95.x, _expr98, _expr95.z, _expr95.w); float _expr106 = uniforms.mvp[2][1]; float unnamed_7 = _expr103.z; float4 _expr111 = float4(_expr103.x, _expr103.y, _expr106, _expr103.w); float _expr114 = uniforms.mvp[3][1]; float unnamed_8 = _expr111.w; float4 _expr120 = (float4(_expr111.x, _expr111.y, _expr111.z, _expr114) * _expr41); float unnamed_9 = _expr87.y; float4 _expr132 = float4(_expr87.x, ((_expr120.x + _expr120.y) + (_expr120.z + _expr120.w)), _expr87.z, _expr87.w); float _expr135 = uniforms.mvp[0][2]; float unnamed_10 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr140 = float4(_expr135, 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 _expr143 = uniforms.mvp[1][2]; float unnamed_11 = _expr140.y; float4 _expr148 = float4(_expr140.x, _expr143, _expr140.z, _expr140.w); float _expr151 = uniforms.mvp[2][2]; float unnamed_12 = _expr148.z; float4 _expr156 = float4(_expr148.x, _expr148.y, _expr151, _expr148.w); float _expr159 = uniforms.mvp[3][2]; float unnamed_13 = _expr156.w; float4 _expr165 = (float4(_expr156.x, _expr156.y, _expr156.z, _expr159) * _expr41); float unnamed_14 = _expr132.z; float4 _expr177 = float4(_expr132.x, _expr132.y, ((_expr165.x + _expr165.y) + (_expr165.z + _expr165.w)), _expr132.w); float _expr180 = uniforms.mvp[0][3]; float unnamed_15 = float4(0.0, 0.0, 0.0, 0.0).x; float4 _expr185 = float4(_expr180, 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 _expr188 = uniforms.mvp[1][3]; float unnamed_16 = _expr185.y; float4 _expr193 = float4(_expr185.x, _expr188, _expr185.z, _expr185.w); float _expr196 = uniforms.mvp[2][3]; float unnamed_17 = _expr193.z; float4 _expr201 = float4(_expr193.x, _expr193.y, _expr196, _expr193.w); float _expr204 = uniforms.mvp[3][3]; float unnamed_18 = _expr201.w; float4 _expr210 = (float4(_expr201.x, _expr201.y, _expr201.z, _expr204) * _expr41); float unnamed_19 = _expr177.w; global_2 = float4(_expr177.x, _expr177.y, _expr177.z, ((_expr210.x + _expr210.y) + (_expr210.z + _expr210.w))); vcolor = float4(1.0, 1.0, 1.0, 1.0); return; } type_20 Constructtype_20(float4 arg0, float4 arg1) { type_20 ret = (type_20)0; ret.member = arg0; ret.member_1 = arg1; return ret; } VertexOutput_main main(uint param : SV_InstanceID, uint param_1 : SV_VertexID) { global = int((_NagaConstants.base_instance + param)); global_1 = int((_NagaConstants.base_vertex + param_1)); vert(); float4 _expr8 = global_2; float4 _expr9 = vcolor; const type_20 type_20_ = Constructtype_20(_expr8, _expr