gfx-rs / wgpu

A cross-platform, safe, pure-Rust graphics API.
https://wgpu.rs
Apache License 2.0
12.13k stars 881 forks source link

Issue with egui on Nexus 10 / Android 5.1.1 #2987

Closed Zoxc closed 11 months ago

Zoxc commented 2 years ago

I ran into panics trying to run egui / eframe on Nexus 10. wgpu 0.13.1 is used. The following 2 lines from logcat seems most relevant:

E/wgpu_hal::gles::egl(16083): GLES: [API/Error] ID 96 : Error:glFramebufferTextur
I/RustStdoutStderr(16083): thread '<unnamed>' panicked at 'called glDisablei but it was not loaded.', C:\Users\John\.cargo\registry\src\github.com-1ecc6299db9ec823\glow-0.11.2\src\gl46.rs:4232:5

There's also an error with printing an error,

I/RustStdoutStderr(16083): thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Utf8Error { valid_up_to: 7, error_len: Some(1) }', C:\Users\John\.cargo\registry\src\github.com-1ecc6299db9ec823\glow-0.11.2\src\native.rs:2770:46

Not sure if that hides anything interesting.

Complete log:

D/OpenGLRenderer(16083): Use EGL_SWAP_BEHAVIOR_PRESERVED: true
D/Atlas   (16083): Validating map...
I/RustStdoutStderr(16083): MainEventInsetsChanged
W/winit::platform_impl:..(16083): TODO: handle Android InsetsChanged notification
I/RustStdoutStderr(16083): MainEventInsetsChanged
W/winit::platform_impl:..(16083): TODO: handle Android InsetsChanged notification
I/OpenGLRenderer(16083): Initialized EGL, version 1.4
D/OpenGLRenderer(16083): Enabling debug mode 0
D/mali_winsys(16083): new_window_surface returns 0x3000
D/GameActivity(16083): onSurfaceCreated_native
D/GameActivity(16083): onSurfaceChanged_native
D/GameActivity(16083): onSurfaceRedrawNeeded_native
I/RustStdoutStderr(16083): MainEventInitWindow
I/wgpu_hal::vulkan::ins..(16083): Missing Vulkan entry points: LibraryLoadFailure(DlOpen { desc: "dlopen failed: library \"libvulkan.so\" not found" })
E/libEGL  (16083): validate_display:255 error 3008 (EGL_BAD_DISPLAY)
D/wgpu_hal::gles::egl(16083): Client extensions: []
I/wgpu_hal::gles::egl(16083): EGL_MESA_platform_surfaceless not available. Using default platform
I/wgpu_hal::gles::egl(16083): Display vendor "Android", version (1, 4)
D/wgpu_hal::gles::egl(16083): Display extensions: [
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_get_all_proc_addresses",
D/wgpu_hal::gles::egl(16083):     "EGL_ANDROID_presentation_time",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_image",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_image_base",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_gl_texture_2D_image",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_gl_texture_cubemap_image",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_gl_renderbuffer_image",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_fence_sync",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_create_context",
D/wgpu_hal::gles::egl(16083):     "EGL_ANDROID_image_native_buffer",
D/wgpu_hal::gles::egl(16083):     "EGL_KHR_wait_sync",
D/wgpu_hal::gles::egl(16083):     "EGL_ANDROID_recordable",
D/wgpu_hal::gles::egl(16083): ]
W/wgpu_hal::gles::egl(16083):   EGL surface: -srgb
D/GameActivity(16083): onSurfaceRedrawNeeded_native
I/wgpu_hal::gles::egl(16083):   Trying presentation
W/wgpu_hal::gles::egl(16083): EGL says it can present to the window but not natively
I/wgpu_hal::gles::egl(16083):   EGL context: +debug KHR
W/wgpu_hal::gles::egl(16083):   EGL context: -robust access
I/wgpu_hal::gles::egl(16083): Max label length: 256
I/wgpu_hal::gles::egl(16083): Enabling GLES debug output
I/wgpu_hal::gles::adapter(16083): Vendor: ARM
I/wgpu_hal::gles::adapter(16083): Renderer: Mali-T604
I/wgpu_hal::gles::adapter(16083): Version: OpenGL ES 3.1
D/wgpu_hal::gles::adapter(16083): Extensions: {
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_sRGB",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_sRGB_write_control",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_shader_image_atomic",
D/wgpu_hal::gles::adapter(16083):     "GL_ARM_shader_framebuffer_fetch",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_vertex_half_float",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_texture_format_BGRA8888",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_texture_stencil8",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_EGL_image",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_shadow_samplers",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_shader_pixel_local_storage",
D/wgpu_hal::gles::adapter(16083):     "GL_KHR_blend_equation_advanced",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_standard_derivatives",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_EGL_sync",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_texture_rg",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_element_index_uint",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_mapbuffer",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_texture_sRGB_decode",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_blend_minmax",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_texture_npot",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_texture_storage_multisample_2d_array",
D/wgpu_hal::gles::adapter(16083):     "GL_ARM_shader_framebuffer_fetch_depth_stencil",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_read_format_bgra",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_depth24",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_surfaceless_context",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_compressed_paletted_texture",
D/wgpu_hal::gles::adapter(16083):     "GL_ARM_mali_shader_binary",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_required_internalformat",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_fbo_render_mipmap",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_occlusion_query_boolean",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_texture_type_2_10_10_10_REV",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_packed_depth_stencil",
D/wgpu_hal::gles::adapter(16083):     "GL_ARM_mali_program_binary",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_rgb8_rgba8",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_multisampled_render_to_texture",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_texture_storage",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_disjoint_timer_query",
D/wgpu_hal::gles::adapter(16083):     "GL_EXT_discard_framebuffer",
D/wgpu_hal::gles::adapter(16083):     "GL_ARM_rgba8",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_EGL_image_external",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_get_program_binary",
D/wgpu_hal::gles::adapter(16083):     "GL_KHR_debug",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_vertex_array_object",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_compressed_ETC1_RGB8_texture",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_depth_texture_cube_map",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_texture_3D",
D/wgpu_hal::gles::adapter(16083):     "GL_OES_depth_texture",
D/wgpu_hal::gles::adapter(16083): }
I/wgpu_hal::gles::adapter(16083): SL version: OpenGL ES GLSL ES 3.10
D/GameActivity(16083): onWindowFocusChanged_native
I/ActivityManager(  404): Displayed zoxc.crusader/.MainActivity: +627ms
I/GoogleInputMethodServic(12410): GoogleInputMethodService.onFinishInput():3235
I/GoogleInputMethodServic(12410): GoogleInputMethodService.onStartInput():1858
I/wgpu_core::instance(16083): Adapter Gl AdapterInfo { name: "Mali-T604", vendor: 5045, device: 0, device_type: IntegratedGpu, backend: Gl }
D/naga::front(16083): Resolving [1] = GlobalVariable([1]) : Value(Pointer { base: [5], space: Uniform })
D/naga::front(16083): Resolving [2] = FunctionArgument(0) : Handle([6])
D/naga::front(16083): Resolving [3] = Constant([1]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [4] = Splat { size: Tri, value: [3] } : Value(Vector { size: Tri, kind: Float, width: 4 })
D/naga::front(16083): Resolving [5] = Binary { op: Less, left: [2], right: [4] } : Value(Vector { size: Tri, kind: Bool, width: 1 })
D/naga::front(16083): Resolving [6] = Constant([2]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [7] = Splat { size: Tri, value: [6] } : Value(Vector { size: Tri, kind: Float, width: 4 })
D/naga::front(16083): Resolving [8] = Binary { op: Divide, left: [2], right: [7] } : Handle([6])
D/naga::front(16083): Resolving [9] = Constant([3]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [10] = Splat { size: Tri, value: [9] } : Value(Vector { size: Tri, kind: Float, width: 4 })
D/naga::front(16083): Resolving [11] = Binary { op: Add, left: [2], right: [10] } : Handle([6])
D/naga::front(16083): Resolving [12] = Constant([4]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [13] = Splat { size: Tri, value: [12] } : Value(Vector { size: Tri, kind: Float, width: 4 })
D/naga::front(16083): Resolving [14] = Binary { op: Divide, left: [11], right: [13] } : Handle([6])
D/naga::front(16083): Resolving [15] = Constant([5]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [16] = Splat { size: Tri, value: [15] } : Value(Vector { size: Tri, kind: Float, width: 4 })
D/naga::front(16083): Resolving [17] = Math { fun: Pow, arg: [14], arg1: Some([16]), arg2: None, arg3: None } : Handle([6])
D/naga::front(16083): Resolving [18] = Select { condition: [5], accept: [8], reject: [17] } : Handle([6])
D/naga::front(16083): Resolving [1] = GlobalVariable([1]) : Value(Pointer { base: [5], space: Uniform })
D/naga::front(16083): Resolving [2] = FunctionArgument(0) : Handle([7])
D/naga::front(16083): Resolving [3] = Constant([6]) : Value(Scalar { kind: Uint, width: 4 })
D/naga::front(16083): Resolving [4] = Binary { op: And, left: [2], right: [3] } : Handle([7])
D/naga::front(16083): Resolving [5] = As { expr: [4], kind: Float, convert: Some(4) } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [6] = Constant([7]) : Value(Scalar { kind: Uint, width: 4 })
D/naga::front(16083): Resolving [7] = Binary { op: ShiftRight, left: [2], right: [6] } : Handle([7])
D/naga::front(16083): Resolving [8] = Constant([6]) : Value(Scalar { kind: Uint, width: 4 })
D/naga::front(16083): Resolving [9] = Binary { op: And, left: [7], right: [8] } : Handle([7])
D/naga::front(16083): Resolving [10] = As { expr: [9], kind: Float, convert: Some(4) } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [11] = Constant([8]) : Value(Scalar { kind: Uint, width: 4 })
D/naga::front(16083): Resolving [12] = Binary { op: ShiftRight, left: [2], right: [11] } : Handle([7])
D/naga::front(16083): Resolving [13] = Constant([6]) : Value(Scalar { kind: Uint, width: 4 })
D/naga::front(16083): Resolving [14] = Binary { op: And, left: [12], right: [13] } : Handle([7])
D/naga::front(16083): Resolving [15] = As { expr: [14], kind: Float, convert: Some(4) } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [16] = Constant([9]) : Value(Scalar { kind: Uint, width: 4 })
D/naga::front(16083): Resolving [17] = Binary { op: ShiftRight, left: [2], right: [16] } : Handle([7])
D/naga::front(16083): Resolving [18] = Constant([6]) : Value(Scalar { kind: Uint, width: 4 })
D/naga::front(16083): Resolving [19] = Binary { op: And, left: [17], right: [18] } : Handle([7])
D/naga::front(16083): Resolving [20] = As { expr: [19], kind: Float, convert: Some(4) } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [21] = Compose { ty: [2], components: [[5], [10], [15], [20]] } : Handle([2])
D/naga::front(16083): Resolving [1] = GlobalVariable([1]) : Value(Pointer { base: [5], space: Uniform })
D/naga::front(16083): Resolving [2] = FunctionArgument(0) : Handle([1])
D/naga::front(16083): Resolving [3] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [4] = AccessIndex { base: [2], index: 0 } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [5] = Binary { op: Multiply, left: [3], right: [4] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [6] = AccessIndex { base: [1], index: 0 } : Value(Pointer { base: [1], space: Uniform })
D/naga::front(16083): Resolving [7] = AccessIndex { base: [6], index: 0 } : Value(ValuePointer { size: None, kind: Float, width: 4, space: Uniform })
D/naga::front(16083): Resolving [8] = Load { pointer: [7] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [9] = Binary { op: Divide, left: [5], right: [8] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [10] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [11] = Binary { op: Subtract, left: [9], right: [10] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [12] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [13] = Constant([10]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [14] = AccessIndex { base: [2], index: 1 } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [15] = Binary { op: Multiply, left: [13], right: [14] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [16] = AccessIndex { base: [1], index: 0 } : Value(Pointer { base: [1], space: Uniform })
D/naga::front(16083): Resolving [17] = AccessIndex { base: [16], index: 1 } : Value(ValuePointer { size: None, kind: Float, width: 4, space: Uniform })
D/naga::front(16083): Resolving [18] = Load { pointer: [17] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [19] = Binary { op: Divide, left: [15], right: [18] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [20] = Binary { op: Subtract, left: [12], right: [19] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [21] = Constant([12]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [22] = Constant([11]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [23] = Compose { ty: [2], components: [[11], [20], [21], [22]] } : Handle([2])
D/naga::front(16083): Resolving [1] = GlobalVariable([1]) : Value(Pointer { base: [5], space: Uniform })
D/naga::front(16083): Resolving [2] = FunctionArgument(0) : Handle([1])
D/naga::front(16083): Resolving [3] = FunctionArgument(1) : Handle([1])
D/naga::front(16083): Resolving [4] = FunctionArgument(2) : Handle([7])
D/naga::front(16083): Resolving [5] = LocalVariable([1]) : Value(Pointer { base: [3], space: Function })
D/naga::front(16083): Resolving [6] = AccessIndex { base: [5], index: 0 } : Value(Pointer { base: [1], space: Function })
D/naga::front(16083): Resolving [7] = CallResult([2]) : Handle([2])
D/naga::front(16083): Resolving [8] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [2], space: Function })
D/naga::front(16083): Resolving [9] = Swizzle { size: Tri, vector: [7], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, kind: Float, width: 4 })
D/naga::front(16083): Resolving [10] = CallResult([1]) : Handle([6])
D/naga::front(16083): Resolving [11] = AccessIndex { base: [7], index: 3 } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [12] = Constant([13]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [13] = Binary { op: Divide, left: [11], right: [12] } : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [14] = Compose { ty: [2], components: [[10], [13]] } : Handle([2])
D/naga::front(16083): Resolving [15] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [2], space: Function })
D/naga::front(16083): Resolving [16] = CallResult([3]) : Handle([2])
D/naga::front(16083): Resolving [1] = GlobalVariable([1]) : Value(Pointer { base: [5], space: Uniform })
D/naga::front(16083): Resolving [2] = FunctionArgument(0) : Handle([1])
D/naga::front(16083): Resolving [3] = FunctionArgument(1) : Handle([1])
D/naga::front(16083): Resolving [4] = FunctionArgument(2) : Handle([7])
D/naga::front(16083): Resolving [5] = LocalVariable([1]) : Value(Pointer { base: [3], space: Function })
D/naga::front(16083): Resolving [6] = AccessIndex { base: [5], index: 0 } : Value(Pointer { base: [1], space: Function })
D/naga::front(16083): Resolving [7] = CallResult([2]) : Handle([2])
D/naga::front(16083): Resolving [8] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [2], space: Function })
D/naga::front(16083): Resolving [9] = Swizzle { size: Quad, vector: [7], pattern: [X, Y, Z, W] } : Value(Vector { size: Quad, kind: Float, width: 4 })
D/naga::front(16083): Resolving [10] = Constant([13]) : Value(Scalar { kind: Float, width: 4 })
D/naga::front(16083): Resolving [11] = Splat { size: Quad, value: [10] } : Value(Vector { size: Quad, kind: Float, width: 4 })
D/naga::front(16083): Resolving [12] = Binary { op: Divide, left: [9], right: [11] } : Value(Vector { size: Quad, kind: Float, width: 4 })
D/naga::front(16083): Resolving [13] = As { expr: [12], kind: Float, convert: Some(4) } : Value(Vector { size: Quad, kind: Float, width: 4 })
D/naga::front(16083): Resolving [14] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [2], space: Function })
D/naga::front(16083): Resolving [15] = CallResult([3]) : Handle([2])
D/naga::front(16083): Resolving [1] = GlobalVariable([3]) : Handle([9])
D/naga::front(16083): Resolving [2] = GlobalVariable([1]) : Value(Pointer { base: [5], space: Uniform })
D/naga::front(16083): Resolving [3] = GlobalVariable([2]) : Handle([8])
D/naga::front(16083): Resolving [4] = FunctionArgument(0) : Handle([3])
D/naga::front(16083): Resolving [5] = AccessIndex { base: [4], index: 1 } : Handle([2])
D/naga::front(16083): Resolving [6] = AccessIndex { base: [4], index: 0 } : Handle([1])
D/naga::front(16083): Resolving [7] = ImageSample { image: [3], sampler: [1], gather: None, coordinate: [6], array_index: None, offset: None, level: Auto, depth_ref: None } : Value(Vector { size: Quad, kind: Float, width: 4 })
D/naga::valid::interface(16083): var GlobalVariable { name: Some("r_locals"), space: Uniform, binding: Some(ResourceBinding { group: 0, binding: 0 }), ty: [5], init: None }
D/naga::valid::interface(16083): var GlobalVariable { name: Some("r_tex_color"), space: Handle, binding: Some(ResourceBinding { group: 1, binding: 0 }), ty: [8], init: None }
D/naga::valid::interface(16083): var GlobalVariable { name: Some("r_tex_sampler"), space: Handle, binding: Some(ResourceBinding { group: 1, binding: 1 }), ty: [9], init: None }
D/naga::valid::function(16083): var LocalVariable { name: Some("out"), ty: [3], init: None }
D/naga::valid::function(16083): var LocalVariable { name: Some("out"), ty: [3], init: None }
I/wgpu_core::device(16083): Created buffer Valid((0, 1, Gl)) with BufferDescriptor { label: Some("egui_uniform_buffer"), size: 16, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (0, 1, Gl) map state -> Idle
D/wgpu_core::device(16083): Bind group Valid((0, 1, Gl))
D/wgpu_hal::gles::device(16083): Naga generated shader:
D/wgpu_hal::gles::device(16083): #version 310 es
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): precision highp float;
D/wgpu_hal::gles::device(16083): precision highp int;
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): struct VertexOutput {
D/wgpu_hal::gles::device(16083):     vec2 tex_coord;
D/wgpu_hal::gles::device(16083):     vec4 color;
D/wgpu_hal::gles::device(16083):     vec4 position;
D/wgpu_hal::gles::device(16083): };
D/wgpu_hal::gles::device(16083): struct Locals {
D/wgpu_hal::gles::device(16083):     vec2 screen_size;
D/wgpu_hal::gles::device(16083):     uvec2 _padding;
D/wgpu_hal::gles::device(16083): };
D/wgpu_hal::gles::device(16083): layout(std140, binding = 0) uniform Locals_block_0Vertex { Locals _group_0_binding_0_vs; };
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): layout(location = 0) in vec2 _p2vs_location0;
D/wgpu_hal::gles::device(16083): layout(location = 1) in vec2 _p2vs_location1;
D/wgpu_hal::gles::device(16083): layout(location = 2) in uint _p2vs_location2;
D/wgpu_hal::gles::device(16083): layout(location = 0) smooth out vec2 _vs2fs_location0;
D/wgpu_hal::gles::device(16083): layout(location = 1) smooth out vec4 _vs2fs_location1;
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): vec3 linear_from_srgb(vec3 srgb) {
D/wgpu_hal::gles::device(16083):     bvec3 cutoff = lessThan(srgb, vec3(10.314749717712402));
D/wgpu_hal::gles::device(16083):     vec3 lower = (srgb / vec3(3294.60009765625));
D/wgpu_hal::gles::device(16083):     vec3 higher = pow(((srgb + vec3(14.024999618530273)) / vec3(269.0249938964844)), vec3(2.4000000953674316));
D/wgpu_hal::gles::device(16083):     return mix(higher, lower, cutoff);
D/wgpu_hal::gles::device(16083): }
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): vec4 unpack_color(uint color) {
D/wgpu_hal::gles::device(16083):     return vec4(float((color & 255u)), float(((color >> 8u) & 255u)), float(((color >> 16u) & 255u)), float(((color >> 24u) & 255u)));
D/wgpu_hal::gles::device(16083): }
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): vec4 position_from_screen(vec2 screen_pos) {
D/wgpu_hal::gles::device(16083):     float _e7 = _group_0_binding_0_vs.screen_size.x;
D/wgpu_hal::gles::device(16083):     float _e17 = _group_0_binding_0_vs.screen_size.y;
D/wgpu_hal::gles::device(16083):     return vec4((((2.0 * screen_pos.x) / _e7) - 1.0), (1.0 - ((2.0 * screen_pos.y) / _e17)), 0.0, 1.0);
D/wgpu_hal::gles::device(16083): }
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): void main() {
D/wgpu_hal::gles::device(16083):     vec2 a_pos_1 = _p2vs_location0;
D/wgpu_hal::gles::device(16083):     vec2 a_tex_coord_1 = _p2vs_location1;
D/wgpu_hal::gles::device(16083):     uint a_color_1 = _p2vs_location2;
D/wgpu_hal::gles::device(16083):     VertexOutput out_1 = VertexOutput(vec2(0.0), vec4(0.0), vec4(0.0));
D/wgpu_hal::gles::device(16083):     out_1.tex_coord = a_tex_coord_1;
D/wgpu_hal::gles::device(16083):     vec4 _e6 = unpack_color(a_color_1);
D/wgpu_hal::gles::device(16083):     out_1.color = vec4((_e6.xyzw / vec4(255.0)));
D/wgpu_hal::gles::device(16083):     vec4 _e14 = position_from_screen(a_pos_1);
D/wgpu_hal::gles::device(16083):     out_1.position = _e14;
D/wgpu_hal::gles::device(16083):     VertexOutput _e15 = out_1;
D/wgpu_hal::gles::device(16083):     _vs2fs_location0 = _e15.tex_coord;
D/wgpu_hal::gles::device(16083):     _vs2fs_location1 = _e15.color;
D/wgpu_hal::gles::device(16083):     gl_Position = _e15.position;
D/wgpu_hal::gles::device(16083):     gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w);
D/wgpu_hal::gles::device(16083):     return;
D/wgpu_hal::gles::device(16083): }
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): Rebind buffer: Some("r_locals") -> Locals_block_0Vertex, register=UniformBuffers, slot=0
I/wgpu_hal::gles::device(16083):        Compiled shader NativeShader(5)
D/wgpu_hal::gles::device(16083): Naga generated shader:
D/wgpu_hal::gles::device(16083): #version 310 es
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): precision highp float;
D/wgpu_hal::gles::device(16083): precision highp int;
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): struct VertexOutput {
D/wgpu_hal::gles::device(16083):     vec2 tex_coord;
D/wgpu_hal::gles::device(16083):     vec4 color;
D/wgpu_hal::gles::device(16083):     vec4 position;
D/wgpu_hal::gles::device(16083): };
D/wgpu_hal::gles::device(16083): struct Locals {
D/wgpu_hal::gles::device(16083):     vec2 screen_size;
D/wgpu_hal::gles::device(16083):     uvec2 _padding;
D/wgpu_hal::gles::device(16083): };
D/wgpu_hal::gles::device(16083): layout(binding = 0) uniform highp sampler2D _group_1_binding_0_fs;
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): layout(location = 0) smooth in vec2 _vs2fs_location0;
D/wgpu_hal::gles::device(16083): layout(location = 1) smooth in vec4 _vs2fs_location1;
D/wgpu_hal::gles::device(16083): layout(location = 0) out vec4 _fs2p_location0;
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): vec3 linear_from_srgb(vec3 srgb) {
D/wgpu_hal::gles::device(16083):     bvec3 cutoff = lessThan(srgb, vec3(10.314749717712402));
D/wgpu_hal::gles::device(16083):     vec3 lower = (srgb / vec3(3294.60009765625));
D/wgpu_hal::gles::device(16083):     vec3 higher = pow(((srgb + vec3(14.024999618530273)) / vec3(269.0249938964844)), vec3(2.4000000953674316));
D/wgpu_hal::gles::device(16083):     return mix(higher, lower, cutoff);
D/wgpu_hal::gles::device(16083): }
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): vec4 unpack_color(uint color) {
D/wgpu_hal::gles::device(16083):     return vec4(float((color & 255u)), float(((color >> 8u) & 255u)), float(((color >> 16u) & 255u)), float(((color >> 24u) & 255u)));
D/wgpu_hal::gles::device(16083): }
D/wgpu_hal::gles::device(16083):
D/wgpu_hal::gles::device(16083): void main() {
D/wgpu_hal::gles::device(16083):     VertexOutput in_ = VertexOutput(_vs2fs_location0, _vs2fs_location1, gl_FragCoord);
D/wgpu_hal::gles::device(16083):     vec4 _e6 = texture(_group_1_binding_0_fs, vec2(in_.tex_coord));
D/wgpu_hal::gles::device(16083):     _fs2p_location0 = (in_.color * _e6);
D/wgpu_hal::gles::device(16083):     return;
D/wgpu_hal::gles::device(16083): }
D/wgpu_hal::gles::device(16083):
I/wgpu_hal::gles::device(16083):        Compiled shader NativeShader(6)
I/wgpu_hal::gles::device(16083):        Linked program NativeProgram(4)
I/wgpu_core::device(16083): Created render pipeline Valid((0, 1, Gl)) with RenderPipelineDescriptor { label: Some("egui_pipeline"), layout: Some((0, 1, Gl)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Gl), entry_point: "vs_conv_main" }, buffers: [VertexBufferLayout { array_stride: 20, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x2, offset: 0, shader_location: 0 }, VertexAttribute { format: Float32x2, offset: 8, shader_location: 1 }, VertexAttribute { format: Uint32, offset: 16, shader_location: 2 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask: 18446744073709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (0, 1, Gl), entry_point: "fs_main" }, targets: [Some(ColorTargetState { format: Rgba8Unorm, blend: Some(BlendState { color: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: OneMinusDstAlpha, dst_factor: One, operation: Add } }), write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
D/wgpu_core::device(16083): pipeline layout (0, 1, Gl) is dropped
D/wgpu_core::device(16083): bind group layout (0, 1, Gl) is dropped
D/wgpu_core::device(16083): shader module (0, 1, Gl) is dropped
I/wgpu_core::device(16083): configuring surface with SurfaceConfiguration { usage: RENDER_ATTACHMENT, format: Rgba8Unorm, width: 1600, height: 2560, present_mode: Fifo }
D/mali_winsys(16083): new_window_surface returns 0x3000
D/wgpu_core::device(16083): Create view for texture (0, 1, Gl) filters usages to COLOR_TARGET
I/FontLog (  976): Received query Noto Color Emoji Compat, URI content://com.google.android.gms.fonts [CONTEXT service_id=132 ]
I/FontLog (  976): Query [emojicompat-emoji-font] resolved to {Noto Color Emoji Compat, wdth 100.0, wght 400, ital 0.0, bestEffort false} [CONTEXT service_id=132 ]
I/FontLog (  976): Fetch {Noto Color Emoji Compat, wdth 100.0, wght 400, ital 0.0, bestEffort false} end status Status{statusCode=SUCCESS, resolution=null} [CONTEXT service_id=132 ]
I/FontLog (  976): Pulling font file for id = 8, cache size = 6 [CONTEXT service_id=132 ]
I/FontLog (  976): Pulling font file for id = 8, cache size = 6 [CONTEXT service_id=132 ]
I/wgpu_core::device(16083): Created texture Valid((1, 1, Gl)) with TextureDescriptor { label: None, size: Extent3d { width: 2048, height: 256, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING }
D/wgpu_core::device(16083): Create view for texture (1, 1, Gl) filters usages to RESOURCE
D/wgpu_core::device(16083): Bind group Valid((1, 1, Gl))
D/wgpu_core::device(16083): texture view (1, 1, Gl) is dropped
D/wgpu_core::device(16083): sampler (0, 1, Gl) is dropped
I/wgpu_core::device(16083): Created buffer Valid((1, 1, Gl)) with BufferDescriptor { label: Some("egui_index_buffer"), size: 2520, usage: COPY_DST | INDEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (1, 1, Gl) map state -> Idle
I/wgpu_core::device(16083): Created buffer Valid((2, 1, Gl)) with BufferDescriptor { label: Some("egui_vertex_buffer"), size: 5920, usage: COPY_DST | VERTEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (2, 1, Gl) map state -> Idle
I/wgpu_core::device(16083): Created buffer Valid((3, 1, Gl)) with BufferDescriptor { label: Some("egui_index_buffer"), size: 216, usage: COPY_DST | INDEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (3, 1, Gl) map state -> Idle
I/wgpu_core::device(16083): Created buffer Valid((4, 1, Gl)) with BufferDescriptor { label: Some("egui_vertex_buffer"), size: 720, usage: COPY_DST | VERTEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (4, 1, Gl) map state -> Idle
I/wgpu_core::device(16083): Created buffer Valid((5, 1, Gl)) with BufferDescriptor { label: Some("egui_index_buffer"), size: 744, usage: COPY_DST | INDEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (5, 1, Gl) map state -> Idle
I/wgpu_core::device(16083): Created buffer Valid((6, 1, Gl)) with BufferDescriptor { label: Some("egui_vertex_buffer"), size: 1360, usage: COPY_DST | VERTEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (6, 1, Gl) map state -> Idle
I/wgpu_core::device(16083): Created buffer Valid((7, 1, Gl)) with BufferDescriptor { label: Some("egui_index_buffer"), size: 7320, usage: COPY_DST | INDEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (7, 1, Gl) map state -> Idle
I/wgpu_core::device(16083): Created buffer Valid((8, 1, Gl)) with BufferDescriptor { label: Some("egui_vertex_buffer"), size: 15680, usage: COPY_DST | VERTEX, mapped_at_creation: true }
D/wgpu_core::device(16083): Buffer (8, 1, Gl) map state -> Idle
I/RustStdoutStderr(16083): thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Utf8Error { valid_up_to: 7, error_len: Some(1) }', C:\Users\John\.cargo\registry\src\github.com-1ecc6299db9ec823\glow-0.11.2\src\native.rs:2770:46
I/RustStdoutStderr(16083): note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
E/wgpu_hal::gles::egl(16083): GLES: [API/Error] ID 96 : Error:glFramebufferTextur
E/wgpu_hal::gles::egl(16083): GLES: [API/Error] ID 96 : Error:glFramebufferTextur
E/wgpu_hal::gles::egl(16083): GLES: [API/Error] ID 96 : Error:glFramebufferTextur
E/wgpu_hal::gles::egl(16083): GLES: [API/Error] ID 96 : Error:glFramebufferTextur
I/RustStdoutStderr(16083): thread '<unnamed>' panicked at 'called glDisablei but it was not loaded.', C:\Users\John\.cargo\registry\src\github.com-1ecc6299db9ec823\glow-0.11.2\src\gl46.rs:4232:5
I/RustStdoutStderr(16083): fatal runtime error: failed to initiate panic, error 9
cwfitzgerald commented 2 years ago

What on earth....