Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use GL backend run water example weird on Android #2416

Closed
jinleili opened this issue Jan 23, 2022 · 5 comments
Closed

Use GL backend run water example weird on Android #2416

jinleili opened this issue Jan 23, 2022 · 5 comments
Labels
api: gles Issues with GLES or WebGL external: driver-bug A driver is causing the bug, though we may still want to work around it

Comments

@jinleili
Copy link
Contributor

jinleili commented Jan 23, 2022

Test devices: Google Nexus 5x(Android 8.1.0), Honor V20(HarmonyOS 2.0, based on Android 10)

Reproduce the issue's demo, which used wgpu master branch

water example only see land and no water, crashed after 10+ seconds:

Screenshot_20220124-123318

2022-01-24 19:15:46.081 19319-19319/name.jinleili.wgpu V/wgpu_hal::gles::egl: GLES: [Application/Pop Group] ID 0 : _Present
2022-01-24 19:15:46.083 19319-19319/name.jinleili.wgpu V/wgpu_core::device::life: Active submission 1744 is done
2022-01-24 19:15:46.084 19319-19319/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-24 19:15:46.088 19319-19319/name.jinleili.wgpu E/wgpu_hal::gles::egl: GLES: [Other/Performance] ID 2147483647 : Namespace collision detected, using slow path
@jinleili jinleili changed the title GL and or VULKAN backend crashed on Android 8.1 GL and or VULKAN backend failed on Android 8.1 Jan 23, 2022
@jinleili jinleili changed the title GL and or VULKAN backend failed on Android 8.1 Use GL backend run water example weird on Android Jan 24, 2022
@kvark
Copy link
Member

kvark commented Jan 24, 2022

The lack of water is expected on GL in general (not limited to Android), since it relies on read-only depth attachment.

The crash is unexpected. What's the call stack?

@jinleili
Copy link
Contributor Author

jinleili commented Jan 25, 2022

That crash only observed on Android 8.1, not observed on another Android 10 device.

Set android_logger::init_once(Config::default().with_min_level(Level::Debug)) and RUST_BACKTRACE=full RUST_LOG=wgpu_hal=debug cargo ... build .so files looks cannot capture the call stack.

Logcat full output:

2022-01-25 10:15:14.992 24241-24241/? I/zygote64: Late-enabling -Xcheck:jni
2022-01-25 10:15:15.536 24241-24271/name.jinleili.wgpu D/OpenGLRenderer: HWUI GL Pipeline
2022-01-25 10:15:15.659 24241-24271/name.jinleili.wgpu I/Adreno: QUALCOMM build                   : 8e59954, I0be83d0d26
    Build Date                       : 09/22/17
    OpenGL ES Shader Compiler Version: EV031.21.02.00
    Local Branch                     : O17A
    Remote Branch                    : 
    Remote Branch                    : 
    Reconstruct Branch               : 
2022-01-25 10:15:15.661 24241-24271/name.jinleili.wgpu D/vndksupport: Loading /vendor/lib64/hw/gralloc.msm8992.so from current namespace instead of sphal namespace.
2022-01-25 10:15:15.683 24241-24271/name.jinleili.wgpu I/Adreno: PFP: 0x00000000, ME: 0x00000000
2022-01-25 10:15:15.717 24241-24271/name.jinleili.wgpu I/zygote64: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2022-01-25 10:15:15.720 24241-24271/name.jinleili.wgpu I/OpenGLRenderer: Initialized EGL, version 1.4
2022-01-25 10:15:15.720 24241-24271/name.jinleili.wgpu D/OpenGLRenderer: Swap behavior 2
2022-01-25 10:15:15.721 24241-24241/name.jinleili.wgpu W/MaterialButtonToggleGroup: Child order wasn't updated
2022-01-25 10:15:15.721 24241-24241/name.jinleili.wgpu I/chatty: uid=10106(name.jinleili.wgpu) identical 2 lines
2022-01-25 10:15:15.721 24241-24241/name.jinleili.wgpu W/MaterialButtonToggleGroup: Child order wasn't updated
2022-01-25 10:15:15.745 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::egl: Client extensions: []
2022-01-25 10:15:15.745 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: Using default platform
2022-01-25 10:15:15.745 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: Display vendor "Android", version (1, 4)
2022-01-25 10:15:15.746 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::egl: Display extensions: [
        "EGL_KHR_get_all_proc_addresses",
        "EGL_ANDROID_presentation_time",
        "EGL_KHR_swap_buffers_with_damage",
        "EGL_ANDROID_get_native_client_buffer",
        "EGL_ANDROID_front_buffer_auto_refresh",
        "EGL_ANDROID_get_frame_timestamps",
        "EGL_KHR_image",
        "EGL_KHR_image_base",
        "EGL_KHR_lock_surface",
        "EGL_KHR_gl_colorspace",
        "EGL_KHR_gl_texture_2D_image",
        "EGL_KHR_gl_texture_3D_image",
        "EGL_KHR_gl_texture_cubemap_image",
        "EGL_KHR_gl_renderbuffer_image",
        "EGL_KHR_reusable_sync",
        "EGL_KHR_fence_sync",
        "EGL_KHR_create_context",
        "EGL_KHR_surfaceless_context",
        "EGL_EXT_create_context_robustness",
        "EGL_ANDROID_image_native_buffer",
        "EGL_KHR_wait_sync",
        "EGL_ANDROID_recordable",
        "EGL_KHR_partial_update",
        "EGL_EXT_pixel_format_float",
        "EGL_KHR_create_context_no_error",
        "EGL_KHR_mutable_render_buffer",
        "EGL_EXT_yuv_surface",
        "EGL_IMG_context_priority",
        "EGL_KHR_no_config_context",
    ]
2022-01-25 10:15:15.746 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: 	EGL surface: +srgb khr
2022-01-25 10:15:15.746 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: 	Trying presentation
2022-01-25 10:15:15.747 24241-24241/name.jinleili.wgpu W/wgpu_hal::gles::egl: EGL says it can present to the window but not natively
2022-01-25 10:15:15.747 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: 	EGL context: +debug KHR
2022-01-25 10:15:15.748 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: 	EGL context: +robust access EXT
2022-01-25 10:15:15.749 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: 	EGL context: +surfaceless
2022-01-25 10:15:15.814 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: Max label length: 256
2022-01-25 10:15:15.815 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::egl: Enabling GLES debug output
2022-01-25 10:15:15.815 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::adapter: Vendor: Qualcomm
2022-01-25 10:15:15.815 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::adapter: Renderer: Adreno (TM) 418
2022-01-25 10:15:15.815 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::adapter: Version: OpenGL ES 3.2 [email protected] (GIT@8e59954, I0be83d0d26) (Date:09/22/17)
2022-01-25 10:15:15.816 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::adapter: Extensions: {
        "GL_OES_texture_3D",
        "GL_OES_sample_shading",
        "GL_EXT_copy_image",
        "GL_OES_EGL_image",
        "GL_EXT_blit_framebuffer_params",
        "GL_OES_texture_float_linear",
        "GL_OES_depth_texture_cube_map",
        "GL_QCOM_tiled_rendering",
        "GL_EXT_color_buffer_half_float",
        "GL_EXT_texture_sRGB_decode",
        "GL_OVR_multiview2",
        "GL_OES_texture_half_float",
        "GL_OES_framebuffer_object",
        "GL_EXT_multisampled_render_to_texture2",
        "GL_OES_texture_storage_multisample_2d_array",
        "GL_KHR_blend_equation_advanced_coherent",
        "GL_KHR_no_error",
        "GL_QCOM_shader_framebuffer_fetch_noncoherent",
        "GL_OES_EGL_sync",
        "GL_EXT_debug_label",
        "GL_OES_packed_depth_stencil",
        "GL_OES_sample_variables",
        "GL_EXT_texture_format_BGRA8888",
        "GL_EXT_texture_buffer",
        "GL_OES_depth24",
        "GL_OES_vertex_half_float",
        "GL_EXT_tessellation_shader",
        "GL_EXT_primitive_bounding_box",
        "GL_EXT_texture_filter_anisotropic",
        "GL_ANDROID_extension_pack_es31a",
        "GL_OES_rgb8_rgba8",
        "GL_OES_standard_derivatives",
        "GL_OES_depth_texture",
        "GL_OES_vertex_array_object",
        "GL_EXT_texture_type_2_10_10_10_REV",
        "GL_KHR_debug",
        "GL_EXT_EGL_image_array",
        "GL_OVR_multiview",
        "GL_EXT_sRGB_write_control",
        "GL_OES_texture_npot",
        "GL_EXT_multisampled_render_to_texture",
        "GL_EXT_shader_non_constant_global_initializers",
        "GL_OES_compressed_ETC1_RGB8_texture",
        "GL_OES_get_program_binary",
        "GL_EXT_sRGB",
        "GL_EXT_texture_cube_map_array",
        "GL_OES_shader_image_atomic",
        "GL_OES_EGL_image_external",
        "GL_EXT_debug_marker",
        "GL_EXT_discard_framebuffer",
        "GL_KHR_blend_equation_advanced",
        "GL_OES_shader_multisample_interpolation",
        "GL_EXT_robustness",
        "GL_EXT_texture_norm16",
        "GL_OES_element_index_uint",
        "GL_EXT_geometry_shader",
        "GL_EXT_color_buffer_float",
        "GL_EXT_texture_border_clamp",
        "GL_KHR_texture_compression_astc_ldr",
        "GL_EXT_YUV_target",
        "GL_OES_texture_float",
        "GL_EXT_shader_io_blocks",
        "GL_OES_EGL_image_external_essl3",
        "GL_AMD_compressed_ATC_texture",
        "GL_EXT_gpu_shader5",
        "GL_QCOM_alpha_test",
        "GL_EXT_external_buffer",
        "GL_NV_shader_noperspective_interpolation",
        "GL_OES_surfaceless_context",
        "GL_OES_texture_half_float_linear",
        "GL_EXT_disjoint_timer_query",
        "GL_EXT_texture_sRGB_R8",
        "GL_EXT_buffer_storage",
        "GL_OVR_multiview_multisampled_render_to_texture",
        "GL_OES_texture_stencil8",
        "GL_EXT_draw_buffers_indexed",
    }
