Repository: flutter
Issue: [Impeller] Warning about IO manager initialization in the OpenGL ES custom embedder.
Labels: engine,good first issue,P2,e: impeller,team-engine,triaged-engine

### Is there an existing issue for this?

- [X] I have searched the [existing issues](https://github.com/flutter/flutter/issues)
- [X] I have read the [guide to filing a bug](https://flutter.dev/docs/resources/bug-reports)

### Steps to reproduce

Generic Linux embedder with FlutterRendererConfig set for OpenGL with a valid make_resource_current callback.


### Expected results

That make_resource_context gets called.

### Actual results

```
[WARNING:flutter/shell/common/shell_io_manager.cc(58)] The IO manager was initialized without a resource context. Async texture uploads will be disabled. Expect performance degradation.
```

### Code sample

NA.  Engine impeller issue


### Screenshots or Video

_No response_

### Logs

<details><summary>Logs</summary>

```console
/mnt/raid10/stargate/ivi-homescreen-dev/cmake-build-debug/shell/homescreen --b=/mnt/raid10/workspace-automation/app/flutter-wonderous-app/.homescreen --w=1920 --h=720 --enable-impeller --verbose-logging --p=1
[11:35:23.575015] [D] Bundle Path: /mnt/raid10/workspace-automation/app/flutter-wonderous-app/.homescreen
[11:35:23.575287] [D] VM Arg Count: 2
[11:35:23.575294] [D] --enable-impeller
[11:35:23.575299] [D] --verbose-logging
[11:35:23.575310] [D] View Count: 1
[11:35:23.575397] [I] jw/impeller @ fce66ab6
[11:35:23.575409] [I] **********
[11:35:23.575413] [I] * Global *
[11:35:23.575417] [I] **********
[11:35:23.575424] [I] Application Id: .......... homescreen
[11:35:23.575434] [I] Disable Cursor: .......... false
[11:35:23.575444] [I] Debug Backend: ........... false
[11:35:23.575452] [I] ********
[11:35:23.575456] [I] * View *
[11:35:23.575461] [I] ********
[11:35:23.575465] [I] VM Args:
[11:35:23.575469] [I] --enable-impeller
[11:35:23.575474] [I] --verbose-logging
[11:35:23.575479] [I] Bundle Path: .............. /mnt/raid10/workspace-automation/app/flutter-wonderous-app/.homescreen
[11:35:23.575488] [I] Window Type: .............. NORMAL
[11:35:23.575501] [I] Output Index: ............. 0
[11:35:23.575507] [I] Size: ..................... 1920 x 720
[11:35:23.575512] [I] Fullscreen: ............... false
[11:35:23.575522] [I] Accessibility Features: ... 0
[11:35:23.575696] [T] + Display()
[11:35:23.576040] [D] Wayland: wl_compositor version 5
[11:35:23.576067] [D] 	Buffer Scale Enabled
[11:35:23.576093] [D] Wayland: wl_drm version 2
[11:35:23.576105] [D] Wayland: wl_shm version 1
[11:35:23.596935] [D] Wayland: wl_output version 4
[11:35:23.596978] [D] Wayland: Output [0]
[11:35:23.597093] [D] Wayland: zxdg_output_manager_v1 version 3
[11:35:23.597100] [D] Wayland: wl_data_device_manager version 3
[11:35:23.597107] [D] Wayland: zwp_primary_selection_device_manager_v1 version 1
[11:35:23.597115] [D] Wayland: wl_subcompositor version 1
[11:35:23.597133] [D] Wayland: xdg_wm_base version 4
[11:35:23.597156] [D] Wayland: gtk_shell1 version 5
[11:35:23.597162] [D] Wayland: wp_viewporter version 1
[11:35:23.597168] [D] Wayland: wp_fractional_scale_manager_v1 version 1
[11:35:23.597174] [D] Wayland: zwp_pointer_gestures_v1 version 3
[11:35:23.597180] [D] Wayland: zwp_tablet_manager_v2 version 1
[11:35:23.597186] [D] Wayland: wl_seat version 8
[11:35:23.597212] [T] + EventTimer()
[11:35:23.597232] [T] + EventTimer::watch_timerfd()
[11:35:23.597241] [T] - EventTimer::watch_timerfd()
[11:35:23.597247] [T] + EventTimer::set_timerspec()
[11:35:23.597252] [T] - EventTimer::set_timerspec()
[11:35:23.597258] [D] Wayland: zwp_relative_pointer_manager_v1 version 1
[11:35:23.597265] [D] Wayland: zwp_pointer_constraints_v1 version 1
[11:35:23.597271] [D] Wayland: zxdg_exporter_v2 version 1
[11:35:23.597276] [D] Wayland: zxdg_importer_v2 version 1
[11:35:23.597282] [D] Wayland: zxdg_exporter_v1 version 1
[11:35:23.597291] [D] Wayland: zxdg_importer_v1 version 1
[11:35:23.597300] [D] Wayland: zwp_linux_dmabuf_v1 version 4
[11:35:23.597309] [D] Wayland: wp_single_pixel_buffer_manager_v1 version 1
[11:35:23.597318] [D] Wayland: zwp_keyboard_shortcuts_inhibit_manager_v1 version 1
[11:35:23.597327] [D] Wayland: zwp_text_input_manager_v3 version 1
[11:35:23.597335] [D] Wayland: wp_presentation version 1
[11:35:23.597343] [D] Wayland: xdg_activation_v1 version 1
[11:35:23.597350] [T] - Display()
[11:35:23.597359] [D] +App::App
[11:35:23.963548] [D] EGL 1.5
[11:35:23.963583] [T] +EGL_KHR_debug_init
[11:35:23.963648] [D] EGL_KHR_debug
[11:35:23.963660] [T] -EGL_KHR_debug_init
[11:35:23.963672] [D] EGL has 112 configs
[11:35:23.963694] [D] Buffer size for config 0 is 32
[11:35:23.965236] [T] Context=0x60b00002ddd0
[11:35:23.966123] [T] Resource Context=0x60b00002df30
[11:35:23.966933] [T] Texture Context=0x60b00002e090
[11:35:23.966949] [T] +MakeCurrent(), thread_id=0x7ffff7edc2c0
[11:35:23.969356] [T] EGL Context=0x60b00002ddd0
[11:35:23.969363] [T] -MakeCurrent()
[11:35:23.969370] [D] EGL_EXT_swap_buffers_with_damage found
[11:35:23.969381] [D] EGL_KHR_partial_update Not Found
[11:35:23.969386] [D] GL_EXT_buffer_age found
[11:35:23.969389] [D] EGL Version: 1.5
[11:35:23.969393] [D] EGL Vendor: Mesa Project
[11:35:23.969399] [D] EGL Extensions: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_present_opaque EGL_EXT_swap_buffers_with_damage EGL_IMG_context_priority EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_context_flush_control EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_WL_bind_wayland_display EGL_WL_create_wayland_buffer_from_image 
[11:35:23.969422] [D] GL Vendor: AMD
[11:35:23.969433] [D] GL Renderer: AMD Radeon Graphics (raphael_mendocino, LLVM 16.0.6, DRM 3.52, 6.4.15-200.fc38.x86_64)
[11:35:23.969438] [D] GL Version: OpenGL ES 3.2 Mesa 23.1.7
[11:35:23.969444] [D] GL Shading Language Version: OpenGL ES GLSL ES 3.20
[11:35:23.969712] [D] GL Extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_draw_instanced GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_AMD_performance_monitor GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_pack_subimage GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_OES_viewport_array GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_occlusion_query_boolean GL_EXT_robustness GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_NV_generate_mipmap_sRGB GL_NV_pixel_buffer_object GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_debug_label GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects GL_EXT_shader_group_vote GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix GL_EXT_tessellation_point_size GL_EXT_tessellation_shader GL_ANDROID_extension_pack_es31a GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_gpu_shader5 GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box GL_EXT_render_snorm GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_cube_map_array GL_EXT_texture_norm16 GL_EXT_texture_view GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_image_formats GL_NV_shader_noperspective_interpolation GL_OES_copy_image GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_gpu_shader5 GL_OES_primitive_bounding_box GL_OES_sample_shading GL_OES_sample_variables GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation GL_OES_tessellation_point_size GL_OES_tessellation_shader GL_OES_texture_border_clamp GL_OES_texture_buffer GL_OES_texture_cube_map_array GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view GL_EXT_blend_func_extended GL_EXT_buffer_storage GL_EXT_float_blend GL_EXT_geometry_point_size GL_EXT_geometry_shader GL_EXT_shader_samples_identical GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_OES_EGL_image_external_essl3 GL_OES_geometry_point_size GL_OES_geometry_shader GL_OES_shader_image_atomic GL_EXT_clear_texture GL_EXT_clip_cull_distance GL_EXT_disjoint_timer_query GL_EXT_texture_compression_s3tc_srgb GL_EXT_window_rectangles GL_MESA_shader_integer_functions GL_EXT_clip_control GL_EXT_color_buffer_half_float GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_texture_compression_bptc GL_EXT_texture_mirror_clamp_to_edge GL_KHR_parallel_shader_compile GL_NV_alpha_to_coverage_dither_control GL_AMD_framebuffer_multisample_advanced GL_EXT_EGL_image_storage GL_EXT_texture_shadow_lod GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y GL_NV_compute_shader_derivatives GL_EXT_demote_to_helper_invocation GL_EXT_depth_clamp GL_EXT_texture_query_lod GL_MESA_bgra 
[11:35:23.969737] [T] +ClearCurrent(), thread_id=0x7ffff7edc2c0
[11:35:23.969747] [T] EGL Context=0x0, thread_id=0x7ffff7edc2c0
[11:35:23.969750] [T] -ClearCurrent()
[11:35:23.969772] [D] Width: 1920, Height: 720
[11:35:23.969783] [T] (0) + WaylandWindow()
[11:35:23.969820] [D] Physical width: 800 mm x 340 mm
[11:35:23.969844] [D] Video mode: 3440 x 1440 @ 59.995 Hz
[11:35:23.969848] [D] Display Scale Factor: 2
[11:35:23.969852] [I] Pointer Present
[11:35:23.969858] [I] Keyboard Present
[11:35:23.969865] [D] Seat: seat0
[11:35:23.973914] [T] + EventTimer::set_timerspec()
[11:35:23.973933] [T] - EventTimer::set_timerspec()
[11:35:23.973941] [D] [keyboard repeat info] rate: 33, delay: 500
[11:35:23.974073] [T] (0) - WaylandWindow()
[11:35:23.974143] [D] (0) PersistentCachePath: /home/joel/.homescreen
[11:35:23.974152] [T] (0) +Engine::Engine
[11:35:23.974439] [D] (0) libflutter_engine.so: /mnt/raid10/workspace-automation/app/flutter-wonderous-app/.homescreen/lib/libflutter_engine.so
[11:35:23.974449] [D] Platform Task Runner, thread_id=0x7fffe5c106c0
[11:35:24.746106] [D] (0) flutter_assets: /mnt/raid10/workspace-automation/app/flutter-wonderous-app/.homescreen/data/flutter_assets
[11:35:24.746161] [D] (0) icudtl.dat: /mnt/raid10/workspace-automation/app/flutter-wonderous-app/.homescreen/data/icudtl.dat
[11:35:24.746174] [I] (0) Runtime=debug
[11:35:24.746193] [T] (0) -Engine::Engine
[11:35:24.746204] [T] (0) +Engine::Run
[11:35:24.753353] [T] +MakeCurrent(), thread_id=0x7ffff7edc2c0
[11:35:24.754834] [T] EGL Context=0x60b00002ddd0
[11:35:24.754841] [T] -MakeCurrent()
[11:35:24.754955] [D] dlopen: libGLESv2.so
[11:35:24.755000] [D] dlopen: libEGL.so
[11:35:24.755008] [T] glGetError
[11:35:24.755013] [T] glActiveTexture
[11:35:24.755016] [T] glAttachShader
[11:35:24.755020] [T] glBindAttribLocation
[11:35:24.755024] [T] glBindBuffer
[11:35:24.755027] [T] glBindFramebuffer
[11:35:24.755031] [T] glBindRenderbuffer
[11:35:24.755035] [T] glBindTexture
[11:35:24.755038] [T] glBlendEquationSeparate
[11:35:24.755042] [T] glBlendFuncSeparate
[11:35:24.755045] [T] glBufferData
[11:35:24.755047] [T] glCheckFramebufferStatus
[11:35:24.755050] [T] glClear
[11:35:24.755054] [T] glClearColor
[11:35:24.755057] [T] glClearDepthf
[11:35:24.755060] [T] glClearStencil
[11:35:24.755063] [T] glColorMask
[11:35:24.755066] [T] glCompileShader
[11:35:24.755069] [T] glCreateProgram
[11:35:24.755072] [T] glCreateShader
[11:35:24.755075] [T] glCullFace
[11:35:24.755079] [T] glDeleteBuffers
[11:35:24.755082] [T] glDeleteFramebuffers
[11:35:24.755086] [T] glDeleteProgram
[11:35:24.755090] [T] glDeleteRenderbuffers
[11:35:24.755094] [T] glDeleteShader
[11:35:24.755097] [T] glDeleteTextures
[11:35:24.755100] [T] glDepthFunc
[11:35:24.755104] [T] glDepthMask
[11:35:24.755107] [T] glDepthRangef
[11:35:24.755111] [T] glDetachShader
[11:35:24.755114] [T] glDisable
[11:35:24.755118] [T] glDisableVertexAttribArray
[11:35:24.755121] [T] glDrawArrays
[11:35:24.755125] [T] glDrawElements
[11:35:24.755128] [T] glEnable
[11:35:24.755131] [T] glEnableVertexAttribArray
[11:35:24.755135] [T] glFlush
[11:35:24.755138] [T] glFramebufferRenderbuffer
[11:35:24.755142] [T] glFramebufferTexture2D
[11:35:24.755145] [T] glFrontFace
[11:35:24.755149] [T] glGenBuffers
[11:35:24.755153] [T] glGenerateMipmap
[11:35:24.755156] [T] glGenFramebuffers
[11:35:24.755160] [T] glGenRenderbuffers
[11:35:24.755164] [T] glGenTextures
[11:35:24.755169] [T] glGetActiveUniform
[11:35:24.755173] [T] glGetBooleanv
[11:35:24.755177] [T] glGetFloatv
[11:35:24.755181] [T] glGetFramebufferAttachmentParameteriv
[11:35:24.755184] [T] glGetIntegerv
[11:35:24.755188] [T] glGetProgramInfoLog
[11:35:24.755191] [T] glGetProgramiv
[11:35:24.755195] [T] glGetShaderInfoLog
[11:35:24.755198] [T] glGetShaderiv
[11:35:24.755201] [T] glGetString
[11:35:24.755204] [T] glGetStringi
[11:35:24.755207] [T] glGetUniformLocation
[11:35:24.755211] [T] glIsBuffer
[11:35:24.755214] [T] glIsFramebuffer
[11:35:24.755218] [T] glIsProgram
[11:35:24.755222] [T] glIsRenderbuffer
[11:35:24.755225] [T] glIsShader
[11:35:24.755229] [T] glIsTexture
[11:35:24.755232] [T] glLinkProgram
[11:35:24.755235] [T] glRenderbufferStorage
[11:35:24.755239] [T] glScissor
[11:35:24.755242] [T] glShaderBinary
[11:35:24.755245] [T] glShaderSource
[11:35:24.755248] [T] glStencilFuncSeparate
[11:35:24.755251] [T] glStencilMaskSeparate
[11:35:24.755255] [T] glStencilOpSeparate
[11:35:24.755258] [T] glTexImage2D
[11:35:24.755261] [T] glTexParameteri
[11:35:24.755265] [T] glUniform1fv
[11:35:24.755267] [T] glUniform1i
[11:35:24.755271] [T] glUniform2fv
[11:35:24.755274] [T] glUniform3fv
[11:35:24.755278] [T] glUniform4fv
[11:35:24.755281] [T] glUniformMatrix4fv
[11:35:24.755285] [T] glUseProgram
[11:35:24.755288] [T] glVertexAttribPointer
[11:35:24.755291] [T] glViewport
[11:35:24.755294] [T] glReadPixels
[11:35:24.755296] [T] glBlitFramebuffer
[11:35:24.755307] [T] ** eglGetProcAddress(glDiscardFramebufferEXT)
[11:35:24.755320] [T] ** eglGetProcAddress(glPushDebugGroupKHR)
[11:35:24.755326] [T] ** eglGetProcAddress(glPopDebugGroupKHR)
[11:35:24.755334] [T] ** eglGetProcAddress(glObjectLabelKHR)
[11:35:24.756421] [T] +ClearCurrent(), thread_id=0x7ffff7edc2c0
[11:35:24.756435] [T] EGL Context=0x0, thread_id=0x7ffff7edc2c0
[11:35:24.756437] [T] -ClearCurrent()
[11:35:24.756598] [T] +MakeResourceCurrent(), thread_id=0x7fffdef9d6c0
[11:35:24.756615] [T] EGL Context=0x60b00002df30, thread_id=0x7fffdef9d6c0
[11:35:24.756618] [T] -MakeResourceCurrent()
[11:35:24.756756] [T] (0) [Platform] Task Queue 1
[11:35:24.756796] [T] (0) [Platform] Task Run 1
[11:35:24.761314] [T] +MakeResourceCurrent(), thread_id=0x7fffdef9d6c0
[11:35:24.761326] [T] EGL Context=0x60b00002df30, thread_id=0x7fffdef9d6c0
[11:35:24.761330] [T] -MakeResourceCurrent()
[11:35:24.761383] [D] (0) Engine::m_running = true
[11:35:24.761415] [T] +MakeCurrent(), thread_id=0x7fffdf7ba6c0
[11:35:24.761451] [T] EGL Context=0x60b00002ddd0
[11:35:24.761455] [T] -MakeCurrent()
[11:35:24.761467] [T] (0) -Engine::Run
[11:35:24.761546] [D] (0) SetWindowSize: width=1920, height=720, pixel_ratio=2
[11:35:24.761553] [D] (0) Engine running...
[11:35:24.761568] [D] -App::App
[11:35:24.773218] [T] (0) [Platform] Task Queue 2
[11:35:24.773259] [T] (0) [Platform] Task Run 2
[ERROR:flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc(97)] Using the Impeller rendering backend (OpenGL).
[WARNING:flutter/shell/common/platform_view.cc(22)] This platform does not provide a Vsync waiter implementation. A simple timer based fallback is being used.
[WARNING:flutter/shell/common/shell_io_manager.cc(58)] The IO manager was initialized without a resource context. Async texture uploads will be disabled. Expect performance degradation.

```

</details>


### Flutter Doctor output

<details><summary>Doctor output</summary>

```console
$ flutter doctor -v
[!] Flutter (Channel [user-branch], 3.15.0-15.2.pre, on Fedora Linux 38 (Workstation Edition) 6.4.15-200.fc38.x86_64, locale en_US.UTF-8)
    ! Flutter version 3.15.0-15.2.pre on channel [user-branch] at /mnt/raid10/workspace-automation/flutter
      Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
      If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install.
    ! Upstream repository unknown source is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to unknown source to dismiss this error.
    • Framework revision 0d074ced6c (5 days ago), 2023-09-21 10:24:15 -0700
    • Engine revision 453411bcf3
    • Dart version 3.2.0 (build 3.2.0-134.1.beta)
    • DevTools version 2.27.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Linux toolchain - develop for Linux desktop
    • clang version 16.0.6 (Fedora 16.0.6-3.fc38)
    • cmake version 3.27.4
    • ninja version 1.11.1
    • pkg-config version 1.8.0

[✓] VS Code (version 1.82.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.72.0

[✓] Connected device (2 available)
    • Linux (desktop)              • linux              • linux-x64 • Fedora Linux 38 (Workstation Edition) 6.4.15-200.fc38.x86_64
    • Toyota homescreen (mobile)   • homescreen         • linux-x64 • homescreen x86_64

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.
```

</details>