Instance version: 0x4030ec Enabling device properties2 Adapter Vulkan AdapterInfo { name: "NVIDIA GeForce RTX 3060 Laptop GPU", vendor: 4318, device: 9504, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "528.96", backend: Vulkan } Supported extensions: ["VK_KHR_swapchain", "VK_KHR_swapchain_mutable_format", "VK_EXT_robustness2"] 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, Vulkan)) 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, Vulkan) filters usages to TextureUses(RESOURCE | COLOR_TARGET) texture (0, 1, Vulkan) is dropped bottle version: git-e96d2da-dev WebGPU v0.1337035264.0.1329983488 over Vulkan NVIDIA GeForce RTX 3060 Laptop GPU (DiscreteGPU) - driver 528.96 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 } Created render pipeline Valid((0, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("Bottle Render Pipeline"), layout: None, vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "main" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask: 4294967295, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: SrcAlpha, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: ColorWrites(RED | GREEN | BLUE | ALPHA) })] }), multiview: None } Created buffer Valid((0, 1, Vulkan)) with BufferDescriptor { label: Some("Bottle buffer"), size: 67108864, usage: BufferUsages(COPY_SRC | COPY_DST | STORAGE), mapped_at_creation: false } buf 0: insert BufferUses(0x0)..BufferUses(0x0) Created buffer Valid((1, 1, Vulkan)) with BufferDescriptor { label: Some("Bottle buffer"), size: 24, usage: BufferUsages(COPY_SRC | COPY_DST | INDEX), mapped_at_creation: false } buf 1: insert BufferUses(0x0)..BufferUses(0x0) Created buffer Valid((2, 1, Vulkan)) with BufferDescriptor { label: Some("Bottle buffer"), size: 80, usage: BufferUsages(COPY_SRC | COPY_DST | UNIFORM), mapped_at_creation: false } buf 2: insert BufferUses(0x0)..BufferUses(0x0) buf 0: transition BufferUses(0x0) -> BufferUses(COPY_DST) buf 1: transition BufferUses(0x0) -> BufferUses(COPY_DST) Bind group Valid((0, 1, Vulkan)) shader module (1, 1, Vulkan) is dropped shader module (0, 1, Vulkan) is dropped tex 1: insert start TextureUses(UNINITIALIZED) Create view for texture (1, 1, Vulkan) filters usages to TextureUses(COLOR_TARGET) texture (1, 1, Vulkan) is dropped Encoding render pass begin in command buffer (0, 1, Vulkan) Merging renderpass into cmd_buf (0, 1, Vulkan) tex 1: insert start TextureUses(COLOR_TARGET) tex 1: insert start TextureUses(COLOR_TARGET) buf 2: transition BufferUses(0x0) -> BufferUses(COPY_DST) Encoding render pass begin in command buffer (0, 1, Vulkan) buf 1: insert BufferUses(INDEX)..BufferUses(INDEX) buf 0: insert BufferUses(STORAGE_READ)..BufferUses(STORAGE_READ) buf 2: insert BufferUses(UNIFORM)..BufferUses(UNIFORM) Binding [0] = group Valid((0, 1, Vulkan)) Merging renderpass into cmd_buf (0, 1, Vulkan) tex 1: insert start TextureUses(COLOR_TARGET) buf 0: insert BufferUses(STORAGE_READ)..BufferUses(STORAGE_READ) buf 1: insert BufferUses(INDEX)..BufferUses(INDEX) buf 2: insert BufferUses(UNIFORM)..BufferUses(UNIFORM) Command buffer (0, 1, Vulkan) tex 1: insert start TextureUses(PRESENT) Stitching command buffer (0, 1, Vulkan) before submission buf 0: transition BufferUses(COPY_DST) -> BufferUses(STORAGE_READ) buf 1: transition BufferUses(COPY_DST) -> BufferUses(INDEX) buf 2: transition BufferUses(COPY_DST) -> BufferUses(UNIFORM) tex 1: transition simple TextureUses(UNINITIALIZED) -> TextureUses(COLOR_TARGET) tex 1: transition simple TextureUses(COLOR_TARGET) -> TextureUses(PRESENT) Device after submission 1 Removing swapchain texture Valid((1, 1, Vulkan)) from the device tracker Presented. End of Frame tex 1: insert start TextureUses(UNINITIALIZED) Create view for texture (1, 2, Vulkan) filters usages to TextureUses(COLOR_TARGET) texture (1, 2, Vulkan) is dropped Encoding render pass begin in command buffer (0, 2, Vulkan) Merging renderpass into cmd_buf (0, 2, Vulkan) tex 1: insert start TextureUses(COLOR_TARGET) tex 1: insert start TextureUses(COLOR_TARGET) buf 2: transition BufferUses(UNIFORM) -> BufferUses(COPY_DST) Encoding render pass begin in command buffer (0, 2, Vulkan) buf 1: insert BufferUses(INDEX)..BufferUses(INDEX) buf 0: insert BufferUses(STORAGE_READ)..BufferUses(STORAGE_READ) buf 2: insert BufferUses(UNIFORM)..BufferUses(UNIFORM) Binding [0] = group Valid((0, 1, Vulkan)) Merging renderpass into cmd_buf (0, 2, Vulkan) tex 1: insert start TextureUses(COLOR_TARGET) buf 0: insert BufferUses(STORAGE_READ)..BufferUses(STORAGE_READ) buf 1: insert BufferUses(INDEX)..BufferUses(INDEX) buf 2: insert BufferUses(UNIFORM)..BufferUses(UNIFORM) Command buffer (0, 2, Vulkan) tex 1: insert start TextureUses(PRESENT) Stitching command buffer (0, 2, Vulkan) before submission buf 2: transition BufferUses(COPY_DST) -> BufferUses(UNIFORM) tex 1: transition simple TextureUses(UNINITIALIZED) -> TextureUses(COLOR_TARGET) tex 1: transition simple TextureUses(COLOR_TARGET) -> TextureUses(PRESENT) Device after submission 2 Active submission 1 is done Removing swapchain texture Valid((1, 2, Vulkan)) from the device tracker Presented. End of Frame