2022-01-25 10:15:15.816 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::adapter: SL version: OpenGL ES GLSL ES 3.20
2022-01-25 10:15:15.816 24241-24241/name.jinleili.wgpu I/wgpu_core::instance: Adapter Gl AdapterInfo { name: "Adreno (TM) 418", vendor: 20803, device: 0, device_type: IntegratedGpu, backend: Gl }
2022-01-25 10:15:15.894 24241-24241/name.jinleili.wgpu I/wgpu_core::device: configuring surface with SurfaceConfiguration { usage: RENDER_ATTACHMENT, format: Rgba8UnormSrgb, width: 1080, height: 1129, present_mode: Fifo }
2022-01-25 10:15:16.239 24241-24241/name.jinleili.wgpu I/wgpu_core::device: Created buffer Valid((0, 1, Gl)) with BufferDescriptor { label: Some("Water vertices"), size: 141840, usage: VERTEX, mapped_at_creation: true }
2022-01-25 10:15:16.240 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Buffer (0, 1, Gl) map state -> Idle
2022-01-25 10:15:16.243 24241-24241/name.jinleili.wgpu I/wgpu_core::device: Created buffer Valid((1, 1, Gl)) with BufferDescriptor { label: Some("Terrain vertices"), size: 2978640, usage: VERTEX, mapped_at_creation: true }
2022-01-25 10:15:16.245 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Buffer (1, 1, Gl) map state -> Idle
2022-01-25 10:15:16.246 24241-24241/name.jinleili.wgpu I/wgpu_core::device: Created buffer Valid((2, 1, Gl)) with BufferDescriptor { label: Some("Water Uniforms"), size: 160, usage: COPY_DST | UNIFORM, mapped_at_creation: false }
2022-01-25 10:15:16.246 24241-24241/name.jinleili.wgpu I/wgpu_core::device: Created buffer Valid((3, 1, Gl)) with BufferDescriptor { label: Some("Normal Terrain Uniforms"), size: 80, usage: COPY_DST | UNIFORM, mapped_at_creation: false }
2022-01-25 10:15:16.246 24241-24241/name.jinleili.wgpu I/wgpu_core::device: Created buffer Valid((4, 1, Gl)) with BufferDescriptor { label: Some("Flipped Terrain Uniforms"), size: 80, usage: COPY_DST | UNIFORM, mapped_at_creation: false }
2022-01-25 10:15:16.253 24241-24241/name.jinleili.wgpu I/wgpu_core::device: Created texture Valid((0, 1, Gl)) with TextureDescriptor { label: Some("Reflection Render Texture"), size: Extent3d { width: 1080, height: 1129, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING | RENDER_ATTACHMENT }
2022-01-25 10:15:16.254 24241-24241/name.jinleili.wgpu I/wgpu_core::device: Created texture Valid((1, 1, Gl)) with TextureDescriptor { label: Some("Depth Buffer"), size: Extent3d { width: 1080, height: 1129, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Depth32Float, usage: COPY_DST | TEXTURE_BINDING | RENDER_ATTACHMENT }
2022-01-25 10:15:16.254 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (1, 1, Gl) filters usages to RESOURCE | DEPTH_STENCIL_READ | DEPTH_STENCIL_WRITE
2022-01-25 10:15:16.254 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (0, 1, Gl) filters usages to RESOURCE | COLOR_TARGET
2022-01-25 10:15:16.255 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Bind group Valid((0, 1, Gl)) TrackerSet {
        buffers: {
            (
                2,
                1,
            ): Unit {
                first: None,
                last: UNIFORM,
            },
        },
        textures: {
            (
                0,
                1,
            ): TextureState {
                mips: [
                    RangedStates {
                        ranges: [
                            (
                                0..1,
                                Unit {
                                    first: None,
                                    last: RESOURCE,
                                },
                            ),
                        ],
                    },
                ],
                full: false,
            },
            (
                1,
                1,
            ): TextureState {
                mips: [
                    RangedStates {
                        ranges: [
                            (
                                0..1,
                                Unit {
                                    first: None,
                                    last: RESOURCE,
                                },
                            ),
                        ],
                    },
                ],
                full: false,
            },
        },
        views: {
            (
                0,
                1,
            ): PhantomData,
            (
                1,
                1,
            ): PhantomData,
        },
        bind_groups: {},
        samplers: {
            (
                0,
                1,
            ): PhantomData,
        },
        compute_pipes: {},
        render_pipes: {},
        bundles: {},
        query_sets: {},
    }
2022-01-25 10:15:16.256 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (0, 1, Gl) filters usages to RESOURCE | COLOR_TARGET
2022-01-25 10:15:16.256 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Bind group Valid((1, 1, Gl)) TrackerSet {
        buffers: {
            (
                3,
                1,
            ): Unit {
                first: None,
                last: UNIFORM,
            },
        },
        textures: {},
        views: {},
        bind_groups: {},
        samplers: {},
        compute_pipes: {},
        render_pipes: {},
        bundles: {},
        query_sets: {},
    }
2022-01-25 10:15:16.256 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Bind group Valid((2, 1, Gl)) TrackerSet {
        buffers: {
            (
                4,
                1,
            ): Unit {
                first: None,
                last: UNIFORM,
            },
        },
        textures: {},
        views: {},
        bind_groups: {},
        samplers: {},
        compute_pipes: {},
        render_pipes: {},
        bundles: {},
        query_sets: {},
    }
2022-01-25 10:15:16.259 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = GlobalVariable([1]) : Value(Pointer { base: [3], class: Uniform })
2022-01-25 10:15:16.259 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = Constant([4]) : Handle([4])
2022-01-25 10:15:16.259 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([4])
2022-01-25 10:15:16.259 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([9]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.259 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = FunctionArgument(0) : Handle([4])
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = FunctionArgument(1) : Handle([4])
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = FunctionArgument(2) : Handle([2])
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = LocalVariable([1]) : Value(Pointer { base: [6], class: Function })
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = AccessIndex { base: [8], index: 0 } : Value(Pointer { base: [2], class: Function })
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = AccessIndex { base: [1], index: 0 } : Value(Pointer { base: [1], class: Uniform })
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Load { pointer: [10] } : Handle([1])
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.260 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Compose { ty: [2], components: [[5], [12]] } : Handle([2])
2022-01-25 10:15:16.261 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = Binary { op: Multiply, left: [11], right: [13] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.261 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Binary { op: Subtract, left: [5], right: [2] } : Handle([4])
2022-01-25 10:15:16.261 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = Math { fun: Normalize, arg: [15], arg1: None, arg2: None, arg3: None } : Handle([4])
2022-01-25 10:15:16.261 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = Math { fun: Dot, arg: [16], arg1: Some([6]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.261 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.261 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [19] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.262 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [20] = Math { fun: Clamp, arg: [17], arg1: Some([18]), arg2: Some([19]), arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.262 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [21] = AccessIndex { base: [8], index: 1 } : Value(Pointer { base: [2], class: Function })
2022-01-25 10:15:16.262 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [22] = Binary { op: Add, left: [20], right: [4] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.262 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [23] = Binary { op: Multiply, left: [22], right: [3] } : Handle([4])
2022-01-25 10:15:16.262 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [24] = Swizzle { size: Tri, vector: [7], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.262 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [25] = Binary { op: Multiply, left: [23], right: [24] } : Handle([4])
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [26] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [27] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [28] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [29] = Compose { ty: [4], components: [[26], [27], [28]] } : Handle([4])
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [30] = Math { fun: Max, arg: [25], arg1: Some([29]), arg2: None, arg3: None } : Handle([4])
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [31] = AccessIndex { base: [7], index: 3 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [32] = Compose { ty: [2], components: [[30], [31]] } : Handle([2])
2022-01-25 10:15:16.263 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [33] = AccessIndex { base: [8], index: 2 } : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.264 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [34] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.264 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [35] = Compose { ty: [2], components: [[5], [34]] } : Handle([2])
2022-01-25 10:15:16.264 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [36] = AccessIndex { base: [1], index: 1 } : Value(Pointer { base: [2], class: Uniform })
2022-01-25 10:15:16.264 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [37] = Load { pointer: [36] } : Handle([2])
2022-01-25 10:15:16.264 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [38] = Math { fun: Dot, arg: [35], arg1: Some([37]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.264 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = GlobalVariable([1]) : Value(Pointer { base: [3], class: Uniform })
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = Constant([4]) : Handle([4])
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([4])
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([9]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = FunctionArgument(0) : Handle([6])
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = AccessIndex { base: [5], index: 2 } : Handle([5])
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = Binary { op: Less, left: [6], right: [7] } : Value(Scalar { kind: Bool, width: 1 })
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = AccessIndex { base: [5], index: 1 } : Handle([2])
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Swizzle { size: Tri, vector: [9], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.265 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Compose { ty: [2], components: [[10], [11]] } : Handle([2])
2022-01-25 10:15:16.266 24241-24241/name.jinleili.wgpu D/naga::valid::interface: var GlobalVariable { name: Some("uniforms"), class: Uniform, binding: Some(ResourceBinding { group: 0, binding: 0 }), ty: [3], init: None }
2022-01-25 10:15:16.266 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("out"), ty: [6], init: None }
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([2])
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = Constant([13]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Binary { op: Multiply, left: [9], right: [1] } : Handle([2])
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = LocalVariable([1]) : Value(Pointer { base: [2], class: Function })
2022-01-25 10:15:16.269 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Constant([14]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.270 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Binary { op: Multiply, left: [8], right: [12] } : Handle([2])
2022-01-25 10:15:16.270 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = Binary { op: Add, left: [13], right: [1] } : Handle([2])
2022-01-25 10:15:16.270 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Binary { op: Multiply, left: [14], right: [8] } : Handle([2])
2022-01-25 10:15:16.270 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = Math { fun: Modf, arg: [15], arg1: Some([11]), arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.270 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.270 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.270 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([2])
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = Constant([15]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Binary { op: Multiply, left: [9], right: [1] } : Handle([2])
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Constant([16]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.271 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Binary { op: Multiply, left: [11], right: [8] } : Handle([2])
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([5])
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Constant([17]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Binary { op: Divide, left: [9], right: [10] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Constant([18]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = Binary { op: Divide, left: [12], right: [13] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.272 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Compose { ty: [6], components: [[11], [14]] } : Handle([6])
2022-01-25 10:15:16.273 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.273 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = Constant([19]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.273 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.273 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [19] = Constant([20]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.273 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [20] = Compose { ty: [2], components: [[16], [17], [18], [19]] } : Handle([2])
2022-01-25 10:15:16.273 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [21] = Swizzle { size: Tri, vector: [15], pattern: [Y, Y, Y, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.274 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [22] = Math { fun: Dot, arg: [8], arg1: Some([21]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.274 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [23] = Compose { ty: [5], components: [[22], [22], [22]] } : Handle([5])
2022-01-25 10:15:16.274 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [24] = Binary { op: Add, left: [8], right: [23] } : Handle([5])
2022-01-25 10:15:16.274 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [25] = Math { fun: Floor, arg: [24], arg1: None, arg2: None, arg3: None } : Handle([5])
2022-01-25 10:15:16.274 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [26] = LocalVariable([1]) : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.274 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [27] = Load { pointer: [26] } : Handle([5])
2022-01-25 10:15:16.275 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [28] = Swizzle { size: Tri, vector: [15], pattern: [X, X, X, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.275 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [29] = Math { fun: Dot, arg: [27], arg1: Some([28]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.275 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [30] = Load { pointer: [26] } : Handle([5])
2022-01-25 10:15:16.275 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [31] = Binary { op: Subtract, left: [8], right: [30] } : Handle([5])
2022-01-25 10:15:16.275 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [32] = Compose { ty: [5], components: [[29], [29], [29]] } : Handle([5])
2022-01-25 10:15:16.275 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [33] = Binary { op: Add, left: [31], right: [32] } : Handle([5])
2022-01-25 10:15:16.275 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [34] = Swizzle { size: Tri, vector: [33], pattern: [Y, Z, X, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.276 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [35] = Swizzle { size: Tri, vector: [33], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.276 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [36] = Math { fun: Step, arg: [34], arg1: Some([35]), arg2: None, arg3: None } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.276 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [37] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.276 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [38] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.276 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [39] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.276 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [40] = Compose { ty: [5], components: [[37], [38], [39]] } : Handle([5])
2022-01-25 10:15:16.276 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [41] = Binary { op: Subtract, left: [40], right: [36] } : Handle([5])
2022-01-25 10:15:16.277 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [42] = Swizzle { size: Tri, vector: [41], pattern: [Z, X, Y, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.277 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [43] = Math { fun: Min, arg: [36], arg1: Some([42]), arg2: None, arg3: None } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.277 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [44] = Math { fun: Max, arg: [36], arg1: Some([42]), arg2: None, arg3: None } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.277 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [45] = Binary { op: Subtract, left: [33], right: [43] } : Handle([5])
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [46] = Swizzle { size: Tri, vector: [15], pattern: [X, X, X, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [47] = Binary { op: Add, left: [45], right: [46] } : Handle([5])
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [48] = Binary { op: Subtract, left: [33], right: [44] } : Handle([5])
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [49] = Swizzle { size: Tri, vector: [15], pattern: [Y, Y, Y, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [50] = Binary { op: Add, left: [48], right: [49] } : Handle([5])
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [51] = Swizzle { size: Tri, vector: [20], pattern: [Y, Y, Y, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [52] = Binary { op: Subtract, left: [33], right: [51] } : Handle([5])
2022-01-25 10:15:16.278 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [53] = Constant([13]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.279 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [54] = Swizzle { size: Tri, vector: [1], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.279 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [55] = Binary { op: Multiply, left: [53], right: [54] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.279 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [56] = LocalVariable([2]) : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.279 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [57] = Load { pointer: [26] } : Handle([5])
2022-01-25 10:15:16.279 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [58] = Math { fun: Modf, arg: [57], arg1: Some([56]), arg2: None, arg3: None } : Handle([5])
2022-01-25 10:15:16.279 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [59] = Load { pointer: [26] } : Handle([5])
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [60] = Swizzle { size: Quad, vector: [59], pattern: [Z, Z, Z, Z] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [61] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [62] = AccessIndex { base: [43], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [63] = AccessIndex { base: [44], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [64] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [65] = Compose { ty: [2], components: [[61], [62], [63], [64]] } : Handle([2])
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [66] = Binary { op: Add, left: [60], right: [65] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.280 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [67] = CallResult([1]) : Handle([2])
2022-01-25 10:15:16.281 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [68] = Load { pointer: [26] } : Handle([5])
2022-01-25 10:15:16.281 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [69] = Swizzle { size: Quad, vector: [68], pattern: [Y, Y, Y, Y] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.281 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [70] = Binary { op: Add, left: [67], right: [69] } : Handle([2])
2022-01-25 10:15:16.281 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [71] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.281 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [72] = AccessIndex { base: [43], index: 1 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.281 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [73] = AccessIndex { base: [44], index: 1 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.281 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [74] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [75] = Compose { ty: [2], components: [[71], [72], [73], [74]] } : Handle([2])
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [76] = Binary { op: Add, left: [70], right: [75] } : Handle([2])
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [77] = CallResult([1]) : Handle([2])
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [78] = Load { pointer: [26] } : Handle([5])
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [79] = Swizzle { size: Quad, vector: [78], pattern: [X, X, X, X] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [80] = Binary { op: Add, left: [77], right: [79] } : Handle([2])
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [81] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [82] = AccessIndex { base: [43], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.282 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [83] = AccessIndex { base: [44], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.283 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [84] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.283 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [85] = Compose { ty: [2], components: [[81], [82], [83], [84]] } : Handle([2])
2022-01-25 10:15:16.283 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [86] = Binary { op: Add, left: [80], right: [85] } : Handle([2])
2022-01-25 10:15:16.283 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [87] = CallResult([1]) : Handle([2])
2022-01-25 10:15:16.283 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [88] = Constant([21]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.283 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [89] = Swizzle { size: Tri, vector: [20], pattern: [W, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.284 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [90] = Binary { op: Multiply, left: [88], right: [89] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.284 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [91] = Swizzle { size: Tri, vector: [20], pattern: [X, Z, X, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.284 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [92] = Binary { op: Subtract, left: [90], right: [91] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.284 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [93] = Constant([22]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.284 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [94] = AccessIndex { base: [92], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.284 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [95] = Binary { op: Multiply, left: [87], right: [94] } : Handle([2])
2022-01-25 10:15:16.284 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [96] = AccessIndex { base: [92], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.285 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [97] = Binary { op: Multiply, left: [95], right: [96] } : Handle([2])
2022-01-25 10:15:16.285 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [98] = Math { fun: Floor, arg: [97], arg1: None, arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.285 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [99] = Binary { op: Multiply, left: [93], right: [98] } : Handle([2])
2022-01-25 10:15:16.285 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [100] = Binary { op: Subtract, left: [87], right: [99] } : Handle([2])
2022-01-25 10:15:16.285 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [101] = AccessIndex { base: [92], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.285 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [102] = Binary { op: Multiply, left: [100], right: [101] } : Handle([2])
2022-01-25 10:15:16.285 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [103] = Math { fun: Floor, arg: [102], arg1: None, arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [104] = Constant([23]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [105] = Binary { op: Multiply, left: [104], right: [103] } : Handle([2])
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [106] = Binary { op: Subtract, left: [100], right: [105] } : Handle([2])
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [107] = Math { fun: Floor, arg: [106], arg1: None, arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [108] = AccessIndex { base: [92], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [109] = Binary { op: Multiply, left: [103], right: [108] } : Handle([2])
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [110] = Swizzle { size: Quad, vector: [92], pattern: [Y, Y, Y, Y] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.286 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [111] = Binary { op: Add, left: [109], right: [110] } : Handle([2])
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [112] = LocalVariable([3]) : Value(Pointer { base: [2], class: Function })
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [113] = AccessIndex { base: [92], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [114] = Binary { op: Multiply, left: [107], right: [113] } : Handle([2])
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [115] = Swizzle { size: Quad, vector: [92], pattern: [Y, Y, Y, Y] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [116] = Binary { op: Add, left: [114], right: [115] } : Handle([2])
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [117] = LocalVariable([4]) : Value(Pointer { base: [2], class: Function })
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [118] = Load { pointer: [112] } : Handle([2])
2022-01-25 10:15:16.287 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [119] = Math { fun: Abs, arg: [118], arg1: None, arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [120] = Binary { op: Subtract, left: [1], right: [119] } : Handle([2])
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [121] = Load { pointer: [117] } : Handle([2])
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [122] = Math { fun: Abs, arg: [121], arg1: None, arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [123] = Binary { op: Subtract, left: [120], right: [122] } : Handle([2])
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [124] = Load { pointer: [112] } : Handle([2])
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [125] = Swizzle { size: Bi, vector: [124], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [126] = Load { pointer: [117] } : Handle([2])
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [127] = Swizzle { size: Bi, vector: [126], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.288 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [128] = Compose { ty: [2], components: [[125], [127]] } : Handle([2])
2022-01-25 10:15:16.289 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [129] = Load { pointer: [112] } : Handle([2])
2022-01-25 10:15:16.289 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [130] = Swizzle { size: Bi, vector: [129], pattern: [Z, W, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.289 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [131] = Load { pointer: [117] } : Handle([2])
2022-01-25 10:15:16.289 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [132] = Swizzle { size: Bi, vector: [131], pattern: [Z, W, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.289 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [133] = Compose { ty: [2], components: [[130], [132]] } : Handle([2])
2022-01-25 10:15:16.289 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [134] = Math { fun: Floor, arg: [128], arg1: None, arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.290 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [135] = Constant([20]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.290 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [136] = Binary { op: Multiply, left: [134], right: [135] } : Handle([2])
2022-01-25 10:15:16.290 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [137] = Binary { op: Add, left: [136], right: [1] } : Handle([2])
2022-01-25 10:15:16.290 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [138] = Math { fun: Floor, arg: [133], arg1: None, arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.290 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [139] = Constant([20]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.290 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [140] = Binary { op: Multiply, left: [138], right: [139] } : Handle([2])
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [141] = Binary { op: Add, left: [140], right: [1] } : Handle([2])
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [142] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [143] = Binary { op: Multiply, left: [142], right: [1] } : Handle([2])
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [144] = Math { fun: Step, arg: [123], arg1: Some([143]), arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [145] = Unary { op: Negate, expr: [144] } : Handle([2])
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [146] = Swizzle { size: Quad, vector: [128], pattern: [X, Z, Y, W] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [147] = Swizzle { size: Quad, vector: [137], pattern: [X, Z, Y, W] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.291 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [148] = Swizzle { size: Quad, vector: [145], pattern: [X, X, Y, Y] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.292 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [149] = Binary { op: Multiply, left: [147], right: [148] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.292 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [150] = Binary { op: Add, left: [146], right: [149] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.292 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [151] = Swizzle { size: Quad, vector: [133], pattern: [X, Z, Y, W] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.292 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [152] = Swizzle { size: Quad, vector: [141], pattern: [X, Z, Y, W] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.292 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [153] = Swizzle { size: Quad, vector: [145], pattern: [Z, Z, W, W] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.292 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [154] = Binary { op: Multiply, left: [152], right: [153] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.293 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [155] = Binary { op: Add, left: [151], right: [154] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.293 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [156] = Swizzle { size: Bi, vector: [150], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.293 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [157] = AccessIndex { base: [123], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.293 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [158] = Compose { ty: [5], components: [[156], [157]] } : Handle([5])
2022-01-25 10:15:16.293 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [159] = LocalVariable([5]) : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.293 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [160] = Swizzle { size: Bi, vector: [150], pattern: [Z, W, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.293 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [161] = AccessIndex { base: [123], index: 1 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.294 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [162] = Compose { ty: [5], components: [[160], [161]] } : Handle([5])
2022-01-25 10:15:16.294 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [163] = LocalVariable([6]) : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.294 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [164] = Swizzle { size: Bi, vector: [155], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.294 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [165] = AccessIndex { base: [123], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.294 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [166] = Compose { ty: [5], components: [[164], [165]] } : Handle([5])
2022-01-25 10:15:16.294 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [167] = LocalVariable([7]) : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.295 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [168] = Swizzle { size: Bi, vector: [155], pattern: [Z, W, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.295 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [169] = AccessIndex { base: [123], index: 3 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.295 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [170] = Compose { ty: [5], components: [[168], [169]] } : Handle([5])
2022-01-25 10:15:16.295 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [171] = LocalVariable([8]) : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.295 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [172] = Load { pointer: [159] } : Handle([5])
2022-01-25 10:15:16.295 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [173] = Load { pointer: [159] } : Handle([5])
2022-01-25 10:15:16.295 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [174] = Math { fun: Dot, arg: [172], arg1: Some([173]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [175] = Load { pointer: [163] } : Handle([5])
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [176] = Load { pointer: [163] } : Handle([5])
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [177] = Math { fun: Dot, arg: [175], arg1: Some([176]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [178] = Load { pointer: [167] } : Handle([5])
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [179] = Load { pointer: [167] } : Handle([5])
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [180] = Math { fun: Dot, arg: [178], arg1: Some([179]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [181] = Load { pointer: [171] } : Handle([5])
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [182] = Load { pointer: [171] } : Handle([5])
2022-01-25 10:15:16.296 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [183] = Math { fun: Dot, arg: [181], arg1: Some([182]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.297 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [184] = Compose { ty: [2], components: [[174], [177], [180], [183]] } : Handle([2])
2022-01-25 10:15:16.297 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [185] = CallResult([2]) : Handle([2])
2022-01-25 10:15:16.297 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [186] = Load { pointer: [159] } : Handle([5])
2022-01-25 10:15:16.297 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [187] = AccessIndex { base: [185], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.297 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [188] = Binary { op: Multiply, left: [186], right: [187] } : Handle([5])
2022-01-25 10:15:16.297 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [189] = Load { pointer: [163] } : Handle([5])
2022-01-25 10:15:16.297 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [190] = AccessIndex { base: [185], index: 1 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [191] = Binary { op: Multiply, left: [189], right: [190] } : Handle([5])
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [192] = Load { pointer: [167] } : Handle([5])
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [193] = AccessIndex { base: [185], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [194] = Binary { op: Multiply, left: [192], right: [193] } : Handle([5])
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [195] = Load { pointer: [171] } : Handle([5])
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [196] = AccessIndex { base: [185], index: 3 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [197] = Binary { op: Multiply, left: [195], right: [196] } : Handle([5])
2022-01-25 10:15:16.298 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [198] = Constant([24]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.299 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [199] = Binary { op: Multiply, left: [198], right: [1] } : Handle([2])
2022-01-25 10:15:16.299 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [200] = Math { fun: Dot, arg: [33], arg1: Some([33]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.299 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [201] = Math { fun: Dot, arg: [47], arg1: Some([47]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.299 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [202] = Math { fun: Dot, arg: [50], arg1: Some([50]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.299 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [203] = Math { fun: Dot, arg: [52], arg1: Some([52]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.300 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [204] = Compose { ty: [2], components: [[200], [201], [202], [203]] } : Handle([2])
2022-01-25 10:15:16.300 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [205] = Binary { op: Subtract, left: [199], right: [204] } : Handle([2])
2022-01-25 10:15:16.300 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [206] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.300 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [207] = Binary { op: Multiply, left: [206], right: [1] } : Handle([2])
2022-01-25 10:15:16.300 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [208] = Math { fun: Max, arg: [205], arg1: Some([207]), arg2: None, arg3: None } : Handle([2])
2022-01-25 10:15:16.300 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [209] = LocalVariable([9]) : Value(Pointer { base: [2], class: Function })
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [210] = Load { pointer: [209] } : Handle([2])
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [211] = Load { pointer: [209] } : Handle([2])
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [212] = Binary { op: Multiply, left: [210], right: [211] } : Handle([2])
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [213] = Constant([25]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [214] = Load { pointer: [209] } : Handle([2])
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [215] = Load { pointer: [209] } : Handle([2])
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [216] = Binary { op: Multiply, left: [214], right: [215] } : Handle([2])
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [217] = Load { pointer: [159] } : Handle([5])
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [218] = Math { fun: Dot, arg: [217], arg1: Some([33]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.301 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [219] = Load { pointer: [163] } : Handle([5])
2022-01-25 10:15:16.302 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [220] = Math { fun: Dot, arg: [219], arg1: Some([47]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.302 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [221] = Load { pointer: [167] } : Handle([5])
2022-01-25 10:15:16.302 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [222] = Math { fun: Dot, arg: [221], arg1: Some([50]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.302 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [223] = Load { pointer: [171] } : Handle([5])
2022-01-25 10:15:16.302 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [224] = Math { fun: Dot, arg: [223], arg1: Some([52]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.302 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [225] = Compose { ty: [2], components: [[218], [220], [222], [224]] } : Handle([2])
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [226] = Math { fun: Dot, arg: [216], arg1: Some([225]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.303 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([5])
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = LocalVariable([1]) : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = AccessIndex { base: [2], index: 2 } : Value(Pointer { base: [2], class: Uniform })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = AccessIndex { base: [10], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Uniform })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Load { pointer: [11] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = AccessIndex { base: [2], index: 2 } : Value(Pointer { base: [2], class: Uniform })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = AccessIndex { base: [13], index: 1 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Uniform })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Load { pointer: [14] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = AccessIndex { base: [2], index: 2 } : Value(Pointer { base: [2], class: Uniform })
2022-01-25 10:15:16.304 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = AccessIndex { base: [16], index: 2 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Uniform })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Load { pointer: [17] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [19] = AccessIndex { base: [9], index: 1 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [20] = Load { pointer: [19] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [21] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [22] = Load { pointer: [21] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [23] = Binary { op: Subtract, left: [20], right: [22] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [24] = Binary { op: Subtract, left: [23], right: [18] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [25] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.305 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [26] = Load { pointer: [25] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [27] = AccessIndex { base: [9], index: 2 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [28] = Load { pointer: [27] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [29] = Compose { ty: [5], components: [[24], [26], [28]] } : Handle([5])
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [30] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [31] = Load { pointer: [30] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [32] = Binary { op: Multiply, left: [31], right: [15] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [33] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.306 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [34] = Load { pointer: [33] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [35] = Binary { op: Multiply, left: [34], right: [12] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [36] = AccessIndex { base: [9], index: 1 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [37] = Load { pointer: [36] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [38] = Binary { op: Multiply, left: [37], right: [15] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [39] = AccessIndex { base: [9], index: 1 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [40] = Load { pointer: [39] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [41] = Binary { op: Multiply, left: [40], right: [12] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.307 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [42] = AccessIndex { base: [9], index: 2 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.308 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [43] = Load { pointer: [42] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.308 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [44] = Binary { op: Multiply, left: [43], right: [15] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.308 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [45] = AccessIndex { base: [9], index: 2 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.308 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [46] = Load { pointer: [45] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.308 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [47] = Binary { op: Multiply, left: [46], right: [12] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.308 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [48] = Binary { op: Add, left: [32], right: [47] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.308 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [49] = AccessIndex { base: [9], index: 1 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [50] = Load { pointer: [49] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [51] = Unary { op: Negate, expr: [35] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [52] = Binary { op: Add, left: [51], right: [32] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [53] = Compose { ty: [5], components: [[48], [50], [52]] } : Handle([5])
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [54] = Binary { op: Subtract, left: [32], right: [41] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [55] = Binary { op: Add, left: [35], right: [38] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [56] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.309 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [57] = Load { pointer: [56] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [58] = Compose { ty: [5], components: [[54], [55], [57]] } : Handle([5])
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [59] = AccessIndex { base: [9], index: 2 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [60] = Load { pointer: [59] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [61] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [62] = Load { pointer: [61] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [63] = Binary { op: Subtract, left: [60], right: [62] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [64] = AccessIndex { base: [9], index: 1 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.310 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [65] = Load { pointer: [64] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.311 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [66] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.311 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [67] = Load { pointer: [66] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.311 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [68] = Compose { ty: [5], components: [[63], [65], [67]] } : Handle([5])
2022-01-25 10:15:16.311 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [69] = AccessIndex { base: [9], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Function })
2022-01-25 10:15:16.311 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [70] = Load { pointer: [69] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.311 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [71] = Binary { op: Subtract, left: [38], right: [47] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.311 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [72] = Binary { op: Add, left: [41], right: [44] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.312 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [73] = Compose { ty: [5], components: [[70], [71], [72]] } : Handle([5])
2022-01-25 10:15:16.312 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [74] = AccessIndex { base: [8], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.312 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [75] = Constant([20]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.312 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [76] = Swizzle { size: Tri, vector: [1], pattern: [X, X, X, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.312 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [77] = Binary { op: Multiply, left: [75], right: [76] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.312 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [78] = Binary { op: Add, left: [73], right: [77] } : Handle([5])
2022-01-25 10:15:16.312 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [79] = CallResult([3]) : Handle([3])
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [80] = Constant([26]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [81] = Binary { op: Multiply, left: [79], right: [80] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [82] = Binary { op: Add, left: [74], right: [81] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [83] = AccessIndex { base: [8], index: 1 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [84] = Constant([20]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [85] = Swizzle { size: Tri, vector: [1], pattern: [X, X, X, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [86] = Binary { op: Multiply, left: [84], right: [85] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.313 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [87] = Binary { op: Subtract, left: [53], right: [86] } : Handle([5])
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [88] = CallResult([3]) : Handle([3])
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [89] = Constant([27]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [90] = Binary { op: Multiply, left: [88], right: [89] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [91] = Binary { op: Add, left: [83], right: [90] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [92] = AccessIndex { base: [8], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [93] = CallResult([3]) : Handle([3])
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [94] = Constant([26]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.314 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [95] = Binary { op: Multiply, left: [93], right: [94] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [96] = Binary { op: Add, left: [92], right: [95] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [97] = Compose { ty: [5], components: [[82], [91], [96]] } : Handle([5])
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.315 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([6])
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = AccessIndex { base: [8], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Constant([19]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Binary { op: Multiply, left: [9], right: [10] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = AccessIndex { base: [8], index: 1 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = Binary { op: Multiply, left: [13], right: [4] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.316 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Compose { ty: [5], components: [[11], [12], [14]] } : Handle([5])
2022-01-25 10:15:16.317 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = CallResult([4]) : Handle([5])
2022-01-25 10:15:16.317 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.317 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Compose { ty: [2], components: [[16], [17]] } : Handle([2])
2022-01-25 10:15:16.317 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.317 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.317 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = FunctionArgument(1) : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = FunctionArgument(2) : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Binary { op: Subtract, left: [9], right: [10] } : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Binary { op: Subtract, left: [8], right: [10] } : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Math { fun: Cross, arg: [11], arg1: Some([12]), arg2: None, arg3: None } : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = Math { fun: Normalize, arg: [13], arg1: None, arg2: None, arg3: None } : Handle([5])
2022-01-25 10:15:16.318 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Binary { op: Add, left: [8], right: [9] } : Handle([5])
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = Binary { op: Add, left: [15], right: [10] } : Handle([5])
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Constant([18]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [19] = Binary { op: Divide, left: [17], right: [18] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [20] = Binary { op: Multiply, left: [16], right: [19] } : Handle([5])
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [21] = Binary { op: Subtract, left: [8], right: [20] } : Handle([5])
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [22] = Math { fun: Normalize, arg: [21], arg1: None, arg2: None, arg3: None } : Handle([5])
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [23] = Binary { op: Multiply, left: [22], right: [5] } : Handle([5])
2022-01-25 10:15:16.319 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [24] = Binary { op: Add, left: [23], right: [14] } : Handle([5])
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([5])
2022-01-25 10:15:16.320 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = FunctionArgument(1) : Handle([5])
2022-01-25 10:15:16.321 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Math { fun: Dot, arg: [8], arg1: Some([9]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.321 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Math { fun: Abs, arg: [10], arg1: None, arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.321 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = LocalVariable([1]) : Value(Pointer { base: [3], class: Function })
2022-01-25 10:15:16.321 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Load { pointer: [12] } : Handle([3])
2022-01-25 10:15:16.321 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = Constant([28]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.321 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Math { fun: Pow, arg: [13], arg1: Some([14]), arg2: None, arg3: None } : Handle([3])
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([5])
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = FunctionArgument(1) : Handle([5])
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = FunctionArgument(2) : Handle([5])
2022-01-25 10:15:16.322 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Math { fun: Reflect, arg: [10], arg1: Some([9]), arg2: None, arg3: None } : Handle([5])
2022-01-25 10:15:16.323 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Math { fun: Dot, arg: [8], arg1: Some([11]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.323 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.323 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = Math { fun: Max, arg: [12], arg1: Some([13]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.323 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = LocalVariable([1]) : Value(Pointer { base: [3], class: Function })
2022-01-25 10:15:16.323 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = Load { pointer: [15] } : Handle([3])
2022-01-25 10:15:16.323 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = Constant([29]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.323 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Math { fun: Pow, arg: [16], arg1: Some([17]), arg2: None, arg3: None } : Handle([3])
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = FunctionArgument(0) : Handle([8])
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = FunctionArgument(1) : Handle([9])
2022-01-25 10:15:16.325 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = As { expr: [8], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Swizzle { size: Bi, vector: [9], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Sint, width: 4 })
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = As { expr: [11], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Binary { op: Add, left: [10], right: [12] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = CallResult([5]) : Handle([2])
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Swizzle { size: Bi, vector: [9], pattern: [Z, W, X, X] } : Value(Vector { size: Bi, kind: Sint, width: 4 })
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = As { expr: [15], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = Binary { op: Add, left: [10], right: [16] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.326 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = CallResult([5]) : Handle([2])
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [19] = CallResult([5]) : Handle([2])
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [20] = AccessIndex { base: [10], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [21] = Constant([19]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [22] = Binary { op: Multiply, left: [20], right: [21] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [23] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [24] = AccessIndex { base: [10], index: 1 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [25] = Binary { op: Multiply, left: [24], right: [4] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.327 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [26] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.328 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [27] = Compose { ty: [2], components: [[22], [23], [25], [26]] } : Handle([2])
2022-01-25 10:15:16.328 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [28] = AccessIndex { base: [2], index: 0 } : Value(Pointer { base: [1], class: Uniform })
2022-01-25 10:15:16.328 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [29] = Load { pointer: [28] } : Handle([1])
2022-01-25 10:15:16.328 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [30] = Binary { op: Multiply, left: [29], right: [19] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.328 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [31] = Swizzle { size: Tri, vector: [30], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.328 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [32] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.329 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [33] = AccessIndex { base: [30], index: 3 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.329 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [34] = Binary { op: Divide, left: [32], right: [33] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.329 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [35] = Binary { op: Multiply, left: [31], right: [34] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.329 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [36] = Binary { op: Multiply, left: [29], right: [19] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.329 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [37] = Swizzle { size: Tri, vector: [36], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.329 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [38] = Binary { op: Multiply, left: [29], right: [14] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.329 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [39] = Swizzle { size: Tri, vector: [38], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.330 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [40] = Binary { op: Multiply, left: [29], right: [18] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.330 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [41] = Swizzle { size: Tri, vector: [40], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.330 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [42] = CallResult([6]) : Handle([5])
2022-01-25 10:15:16.330 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [43] = Unary { op: Negate, expr: [35] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.330 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [44] = Math { fun: Normalize, arg: [43], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.330 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [45] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.330 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [46] = Compose { ty: [2], components: [[6], [45]] } : Handle([2])
2022-01-25 10:15:16.331 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [47] = Binary { op: Multiply, left: [29], right: [46] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.331 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [48] = LocalVariable([1]) : Value(Pointer { base: [7], class: Function })
2022-01-25 10:15:16.331 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [49] = AccessIndex { base: [48], index: 3 } : Value(Pointer { base: [5], class: Function })
2022-01-25 10:15:16.331 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [50] = Swizzle { size: Tri, vector: [35], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.331 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [51] = Swizzle { size: Tri, vector: [47], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [52] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [53] = AccessIndex { base: [47], index: 3 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [54] = Binary { op: Divide, left: [52], right: [53] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [55] = Binary { op: Multiply, left: [51], right: [54] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [56] = Binary { op: Subtract, left: [50], right: [55] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [57] = Math { fun: Normalize, arg: [56], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [58] = CallResult([8]) : Handle([3])
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [59] = Binary { op: Multiply, left: [3], right: [58] } : Handle([5])
2022-01-25 10:15:16.332 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [60] = AccessIndex { base: [48], index: 2 } : Value(Pointer { base: [3], class: Function })
2022-01-25 10:15:16.333 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [61] = CallResult([7]) : Handle([3])
2022-01-25 10:15:16.333 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [62] = AccessIndex { base: [2], index: 1 } : Value(Pointer { base: [1], class: Uniform })
2022-01-25 10:15:16.333 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [63] = Load { pointer: [62] } : Handle([1])
2022-01-25 10:15:16.333 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [64] = Binary { op: Multiply, left: [63], right: [29] } : Value(Matrix { columns: Quad, rows: Quad, width: 4 })
2022-01-25 10:15:16.333 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [65] = Binary { op: Multiply, left: [64], right: [27] } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.333 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [66] = AccessIndex { base: [48], index: 1 } : Value(Pointer { base: [6], class: Function })
2022-01-25 10:15:16.333 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [67] = Constant([19]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [68] = Swizzle { size: Bi, vector: [65], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [69] = Binary { op: Multiply, left: [67], right: [68] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [70] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [71] = AccessIndex { base: [65], index: 3 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [72] = Binary { op: Divide, left: [70], right: [71] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [73] = Binary { op: Multiply, left: [69], right: [72] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [74] = Constant([19]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.334 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [75] = Constant([19]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.335 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [76] = Compose { ty: [6], components: [[74], [75]] } : Handle([6])
2022-01-25 10:15:16.335 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [77] = Binary { op: Add, left: [73], right: [76] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.335 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [78] = AccessIndex { base: [48], index: 0 } : Value(Pointer { base: [2], class: Function })
2022-01-25 10:15:16.335 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [79] = AccessIndex { base: [2], index: 1 } : Value(Pointer { base: [1], class: Uniform })
2022-01-25 10:15:16.336 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([33]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.336 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([2]) : Handle([10])
2022-01-25 10:15:16.336 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = GlobalVariable([3]) : Handle([10])
2022-01-25 10:15:16.336 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.336 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = GlobalVariable([4]) : Handle([11])
2022-01-25 10:15:16.336 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = Constant([34]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Constant([32]) : Handle([5])
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = FunctionArgument(0) : Handle([3])
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = Constant([20]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = Binary { op: Multiply, left: [15], right: [14] } : Handle([3])
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.337 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Binary { op: Subtract, left: [16], right: [17] } : Handle([3])
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [19] = Constant([20]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [20] = Binary { op: Multiply, left: [19], right: [1] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [21] = Binary { op: Multiply, left: [20], right: [8] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [22] = Binary { op: Add, left: [8], right: [1] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [23] = Binary { op: Subtract, left: [8], right: [1] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [24] = Binary { op: Multiply, left: [18], right: [23] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [25] = Binary { op: Subtract, left: [22], right: [24] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.338 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [26] = Binary { op: Divide, left: [21], right: [25] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [1] = Constant([33]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [2] = GlobalVariable([2]) : Handle([10])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [3] = GlobalVariable([3]) : Handle([10])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [4] = Constant([8]) : Handle([5])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [5] = GlobalVariable([4]) : Handle([11])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [6] = Constant([9]) : Handle([2])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [7] = GlobalVariable([1]) : Value(Pointer { base: [4], class: Uniform })
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [8] = Constant([34]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [9] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [10] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [11] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [12] = Constant([4]) : Handle([5])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [13] = Constant([32]) : Handle([5])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [14] = FunctionArgument(0) : Handle([7])
2022-01-25 10:15:16.339 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [15] = AccessIndex { base: [14], index: 1 } : Handle([6])
2022-01-25 10:15:16.340 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [16] = Swizzle { size: Bi, vector: [15], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.340 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [17] = ImageSample { image: [2], sampler: [5], gather: None, coordinate: [16], array_index: None, offset: None, level: Auto, depth_ref: None } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.340 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [18] = Swizzle { size: Tri, vector: [17], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
2022-01-25 10:15:16.340 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [19] = AccessIndex { base: [14], index: 0 } : Handle([2])
2022-01-25 10:15:16.340 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [20] = AccessIndex { base: [19], index: 2 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.340 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [21] = CallResult([9]) : Handle([3])
2022-01-25 10:15:16.340 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [22] = AccessIndex { base: [14], index: 0 } : Handle([2])
2022-01-25 10:15:16.341 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [23] = Swizzle { size: Bi, vector: [22], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.341 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [24] = AccessIndex { base: [7], index: 2 } : Value(Pointer { base: [2], class: Uniform })
2022-01-25 10:15:16.341 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [25] = AccessIndex { base: [24], index: 3 } : Value(ValuePointer { size: None, kind: Float, width: 4, class: Uniform })
2022-01-25 10:15:16.341 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [26] = Load { pointer: [25] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.341 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [27] = AccessIndex { base: [7], index: 3 } : Value(Pointer { base: [3], class: Uniform })
2022-01-25 10:15:16.341 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [28] = Load { pointer: [27] } : Handle([3])
2022-01-25 10:15:16.341 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [29] = Compose { ty: [6], components: [[26], [28]] } : Handle([6])
2022-01-25 10:15:16.342 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [30] = Binary { op: Divide, left: [23], right: [29] } : Value(Vector { size: Bi, kind: Float, width: 4 })
2022-01-25 10:15:16.342 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [31] = ImageSample { image: [3], sampler: [5], gather: None, coordinate: [30], array_index: None, offset: None, level: Auto, depth_ref: None } : Value(Vector { size: Quad, kind: Float, width: 4 })
2022-01-25 10:15:16.342 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [32] = AccessIndex { base: [31], index: 0 } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.342 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [33] = CallResult([9]) : Handle([3])
2022-01-25 10:15:16.342 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [34] = Binary { op: Subtract, left: [33], right: [21] } : Handle([3])
2022-01-25 10:15:16.342 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [35] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.342 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [36] = Constant([35]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.343 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [37] = Math { fun: SmoothStep, arg: [35], arg1: Some([36]), arg2: Some([34]), arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.343 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [38] = Constant([36]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.343 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [39] = Math { fun: Pow, arg: [37], arg1: Some([38]), arg2: None, arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.343 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [40] = AccessIndex { base: [14], index: 3 } : Handle([5])
2022-01-25 10:15:16.343 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [41] = Binary { op: Add, left: [40], right: [18] } : Handle([5])
2022-01-25 10:15:16.343 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [42] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.343 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [43] = Constant([37]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.344 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [44] = Math { fun: SmoothStep, arg: [42], arg1: Some([43]), arg2: Some([34]), arg3: None } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.344 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [45] = Constant([38]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.344 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [46] = Binary { op: Multiply, left: [44], right: [45] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.344 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [47] = Compose { ty: [5], components: [[46], [46], [46]] } : Handle([5])
2022-01-25 10:15:16.344 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [48] = Math { fun: Mix, arg: [41], arg1: Some([13]), arg2: Some([47]), arg3: None } : Handle([5])
2022-01-25 10:15:16.345 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [49] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.345 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [50] = AccessIndex { base: [14], index: 2 } : Handle([3])
2022-01-25 10:15:16.345 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [51] = Binary { op: Subtract, left: [49], right: [50] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.345 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [52] = Binary { op: Multiply, left: [39], right: [51] } : Value(Scalar { kind: Float, width: 4 })
2022-01-25 10:15:16.345 24241-24241/name.jinleili.wgpu D/naga::front: Resolving [53] = Compose { ty: [2], components: [[48], [52]] } : Handle([2])
2022-01-25 10:15:16.346 24241-24241/name.jinleili.wgpu D/naga::valid::interface: var GlobalVariable { name: Some("uniforms"), class: Uniform, binding: Some(ResourceBinding { group: 0, binding: 0 }), ty: [4], init: None }
2022-01-25 10:15:16.346 24241-24241/name.jinleili.wgpu D/naga::valid::interface: var GlobalVariable { name: Some("reflection"), class: Handle, binding: Some(ResourceBinding { group: 0, binding: 1 }), ty: [10], init: None }
2022-01-25 10:15:16.346 24241-24241/name.jinleili.wgpu D/naga::valid::interface: var GlobalVariable { name: Some("terrain_depth_tex"), class: Handle, binding: Some(ResourceBinding { group: 0, binding: 2 }), ty: [10], init: None }
2022-01-25 10:15:16.346 24241-24241/name.jinleili.wgpu D/naga::valid::interface: var GlobalVariable { name: Some("colour_sampler"), class: Handle, binding: Some(ResourceBinding { group: 0, binding: 3 }), ty: [11], init: None }
2022-01-25 10:15:16.346 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("temp"), ty: [2], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("i"), ty: [5], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("temp"), ty: [5], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("x"), ty: [2], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("y"), ty: [2], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("p0"), ty: [5], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("p1"), ty: [5], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("p2"), ty: [5], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("p3"), ty: [5], init: None }
2022-01-25 10:15:16.347 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("m"), ty: [2], init: None }
2022-01-25 10:15:16.348 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("perlin_pos"), ty: [5], init: None }
2022-01-25 10:15:16.349 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("refractive"), ty: [3], init: None }
2022-01-25 10:15:16.349 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("specular"), ty: [3], init: None }
2022-01-25 10:15:16.349 24241-24241/name.jinleili.wgpu D/naga::valid::function: var LocalVariable { name: Some("out"), ty: [7], init: None }
2022-01-25 10:15:16.361 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: Naga generated shader:
    #version 320 es
precision highp float;
precision highp int;

struct Uniforms {
    mat4x4 view;
    mat4x4 projection;
    vec4 time_size_width;
    float viewport_height;
};
struct VertexOutput {
    vec4 position;
    vec2 f_WaterScreenPos;
    float f_Fresnel;
    vec3 f_Light;
};
layout(std140, binding = 0) uniform Uniforms_block_0Vertex { Uniforms _group_0_binding_0_vs; };

layout(location = 0) in ivec2 _p2vs_location0;
layout(location = 1) in ivec4 _p2vs_location1;
layout(location = 0) smooth out vec2 _vs2fs_location0;
layout(location = 1) smooth out float _vs2fs_location1;
layout(location = 2) smooth out vec3 _vs2fs_location2;

vec4 permute(vec4 x) {
    vec4 temp = vec4(0.0);
    temp = (289.0 * vec4(1.0, 1.0, 1.0, 1.0));
    return modf((((x * 34.0) + vec4(1.0, 1.0, 1.0, 1.0)) * x), temp);
}

vec4 taylorInvSqrt(vec4 r) {
    return ((1.7928428649902344 * vec4(1.0, 1.0, 1.0, 1.0)) - (0.8537347316741943 * r));
}

float snoise(vec3 v) {
    vec3 i = vec3(0.0);
    vec3 temp_1 = vec3(0.0);
    vec4 x_1 = vec4(0.0);
    vec4 y = vec4(0.0);
    vec3 p0_ = vec3(0.0);
    vec3 p1_ = vec3(0.0);
    vec3 p2_ = vec3(0.0);
    vec3 p3_ = vec3(0.0);
    vec4 m = vec4(0.0);
    vec2 C = vec2((1.0 / 6.0), (1.0 / 3.0));
    vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
    float vCy = dot(v, C.yyy);
    i = floor((v + vec3(vCy, vCy, vCy)));
    vec3 _e26 = i;
    float iCx = dot(_e26, C.xxx);
    vec3 _e29 = i;
    vec3 x0_ = ((v - _e29) + vec3(iCx, iCx, iCx));
    vec3 g = step(x0_.yzx, x0_.xyz);
    vec3 l = (vec3(1.0, 1.0, 1.0) - g).zxy;
    vec3 i1_ = min(g, l);
    vec3 i2_ = max(g, l);
    vec3 x1_ = ((x0_ - i1_) + C.xxx);
    vec3 x2_ = ((x0_ - i2_) + C.yyy);
    vec3 x3_ = (x0_ - D.yyy);
    temp_1 = (289.0 * vec4(1.0, 1.0, 1.0, 1.0).xyz);
    vec3 _e56 = i;
    i = modf(_e56, temp_1);
    vec3 _e58 = i;
    vec4 _e66 = permute((_e58.zzzz + vec4(0.0, i1_.z, i2_.z, 1.0)));
    vec3 _e67 = i;
    vec4 _e76 = permute(((_e66 + _e67.yyyy) + vec4(0.0, i1_.y, i2_.y, 1.0)));
    vec3 _e77 = i;
    vec4 _e86 = permute(((_e76 + _e77.xxxx) + vec4(0.0, i1_.x, i2_.x, 1.0)));
    vec3 ns = ((0.1428571492433548 * D.wyz) - D.xzx);
    vec4 j = (_e86 - (49.0 * floor(((_e86 * ns.z) * ns.z))));
    vec4 x_2 = floor((j * ns.z));
    vec4 y_1 = floor((j - (7.0 * x_2)));
    x_1 = ((x_2 * ns.x) + ns.yyyy);
    y = ((y_1 * ns.x) + ns.yyyy);
    vec4 _e117 = x_1;
    vec4 _e120 = y;
    vec4 h = ((vec4(1.0, 1.0, 1.0, 1.0) - abs(_e117)) - abs(_e120));
    vec4 _e123 = x_1;
    vec4 _e125 = y;
    vec4 b0_ = vec4(_e123.xy, _e125.xy);
    vec4 _e128 = x_1;
    vec4 _e130 = y;
    vec4 b1_ = vec4(_e128.zw, _e130.zw);
    vec4 s0_ = ((floor(b0_) * 2.0) + vec4(1.0, 1.0, 1.0, 1.0));
    vec4 s1_ = ((floor(b1_) * 2.0) + vec4(1.0, 1.0, 1.0, 1.0));
    vec4 sh = (- step(h, (0.0 * vec4(1.0, 1.0, 1.0, 1.0))));
    vec4 a0_ = (b0_.xzyw + (s0_.xzyw * sh.xxyy));
    vec4 a1_ = (b1_.xzyw + (s1_.xzyw * sh.zzww));
    p0_ = vec3(a0_.xy, h.x);
    p1_ = vec3(a0_.zw, h.y);
    p2_ = vec3(a1_.xy, h.z);
    p3_ = vec3(a1_.zw, h.w);
    vec3 _e171 = p0_;
    vec3 _e172 = p0_;
    vec3 _e174 = p1_;
    vec3 _e175 = p1_;
    vec3 _e177 = p2_;
    vec3 _e178 = p2_;
    vec3 _e180 = p3_;
    vec3 _e181 = p3_;
    vec4 _e184 = taylorInvSqrt(vec4(dot(_e171, _e172), dot(_e174, _e175), dot(_e177, _e178), dot(_e180, _e181)));
    vec3 _e185 = p0_;
    p0_ = (_e185 * _e184.x);
    vec3 _e188 = p1_;
    p1_ = (_e188 * _e184.y);
    vec3 _e191 = p2_;
    p2_ = (_e191 * _e184.z);
    vec3 _e194 = p3_;
    p3_ = (_e194 * _e184.w);
    m = max(((0.6000000238418579 * vec4(1.0, 1.0, 1.0, 1.0)) - vec4(dot(x0_, x0_), dot(x1_, x1_), dot(x2_, x2_), dot(x3_, x3_))), (0.0 * vec4(1.0, 1.0, 1.0, 1.0)));
    vec4 _e209 = m;
    vec4 _e210 = m;
    m = (_e209 * _e210);
    vec4 _e213 = m;
    vec4 _e214 = m;
    vec3 _e216 = p0_;
    vec3 _e218 = p1_;
    vec3 _e220 = p2_;
    vec3 _e222 = p3_;

2022-01-25 10:15:16.362 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: return (9.0 * dot((_e213 * _e214), vec4(dot(e216, x0), dot(e218, x1), dot(e220, x2), dot(e222, x3))));
}

vec3 apply_distortion(vec3 pos) {
    vec3 perlin_pos = vec3(0.0);
    perlin_pos = pos;
    float sn = _group_0_binding_0_vs.time_size_width.x;
    float cs = _group_0_binding_0_vs.time_size_width.y;
    float size = _group_0_binding_0_vs.time_size_width.z;
    float _e19 = perlin_pos.y;
    float _e21 = perlin_pos.x;
    float _e25 = perlin_pos.x;
    float _e27 = perlin_pos.z;
    perlin_pos = vec3(((_e19 - _e21) - size), _e25, _e27);
    float _e30 = perlin_pos.x;
    float xcos = (_e30 * cs);
    float _e33 = perlin_pos.x;
    float xsin = (_e33 * sn);
    float _e36 = perlin_pos.y;
    float ycos = (_e36 * cs);
    float _e39 = perlin_pos.y;
    float ysin = (_e39 * sn);
    float _e42 = perlin_pos.z;
    float zcos = (_e42 * cs);
    float _e45 = perlin_pos.z;
    float zsin = (_e45 * sn);
    float _e49 = perlin_pos.y;
    vec3 perlin_pos_y = vec3((xcos + zsin), _e49, ((- xsin) + xcos));
    float _e56 = perlin_pos.x;
    vec3 perlin_pos_z = vec3((xcos - ysin), (xsin + ycos), _e56);
    float _e59 = perlin_pos.z;
    float _e61 = perlin_pos.x;
    float _e64 = perlin_pos.y;
    float _e66 = perlin_pos.x;
    perlin_pos = vec3((_e59 - _e61), _e64, _e66);
    float _e69 = perlin_pos.x;
    vec3 perlin_pos_x = vec3(_e69, (ycos - zsin), (ysin + zcos));
    float _e78 = snoise((perlin_pos_x + (2.0 * vec4(1.0, 1.0, 1.0, 1.0).xxx)));
    float _e87 = snoise((perlin_pos_y - (2.0 * vec4(1.0, 1.0, 1.0, 1.0).xxx)));
    float _e92 = snoise(perlin_pos_z);
    return vec3((pos.x + (_e78 * 0.4000000059604645)), (pos.y + (_e87 * 1.7999999523162842)), (pos.z + (_e92 * 0.4000000059604645)));
}

vec4 make_position(vec2 original) {
    vec3 interpreted = vec3((original.x * 0.5), 0.0, (original.y * 0.8660253882408142));
    vec3 _e15 = apply_distortion(interpreted);
    return vec4(_e15, 1.0);
}

vec3 make_normal(vec3 a, vec3 b, vec3 c) {
    vec3 norm = normalize(cross((b - c), (a - c)));
    vec3 center = (((a + b) + c) * (1.0 / 3.0));
    return (((normalize((a - center)) * -0.10000000149011612) + norm) * 1.1111111640930176);
}

float calc_fresnel(vec3 view, vec3 normal) {
    float refractive = 0.0;
    refractive = abs(dot(view, normal));
    float _e12 = refractive;
    refractive = pow(_e12, 1.3333333730697632);
    float _e15 = refractive;
    return _e15;
}

float calc_specular(vec3 eye, vec3 normal_1, vec3 light) {
    float specular = 0.0;
    vec3 light_reflected = reflect(light, normal_1);
    specular = max(dot(eye, light_reflected), 0.0);
    float _e15 = specular;
    specular = pow(_e15, 10.0);
    float _e18 = specular;
    return _e18;
}

float to_linear_depth(float depth) {
    float z_n = ((2.0 * depth) - 1.0);
    float z_e = (((2.0 * 10.0) * 400.0) / ((400.0 + 10.0) - (z_n * (400.0 - 10.0))));
    return z_e;
}

void main() {
    ivec2 position = _p2vs_location0;
    ivec4 offsets = _p2vs_location1;
    VertexOutput out_ = VertexOutput(vec4(0.0), vec2(0.0), 0.0, vec3(0.0));
    vec2 p_pos = vec2(position);
    vec4 _e13 = make_position((p_pos + vec2(offsets.xy)));
    vec4 _e17 = make_position((p_pos + vec2(offsets.zw)));
    vec4 _e18 = make_position(p_pos);
    vec4 original_pos = vec4((p_pos.x * 0.5), 0.0, (p_pos.y * 0.8660253882408142), 1.0);
    mat4x4 vm = _group_0_binding_0_vs.view;
    vec4 transformed_pos = (vm * _e18);
    vec3 water_pos = (transformed_pos.xyz * (1.0 / transformed_pos.w));
    vec3 _e41 = make_normal((vm * _e18).xyz, (vm * _e13).xyz, (vm * _e17).xyz);
    vec3 eye_1 = normalize((- water_pos));
    vec4 transformed_light = (vm * vec4(vec3(150.0, 70.0, 0.0), 1.0));
    float _e57 = calc_specular(eye_1, _e41, normalize((water_pos.xyz - (transformed_light.xyz * (1.0 / transformed_light.w)))));
    out_.f_Light = (vec3(1.0, 0.9800000190734863, 0.8199999928474426) * _e57);
    float _e60 = calc_fresnel(eye_1, _e41);
    out_.f_Fresnel = _e60;

2022-01-25 10:15:16.362 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: mat4x4 _e62 = _group_0_binding_0_vs.projection;
vec4 gridpos = ((e62 * vm) * original_pos);
out
.f_WaterScreenPos = (((0.5 * gridpos.xy) * (1.0 / gridpos.w)) + vec2(0.5, 0.5));
mat4x4 _e79 = group_0_binding_0_vs.projection;
out
.position = (_e79 * transformed_pos);
VertexOutput e81 = out;
gl_Position = _e81.position;
_vs2fs_location0 = _e81.f_WaterScreenPos;
_vs2fs_location1 = _e81.f_Fresnel;
_vs2fs_location2 = _e81.f_Light;
gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w);
return;
}
2022-01-25 10:15:16.362 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: Rebind buffer: Some("uniforms") -> Uniforms_block_0Vertex, register=UniformBuffers, slot=0
2022-01-25 10:15:16.497 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::device: Compiled shader NativeShader(5)
2022-01-25 10:15:16.506 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: Naga generated shader:
#version 320 es

precision highp float;
precision highp int;

struct Uniforms {
    mat4x4 view;
    mat4x4 projection;
    vec4 time_size_width;
    float viewport_height;
};
struct VertexOutput {
    vec4 position;
    vec2 f_WaterScreenPos;
    float f_Fresnel;
    vec3 f_Light;
};
layout(std140, binding = 0) uniform Uniforms_block_0Fragment { Uniforms _group_0_binding_0_fs; };

layout(binding = 0) uniform highp sampler2D _group_0_binding_1_fs;

layout(binding = 1) uniform highp sampler2D _group_0_binding_2_fs;

layout(location = 0) smooth in vec2 _vs2fs_location0;
layout(location = 1) smooth in float _vs2fs_location1;
layout(location = 2) smooth in vec3 _vs2fs_location2;
layout(location = 0) out vec4 _fs2p_location0;

vec4 permute(vec4 x) {
    vec4 temp = vec4(0.0);
    temp = (289.0 * vec4(1.0, 1.0, 1.0, 1.0));
    return modf((((x * 34.0) + vec4(1.0, 1.0, 1.0, 1.0)) * x), temp);
}

vec4 taylorInvSqrt(vec4 r) {
    return ((1.7928428649902344 * vec4(1.0, 1.0, 1.0, 1.0)) - (0.8537347316741943 * r));
}

float snoise(vec3 v) {
    vec3 i = vec3(0.0);
    vec3 temp_1 = vec3(0.0);
    vec4 x_1 = vec4(0.0);
    vec4 y = vec4(0.0);
    vec3 p0_ = vec3(0.0);
    vec3 p1_ = vec3(0.0);
    vec3 p2_ = vec3(0.0);
    vec3 p3_ = vec3(0.0);
    vec4 m = vec4(0.0);
    vec2 C = vec2((1.0 / 6.0), (1.0 / 3.0));
    vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
    float vCy = dot(v, C.yyy);
    i = floor((v + vec3(vCy, vCy, vCy)));
    vec3 _e26 = i;
    float iCx = dot(_e26, C.xxx);
    vec3 _e29 = i;
    vec3 x0_ = ((v - _e29) + vec3(iCx, iCx, iCx));
    vec3 g = step(x0_.yzx, x0_.xyz);
    vec3 l = (vec3(1.0, 1.0, 1.0) - g).zxy;
    vec3 i1_ = min(g, l);
    vec3 i2_ = max(g, l);
    vec3 x1_ = ((x0_ - i1_) + C.xxx);
    vec3 x2_ = ((x0_ - i2_) + C.yyy);
    vec3 x3_ = (x0_ - D.yyy);
    temp_1 = (289.0 * vec4(1.0, 1.0, 1.0, 1.0).xyz);
    vec3 _e56 = i;
    i = modf(_e56, temp_1);
    vec3 _e58 = i;
    vec4 _e66 = permute((_e58.zzzz + vec4(0.0, i1_.z, i2_.z, 1.0)));
    vec3 _e67 = i;
    vec4 _e76 = permute(((_e66 + _e67.yyyy) + vec4(0.0, i1_.y, i2_.y, 1.0)));
    vec3 _e77 = i;
    vec4 _e86 = permute(((_e76 + _e77.xxxx) + vec4(0.0, i1_.x, i2_.x, 1.0)));
    vec3 ns = ((0.1428571492433548 * D.wyz) - D.xzx);
    vec4 j = (_e86 - (49.0 * floor(((_e86 * ns.z) * ns.z))));
    vec4 x_2 = floor((j * ns.z));
    vec4 y_1 = floor((j - (7.0 * x_2)));
    x_1 = ((x_2 * ns.x) + ns.yyyy);
    y = ((y_1 * ns.x) + ns.yyyy);
    vec4 _e117 = x_1;
    vec4 _e120 = y;
    vec4 h = ((vec4(1.0, 1.0, 1.0, 1.0) - abs(_e117)) - abs(_e120));
    vec4 _e123 = x_1;
    vec4 _e125 = y;
    vec4 b0_ = vec4(_e123.xy, _e125.xy);
    vec4 _e128 = x_1;
    vec4 _e130 = y;
    vec4 b1_ = vec4(_e128.zw, _e130.zw);
    vec4 s0_ = ((floor(b0_) * 2.0) + vec4(1.0, 1.0, 1.0, 1.0));
    vec4 s1_ = ((floor(b1_) * 2.0) + vec4(1.0, 1.0, 1.0, 1.0));
    vec4 sh = (- step(h, (0.0 * vec4(1.0, 1.0, 1.0, 1.0))));
    vec4 a0_ = (b0_.xzyw + (s0_.xzyw * sh.xxyy));
    vec4 a1_ = (b1_.xzyw + (s1_.xzyw * sh.zzww));
    p0_ = vec3(a0_.xy, h.x);
    p1_ = vec3(a0_.zw, h.y);
    p2_ = vec3(a1_.xy, h.z);
    p3_ = vec3(a1_.zw, h.w);
    vec3 _e171 = p0_;
    vec3 _e172 = p0_;
    vec3 _e174 = p1_;
    vec3 _e175 = p1_;
    vec3 _e177 = p2_;
    vec3 _e178 = p2_;
    vec3 _e180 = p3_;
    vec3 _e181 = p3_;
    vec4 _e184 = taylorInvSqrt(vec4(dot(_e171, _e172), dot(_e174, _e175), dot(_e177, _e178), dot(_e180, _e181)));
    vec3 _e185 = p0_;
    p0_ = (_e185 * _e184.x);
    vec3 _e188 = p1_;
    p1_ = (_e188 * _e184.y);
    vec3 _e191 = p2_;
    p2_ = (_e191 * _e184.z);
    vec3 _e194 = p3_;
    p3_ = (_e194 * _e184.w);
    m = max(((0.6000000238418579 * vec4(1.0, 1.0, 1.0, 1.0)) - vec4(dot(x0_, x0_), dot(x1_, x1_), dot(x2_, x2_), dot(x3_, x3_))), (0.0 * vec4(1.0, 1.0, 1.0, 1.0)));
    vec4 _e209 = m;
    vec4 _e210 = m;
    m = (_e209 * _e210);
    vec4 _e213 = m;
    vec4 _e214 = m;
    vec3 _e216 = p0_;
    vec3 _e218 = p1_;
    vec3 _e220 = p2_;
    vec3 _e222 = p3_;

2022-01-25 10:15:16.507 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: return (9.0 * dot((_e213 * _e214), vec4(dot(e216, x0), dot(e218, x1), dot(e220, x2), dot(e222, x3))));
}

vec3 apply_distortion(vec3 pos) {
    vec3 perlin_pos = vec3(0.0);
    perlin_pos = pos;
    float sn = _group_0_binding_0_fs.time_size_width.x;
    float cs = _group_0_binding_0_fs.time_size_width.y;
    float size = _group_0_binding_0_fs.time_size_width.z;
    float _e19 = perlin_pos.y;
    float _e21 = perlin_pos.x;
    float _e25 = perlin_pos.x;
    float _e27 = perlin_pos.z;
    perlin_pos = vec3(((_e19 - _e21) - size), _e25, _e27);
    float _e30 = perlin_pos.x;
    float xcos = (_e30 * cs);
    float _e33 = perlin_pos.x;
    float xsin = (_e33 * sn);
    float _e36 = perlin_pos.y;
    float ycos = (_e36 * cs);
    float _e39 = perlin_pos.y;
    float ysin = (_e39 * sn);
    float _e42 = perlin_pos.z;
    float zcos = (_e42 * cs);
    float _e45 = perlin_pos.z;
    float zsin = (_e45 * sn);
    float _e49 = perlin_pos.y;
    vec3 perlin_pos_y = vec3((xcos + zsin), _e49, ((- xsin) + xcos));
    float _e56 = perlin_pos.x;
    vec3 perlin_pos_z = vec3((xcos - ysin), (xsin + ycos), _e56);
    float _e59 = perlin_pos.z;
    float _e61 = perlin_pos.x;
    float _e64 = perlin_pos.y;
    float _e66 = perlin_pos.x;
    perlin_pos = vec3((_e59 - _e61), _e64, _e66);
    float _e69 = perlin_pos.x;
    vec3 perlin_pos_x = vec3(_e69, (ycos - zsin), (ysin + zcos));
    float _e78 = snoise((perlin_pos_x + (2.0 * vec4(1.0, 1.0, 1.0, 1.0).xxx)));
    float _e87 = snoise((perlin_pos_y - (2.0 * vec4(1.0, 1.0, 1.0, 1.0).xxx)));
    float _e92 = snoise(perlin_pos_z);
    return vec3((pos.x + (_e78 * 0.4000000059604645)), (pos.y + (_e87 * 1.7999999523162842)), (pos.z + (_e92 * 0.4000000059604645)));
}

vec4 make_position(vec2 original) {
    vec3 interpreted = vec3((original.x * 0.5), 0.0, (original.y * 0.8660253882408142));
    vec3 _e15 = apply_distortion(interpreted);
    return vec4(_e15, 1.0);
}

vec3 make_normal(vec3 a, vec3 b, vec3 c) {
    vec3 norm = normalize(cross((b - c), (a - c)));
    vec3 center = (((a + b) + c) * (1.0 / 3.0));
    return (((normalize((a - center)) * -0.10000000149011612) + norm) * 1.1111111640930176);
}

float calc_fresnel(vec3 view, vec3 normal) {
    float refractive = 0.0;
    refractive = abs(dot(view, normal));
    float _e12 = refractive;
    refractive = pow(_e12, 1.3333333730697632);
    float _e15 = refractive;
    return _e15;
}

float calc_specular(vec3 eye, vec3 normal_1, vec3 light) {
    float specular = 0.0;
    vec3 light_reflected = reflect(light, normal_1);
    specular = max(dot(eye, light_reflected), 0.0);
    float _e15 = specular;
    specular = pow(_e15, 10.0);
    float _e18 = specular;
    return _e18;
}

float to_linear_depth(float depth) {
    float z_n = ((2.0 * depth) - 1.0);
    float z_e = (((2.0 * 10.0) * 400.0) / ((400.0 + 10.0) - (z_n * (400.0 - 10.0))));
    return z_e;
}

void main() {
    VertexOutput in_ = VertexOutput(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2);
    vec4 _e16 = texture(_group_0_binding_1_fs, vec2(in_.f_WaterScreenPos.xy));
    vec3 reflection_colour = _e16.xyz;
    float _e20 = to_linear_depth(in_.position.z);
    float _e25 = _group_0_binding_0_fs.time_size_width.w;
    float _e27 = _group_0_binding_0_fs.viewport_height;
    vec2 normalized_coords = (in_.position.xy / vec2(_e25, _e27));
    vec4 _e30 = texture(_group_0_binding_2_fs, vec2(normalized_coords));
    float _e32 = to_linear_depth(_e30.x);
    float dist = (_e32 - _e20);
    float clamped = pow(smoothstep(0.0, 1.5, dist), 4.800000190734863);
    vec3 final_colour = (in_.f_Light + reflection_colour);
    float t = (smoothstep(1.0, 5.0, dist) * 0.20000000298023224);
    vec3 depth_colour = mix(final_colour, vec3(0.0, 0.46000000834465027, 0.949999988079071), vec3(t, t, t));
    _fs2p_location0 = vec4(depth_colour, (clamped * (1.0 - in_.f_Fresnel)));
    return;
}

2022-01-25 10:15:16.507 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: Rebind buffer: Some("uniforms") -> Uniforms_block_0Fragment, register=UniformBuffers, slot=0
2022-01-25 10:15:16.522 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::device: Compiled shader NativeShader(6)
2022-01-25 10:15:17.031 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::device: Linked program NativeProgram(4)
2022-01-25 10:15:17.035 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: Naga generated shader:
#version 320 es

precision highp float;
precision highp int;

struct Uniforms {
    mat4x4 projection_view;
    vec4 clipping_plane;
};
struct VertexOutput {
    vec4 position;
    vec4 colour;
    float clip_dist;
};
layout(std140, binding = 0) uniform Uniforms_block_0Vertex { Uniforms _group_0_binding_0_vs; };

layout(location = 0) in vec3 _p2vs_location0;
layout(location = 1) in vec3 _p2vs_location1;
layout(location = 2) in vec4 _p2vs_location2;
layout(location = 0) smooth out vec4 _vs2fs_location0;
layout(location = 1) smooth out float _vs2fs_location1;

void main() {
    vec3 position = _p2vs_location0;
    vec3 normal = _p2vs_location1;
    vec4 colour = _p2vs_location2;
    VertexOutput out_ = VertexOutput(vec4(0.0), vec4(0.0), 0.0);
    mat4x4 _e10 = _group_0_binding_0_vs.projection_view;
    out_.position = (_e10 * vec4(position, 1.0));
    vec3 normalized_light_direction = normalize((position - vec3(150.0, 70.0, 0.0)));
    float brightness_diffuse = clamp(dot(normalized_light_direction, normal), 0.20000000298023224, 1.0);
    out_.colour = vec4(max((((brightness_diffuse + 0.20000000298023224) * vec3(1.0, 0.9800000190734863, 0.8199999928474426)) * colour.xyz), vec3(0.0, 0.0, 0.0)), colour.w);
    vec4 _e36 = _group_0_binding_0_vs.clipping_plane;
    out_.clip_dist = dot(vec4(position, 1.0), _e36);
    VertexOutput _e38 = out_;
    gl_Position = _e38.position;
    _vs2fs_location0 = _e38.colour;
    _vs2fs_location1 = _e38.clip_dist;
    gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w);
    return;
}

2022-01-25 10:15:17.035 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: Rebind buffer: Some("uniforms") -> Uniforms_block_0Vertex, register=UniformBuffers, slot=0
2022-01-25 10:15:17.040 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::device: Compiled shader NativeShader(8)
2022-01-25 10:15:17.043 24241-24241/name.jinleili.wgpu D/wgpu_hal::gles::device: Naga generated shader:
#version 320 es

precision highp float;
precision highp int;

layout(early_fragment_tests) in;

struct Uniforms {
    mat4x4 projection_view;
    vec4 clipping_plane;
};
struct VertexOutput {
    vec4 position;
    vec4 colour;
    float clip_dist;
};
layout(location = 0) smooth in vec4 _vs2fs_location0;
layout(location = 1) smooth in float _vs2fs_location1;
layout(location = 0) out vec4 _fs2p_location0;

void main() {
    VertexOutput in_ = VertexOutput(gl_FragCoord, _vs2fs_location0, _vs2fs_location1);
    if ((in_.clip_dist < 0.0)) {
        discard;
    }
    _fs2p_location0 = vec4(in_.colour.xyz, 1.0);
    return;
}

2022-01-25 10:15:17.047 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::device: Compiled shader NativeShader(9)
2022-01-25 10:15:17.059 24241-24241/name.jinleili.wgpu I/wgpu_hal::gles::device: Linked program NativeProgram(7)
2022-01-25 10:15:17.059 24241-24241/name.jinleili.wgpu I/wgpu_on_app::wgpu_can..: example created
2022-01-25 10:15:17.060 24241-24241/name.jinleili.wgpu I/wgpu_on_app::ffi: WgpuCanvas created!
2022-01-25 10:15:17.077 24241-24241/name.jinleili.wgpu I/Choreographer: Skipped 90 frames! The application may be doing too much work on its main thread.
2022-01-25 10:15:17.093 24241-24241/name.jinleili.wgpu W/MaterialButtonToggleGroup: Child order wasn't updated
2022-01-25 10:15:17.093 24241-24241/name.jinleili.wgpu I/chatty: uid=10106(name.jinleili.wgpu) identical 2 lines
2022-01-25 10:15:17.093 24241-24241/name.jinleili.wgpu W/MaterialButtonToggleGroup: Child order wasn't updated
2022-01-25 10:15:17.122 24241-24246/name.jinleili.wgpu I/zygote64: Do partial code cache collection, code=29KB, data=27KB
2022-01-25 10:15:17.122 24241-24246/name.jinleili.wgpu I/zygote64: After code cache collection, code=29KB, data=27KB
2022-01-25 10:15:17.123 24241-24246/name.jinleili.wgpu I/zygote64: Increasing code cache capacity to 128KB
2022-01-25 10:15:17.129 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.167 24241-24241/name.jinleili.wgpu D/vndksupport: Loading /vendor/lib64/hw/[email protected] from current namespace instead of sphal namespace.
2022-01-25 10:15:17.169 24241-24241/name.jinleili.wgpu D/vndksupport: Loading /vendor/lib64/hw/gralloc.msm8992.so from current namespace instead of sphal namespace.
2022-01-25 10:15:17.171 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.177 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 2, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.188 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.400 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 3, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.407 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.419 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 4, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.435 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.447 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 5, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.470 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.480 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 6, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.497 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.513 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 7, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.529 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.547 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 8, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.560 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.563 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 9, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.573 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.579 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 10, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.591 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.596 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 11, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.609 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.629 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 12, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.635 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.645 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 13, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.654 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.696 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 14, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.703 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.711 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 15, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.720 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.728 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 16, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.739 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.745 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 17, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.748 24241-24246/name.jinleili.wgpu I/zygote64: Do partial code cache collection, code=60KB, data=45KB
2022-01-25 10:15:17.748 24241-24246/name.jinleili.wgpu I/zygote64: After code cache collection, code=60KB, data=45KB
2022-01-25 10:15:17.748 24241-24246/name.jinleili.wgpu I/zygote64: Increasing code cache capacity to 256KB
2022-01-25 10:15:17.760 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.778 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 18, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.784 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.795 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 19, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.802 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.811 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 20, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.819 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.828 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 21, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.837 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.845 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 22, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.853 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.861 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 23, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.873 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.878 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 24, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.890 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.894 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 25, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.906 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.911 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 26, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.924 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.928 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 27, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.940 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.945 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 28, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.956 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.961 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 29, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.973 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:17.977 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 30, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:17.991 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.010 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 31, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.018 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.027 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 32, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.035 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.043 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 33, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.052 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.060 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 34, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.069 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.077 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 35, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.089 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.103 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 36, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.116 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.127 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 37, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.141 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.160 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 38, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.173 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.177 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 39, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.188 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.199 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 40, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.209 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.226 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 41, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.239 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.243 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 42, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.255 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.260 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 43, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.274 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.293 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 44, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.305 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.310 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 45, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.322 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.326 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 46, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.338 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.343 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 47, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.354 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.359 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 48, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.371 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.376 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 49, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.387 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.393 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 50, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.402 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.409 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 51, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.418 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.426 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 52, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.434 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.442 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 53, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.450 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.459 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 54, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.466 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.475 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 55, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.483 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.492 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 56, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.499 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.508 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 57, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.516 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.525 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 58, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.533 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.542 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 59, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.549 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.558 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 60, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.566 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.575 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 61, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.582 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.591 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 62, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.600 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.608 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 63, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.615 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.625 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 64, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.632 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.641 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 65, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.649 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.658 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 66, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.665 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.674 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 67, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.682 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.691 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 68, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.698 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.707 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 69, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.715 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.724 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 70, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.731 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.741 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 71, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.749 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.757 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 72, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.765 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.774 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 73, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.781 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.790 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 74, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.798 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.807 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 75, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.816 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.824 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 76, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.832 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.840 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 77, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.849 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.857 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 78, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.864 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.873 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 79, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.881 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.890 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 80, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.898 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.907 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 81, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.915 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.923 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 82, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.932 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.940 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 83, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.949 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.954 24241-24246/name.jinleili.wgpu I/zygote64: Compiler allocated 6MB to compile void android.view.ViewRootImpl.performTraversals()
2022-01-25 10:15:18.957 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 84, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.965 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.973 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 85, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.980 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:18.990 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 86, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:18.997 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.006 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 87, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.013 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.023 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 88, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.030 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.039 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 89, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.047 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.056 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 90, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.064 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.072 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 91, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.080 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.089 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 92, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.097 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.106 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 93, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.113 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.122 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 94, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.130 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.139 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 95, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.146 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.155 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 96, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.163 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.172 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 97, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.179 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.189 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 98, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.196 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.205 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 99, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.214 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.222 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 100, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.230 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.239 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 101, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.246 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.255 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 102, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.264 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.271 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 103, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.279 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.288 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 104, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.295 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.305 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 105, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.312 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.321 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 106, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.329 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.338 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 107, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.345 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.354 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 108, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.362 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.371 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 109, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.379 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.388 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 110, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.396 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.405 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 111, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.412 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.421 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 112, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.437 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.453 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 113, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.461 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.470 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 114, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.478 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.487 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 115, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.495 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.504 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 116, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:19.511 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:19.520 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 117, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:30.467 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:30.472 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 750, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:30.484 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:30.489 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 751, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:30.500 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:30.505 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 752, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:30.517 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:30.522 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 753, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:30.535 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:30.539 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 754, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:30.552 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:30.555 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 755, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:30.567 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:30.572 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 756, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.833 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.838 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1004, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.849 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.855 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1005, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.866 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.871 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1006, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.883 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.887 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1007, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.899 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.905 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1008, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.918 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.921 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1009, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.933 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.937 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1010, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.949 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.954 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1011, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.965 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.970 24241-24241/name.jinleili.wgpu D/wgpu_core::device: Create view for texture (2, 1012, Gl) filters usages to COLOR_TARGET
2022-01-25 10:15:34.981 24241-24241/name.jinleili.wgpu D/wgpu_core::present: Presented. End of Frame
2022-01-25 10:15:34.986 24241-24241/name.jinleili.wgpu E/wgpu_hal::gles::egl: GLES: [Other/Performance] ID 2147483647 : Namespace collision detected, using slow path

Graphics Analyzer captured gl function stack:

截屏2022-01-25 10 09 14

@kvark
Copy link
Member

kvark commented Jan 25, 2022

Interesting, so this isn't related to read-only depth.
If I read your report correctly, it's crashing on glObjectLabel?
I double checked everything, and things seem to be in order:

  • the buffer has a valid ID
  • name is indeed of length 21, non-null-terminated
  • maximum length of a label is 255
  • GLES version is 3.2, which has glObjectLabel supported

So it looks like a driver bug, but we'll need more information to know exactly. Like a proper call stack.

@jinleili
Copy link
Contributor Author

I've tried Android Studio debug mode also cann't capture call stack, only throwed last panic message:

E/wgpu_hal::gles::egl: GLES: [Other/Performance] ID 2147483647 : Namespace collision detected, using slow path

ARM's Graphics Analyzer tool can perfectly debug vulkan, but debug gl always crashed at third frame on all my android phones. If I find a way to get call stack, I'll feed back here.

@cwfitzgerald cwfitzgerald added external: driver-bug A driver is causing the bug, though we may still want to work around it api: vulkan Issues with Vulkan api: gles Issues with GLES or WebGL and removed api: vulkan Issues with Vulkan labels Jun 4, 2022
@teoxoy
Copy link
Member

teoxoy commented Aug 12, 2023

I suppose this was closed due to #4031.

Since RODS causes undefined behavior on OpenGL (ES), a random crash is in scope.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: gles Issues with GLES or WebGL external: driver-bug A driver is causing the bug, though we may still want to work around it
Projects
None yet
Development

No branches or pull requests

4 participants