Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-92059

crash on egl platform: Cannot find EGLConfig, returning null config

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Out of scope
    • Affects Version/s: 5.11.3
    • Fix Version/s: None
    • Component/s: GUI: OpenGL
    • Labels:
      None
    • Environment:
      SOC: RK3399
      GPU driver: libmali
    • Platform/s:
      Linux/X11

      Description

      On a ARM tablet device, it's SOC is RK3399, it's GPU drive power by libmali. The libmali only support EGL and GLES, Don't support desktop opengl.

      In the environment, run the "qmlscene" command will crash at get a EGLConfig. The following is command log:

      // Not limited the "test.qml" file, any qml file can be used
      user@9dd487314198:~/zccrs$ QT_XCB_GL_INTEGRATION=xcb_egl qmlscene ./test.qml --gles
      LIBGL: Initialising gl4es
      LIBGL: v1.1.5 built on Dec 30 2020 08:00:08
      LIBGL: Using GLES 2.0 backend
      LIBGL: loaded: libGLESv2.so
      LIBGL: loaded: libEGL.so
      LIBGL: Using GLES 2.0 backend
      arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.LIBGL: Hardware Full NPOT detected and used
      LIBGL: Extension GL_EXT_blend_minmax  detected and used
      LIBGL: FBO are in core, and so used
      LIBGL: PointSprite are in core, and so used
      LIBGL: CubeMap are in core, and so used
      LIBGL: BlendColor is in core, and so used
      LIBGL: Blend Substract is in core, and so used
      LIBGL: Blend Function and Equation Separation is in core, and so used
      LIBGL: Texture Mirrored Repeat is in core, and so used
      LIBGL: Extension GL_OES_mapbuffer  detected
      LIBGL: Extension GL_OES_element_index_uint  detected and used
      LIBGL: Extension GL_OES_packed_depth_stencil  detected and used
      LIBGL: Extension GL_OES_depth24  detected and used
      LIBGL: Extension GL_OES_rgb8_rgba8  detected and used
      LIBGL: Extension GL_EXT_texture_format_BGRA8888  detected and used
      LIBGL: Extension GL_OES_depth_texture  detected and used
      LIBGL: Extension GL_OES_texture_stencil8  detected and used
      LIBGL: Extension GL_EXT_texture_rg  detected and used
      LIBGL: Extension GL_EXT_color_buffer_float  detected and used
      LIBGL: Extension GL_EXT_color_buffer_half_float  detected and used
      LIBGL: high precision float in fragment shader available and used
      LIBGL: Max vertex attrib: 16
      LIBGL: Extension GL_OES_standard_derivatives  detected and used
      LIBGL: Max texture size: 8192
      LIBGL: Max Varying Vector: 15
      LIBGL: Texture Units: 16/16 (hardware: 16), Max lights: 8, Max planes: 6
      LIBGL: Max Color Attachments: 1 / Draw buffers: 1
      LIBGL: Hardware vendor is ARM
      LIBGL: GLSL 300 es supported
      LIBGL: GLSL 310 es supported and used
      LIBGL: sRGB surface supported
      LIBGL: EGLImage from Pixmap supported
      LIBGL: EGLImage to Texture2D supported
      LIBGL: EGLImage to RenderBuffer supported
      LIBGL: Targeting OpenGL 2.1
      LIBGL: NPOT texture handled in hardware
      LIBGL: Not trying to batch small subsequent glDrawXXXX
      LIBGL: try to use VBO
      LIBGL: glXMakeCurrent FBO workaround enabled
      LIBGL: FBO workaround for using binded texture enabled
      LIBGL: Force texture for Attachment color0 on FBO
      LIBGL: Hack to trigger a SwapBuffers when a Full Framebuffer Blit on default FBO is done
      LIBGL: glX Will try to recycle EGL Surface
      LIBGL: Current folder is:/home/user/zccrs
      qt.qpa.xcb: Has MIT-SHM     : true
      qt.qpa.xcb: Has MIT-SHM FD  : true
      qt.qpa.xcb: shmget() failed (38: Function not implemented) for size 1
      qt.qpa.xcb: failed to create System V shared memory segment (remote X11 connection?), disabling SHM
      qt.qpa.screen: Failed to parse EDID data for output "DSI-1" edid data:  ""
      qt.qpa.screen: adding QXcbScreen(0x557a19ace0, name="DSI-1", geometry=1536x2048+0+0, availableGeometry=1536x2048+0+0, devicePixelRatio=1.0, logicalDpi=QPair(96.0,96.0), physicalSize=405.0x540.0mm, screenNumber=0, virtualSize=1536x2048 (1536.0x2048.0mm), orientation=Qt::ScreenOrientation(LandscapeOrientation), depth=24, refreshRate=59.0, root=39d, windowManagerName="KWin") (Primary: true )
      qt.qpa.screen: primary output is "DSI-1"
      qt.qpa.input: Plugin build with support for XInput 2 version up to 2.2
      qt.qpa.input: Using XInput version 2.2
      qt.qpa.input.devices: input device  Virtual core XTEST pointer ID 4
      qt.qpa.input.devices:    has 10 buttons
      qt.qpa.input.devices:    has valuator "Rel X" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Y" recognized? true
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices: input device  ft5x26_ts ID 9
      qt.qpa.input.devices:    has 7 buttons
      qt.qpa.input.devices:    has valuator "Abs MT Position X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs MT Position Y" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Horiz Scroll" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Vert Scroll" recognized? true
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices:    has touch class with mode 1
      qt.qpa.input.devices:    it's a touchscreen with type 0 capabilities 0x21 max touch points 10
      qt.qpa.input.devices: input device  Wacom I2C Digitizer stylus ID 10
      qt.qpa.input.devices:    has 7 buttons
      qt.qpa.input.devices:    it's a keyboard
      qt.qpa.input.devices:    has valuator "Abs X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Y" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Pressure" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt Y" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Wheel" recognized? true
      qt.qpa.input.devices:    it's a tablet with pointer type "pen"
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices: input device  Wacom I2C Digitizer eraser ID 14
      qt.qpa.input.devices:    has 7 buttons
      qt.qpa.input.devices:    it's a keyboard
      qt.qpa.input.devices:    has valuator "Abs X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Y" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Pressure" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt Y" recognized? true
      qt.qpa.input.devices:    has valuator "" recognized? false
      qt.qpa.input.devices:    it's a tablet with pointer type "eraser"
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.gl: QT_XCB_GL_INTEGRATION is set to "xcb_egl"
      qt.qpa.gl: Choosing xcb gl-integration based on following priority
       ("xcb_egl", "xcb_glx")
      qt.qpa.gl: Xcb EGL gl-integration created
      qt.qpa.gl: Xcb EGL gl-integration successfully initialized
      Cannot find EGLConfig, returning null config
      --->yzq eglCreateContext 240
      QEGLPlatformContext: Failed to create context: 3005
      qt.scenegraph.general: threaded render loop
      qt.scenegraph.general: Using sg animation driver
      qt.scenegraph.general: Animation Driver: using vsync: 16.95 ms
      Cannot find EGLConfig, returning null config
      qt.egl.xlib.debug: EGL did not suggest a VisualID (EGL_NATIVE_VISUAL_ID was zero) for EGLConfig 0
      Unable to find an X11 visual which matches EGL config 0
      Segmentation fault
      

      If you don't use qmlscene, I wrote the following test code:

      #include <QGuiApplication>
      #include <QQuickView>
      #include <QSurfaceFormat>
      
      int main(int argc, char **argv)
      {
          QGuiApplication a(argc, argv);
          QSurfaceFormat f = QSurfaceFormat::defaultFormat();
          f.setRenderableType(QSurfaceFormat::OpenGLES);
          QSurfaceFormat::setDefaultFormat(f);
          QQuickView view;
          view.setSource(QUrl::fromLocalFile("test.qml"));
          view.show();
      
          a.exec();
      }
      

      If calling "setRenderableType(QSurfaceFormat::OpenGLES)", this test program can be used normally, otherwise it will crash like qmlscene. The following is the log output during normal operation:

      LIBGL: Initialising gl4es
      LIBGL: v1.1.5 built on Dec 30 2020 08:00:08
      LIBGL: Using GLES 2.0 backend
      LIBGL: loaded: libGLESv2.so
      LIBGL: loaded: libEGL.so
      LIBGL: Using GLES 2.0 backend
      arm_release_ver of this libmali is 'r18p0-01rel0', rk_so_ver is '4'.LIBGL: Hardware Full NPOT detected and used
      LIBGL: Extension GL_EXT_blend_minmax  detected and used
      LIBGL: FBO are in core, and so used
      LIBGL: PointSprite are in core, and so used
      LIBGL: CubeMap are in core, and so used
      LIBGL: BlendColor is in core, and so used
      LIBGL: Blend Substract is in core, and so used
      LIBGL: Blend Function and Equation Separation is in core, and so used
      LIBGL: Texture Mirrored Repeat is in core, and so used
      LIBGL: Extension GL_OES_mapbuffer  detected
      LIBGL: Extension GL_OES_element_index_uint  detected and used
      LIBGL: Extension GL_OES_packed_depth_stencil  detected and used
      LIBGL: Extension GL_OES_depth24  detected and used
      LIBGL: Extension GL_OES_rgb8_rgba8  detected and used
      LIBGL: Extension GL_EXT_texture_format_BGRA8888  detected and used
      LIBGL: Extension GL_OES_depth_texture  detected and used
      LIBGL: Extension GL_OES_texture_stencil8  detected and used
      LIBGL: Extension GL_EXT_texture_rg  detected and used
      LIBGL: Extension GL_EXT_color_buffer_float  detected and used
      LIBGL: Extension GL_EXT_color_buffer_half_float  detected and used
      LIBGL: high precision float in fragment shader available and used
      LIBGL: Max vertex attrib: 16
      LIBGL: Extension GL_OES_standard_derivatives  detected and used
      LIBGL: Max texture size: 8192
      LIBGL: Max Varying Vector: 15
      LIBGL: Texture Units: 16/16 (hardware: 16), Max lights: 8, Max planes: 6
      LIBGL: Max Color Attachments: 1 / Draw buffers: 1
      LIBGL: Hardware vendor is ARM
      LIBGL: GLSL 300 es supported
      LIBGL: GLSL 310 es supported and used
      LIBGL: sRGB surface supported
      LIBGL: EGLImage from Pixmap supported
      LIBGL: EGLImage to Texture2D supported
      LIBGL: EGLImage to RenderBuffer supported
      LIBGL: Targeting OpenGL 2.1
      LIBGL: NPOT texture handled in hardware
      LIBGL: Not trying to batch small subsequent glDrawXXXX
      LIBGL: try to use VBO
      LIBGL: glXMakeCurrent FBO workaround enabled
      LIBGL: FBO workaround for using binded texture enabled
      LIBGL: Force texture for Attachment color0 on FBO
      LIBGL: Hack to trigger a SwapBuffers when a Full Framebuffer Blit on default FBO is done
      LIBGL: glX Will try to recycle EGL Surface
      LIBGL: Current folder is:/home/user/zccrs
      qt.qpa.xcb: Has MIT-SHM     : true
      qt.qpa.xcb: Has MIT-SHM FD  : true
      qt.qpa.xcb: shmget() failed (38: Function not implemented) for size 1
      qt.qpa.xcb: failed to create System V shared memory segment (remote X11 connection?), disabling SHM
      qt.qpa.screen: Failed to parse EDID data for output "DSI-1" edid data:  ""
      qt.qpa.screen: adding QXcbScreen(0x543a90, name="DSI-1", geometry=1536x2048+0+0, availableGeometry=1536x2048+0+0, devicePixelRatio=1.0, logicalDpi=QPair(96.0,96.0), physicalSize=405.0x540.0mm, screenNumber=0, virtualSize=1536x2048 (1536.0x2048.0mm), orientation=Qt::ScreenOrientation(LandscapeOrientation), depth=24, refreshRate=59.0, root=39d, windowManagerName="KWin") (Primary: true )
      qt.qpa.screen: primary output is "DSI-1"
      qt.qpa.input: Plugin build with support for XInput 2 version up to 2.2
      qt.qpa.input: Using XInput version 2.2
      qt.qpa.input.devices: input device  Virtual core XTEST pointer ID 4
      qt.qpa.input.devices:    has 10 buttons
      qt.qpa.input.devices:    has valuator "Rel X" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Y" recognized? true
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices: input device  ft5x26_ts ID 9
      qt.qpa.input.devices:    has 7 buttons
      qt.qpa.input.devices:    has valuator "Abs MT Position X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs MT Position Y" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Horiz Scroll" recognized? true
      qt.qpa.input.devices:    has valuator "Rel Vert Scroll" recognized? true
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices:    has touch class with mode 1
      qt.qpa.input.devices:    it's a touchscreen with type 0 capabilities 0x21 max touch points 10
      qt.qpa.input.devices: input device  Wacom I2C Digitizer stylus ID 10
      qt.qpa.input.devices:    has 7 buttons
      qt.qpa.input.devices:    it's a keyboard
      qt.qpa.input.devices:    has valuator "Abs X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Y" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Pressure" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt Y" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Wheel" recognized? true
      qt.qpa.input.devices:    it's a tablet with pointer type "pen"
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.input.devices: input device  Wacom I2C Digitizer eraser ID 14
      qt.qpa.input.devices:    has 7 buttons
      qt.qpa.input.devices:    it's a keyboard
      qt.qpa.input.devices:    has valuator "Abs X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Y" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Pressure" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt X" recognized? true
      qt.qpa.input.devices:    has valuator "Abs Tilt Y" recognized? true
      qt.qpa.input.devices:    has valuator "" recognized? false
      qt.qpa.input.devices:    it's a tablet with pointer type "eraser"
      qt.qpa.input.devices:    it's a scrolling device
      qt.qpa.gl: QT_XCB_GL_INTEGRATION is set to "xcb_egl"
      qt.qpa.gl: Choosing xcb gl-integration based on following priority
       ("xcb_egl", "xcb_glx")
      qt.qpa.gl: Xcb EGL gl-integration created
      qt.qpa.gl: Xcb EGL gl-integration successfully initialized
      qt.scenegraph.general: threaded render loop
      qt.scenegraph.general: Using sg animation driver
      qt.scenegraph.general: Animation Driver: using vsync: 16.95 ms
      qt.egl.xlib.debug: Using Opaque Visual ID 33 provided by EGL for config 10
      qt.scenegraph.renderloop: exposureChanged() QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: handleExposure() QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: - adding window to list
      qt.scenegraph.renderloop: - starting render thread
      qt.scenegraph.renderloop: - OpenGL context created
      qt.scenegraph.renderloop: polishAndSync (in expose) QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: - lock for sync
      qt.scenegraph.renderloop: - wait for sync
      qt.scenegraph.renderloop:                     (RT) run()
      qt.scenegraph.general: Using sg animation driver
      qt.scenegraph.general: Animation Driver: using vsync: 16.95 ms
      qt.scenegraph.renderloop:                     (RT) syncAndRender()
      qt.scenegraph.renderloop:                     (RT) - rendering started
      qt.scenegraph.renderloop:                     (RT) - window not ready, skipping render
      qt.scenegraph.renderloop:                     (RT) - rendering done
      qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 0ms, sync=0, render=0, swap=0 - (on render thread)
      qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
      qt.scenegraph.renderloop:                     (RT) WM_RequestSync
      qt.scenegraph.renderloop:                     (RT) - triggered from expose
      qt.scenegraph.renderloop:                     (RT) - repaint regardless
      qt.scenegraph.renderloop:                     (RT) --- done processEvents()
      qt.scenegraph.general: texture atlas dimensions: 512x512
      qt.scenegraph.general: R/G/B/A Buffers:   8 8 8 0
      qt.scenegraph.general: Depth Buffer:      24
      qt.scenegraph.general: Stencil Buffer:    8
      qt.scenegraph.general: Samples:           0
      qt.scenegraph.general: GL_VENDOR:         ARM
      qt.scenegraph.general: GL_RENDERER:       Mali-T860
      qt.scenegraph.general: GL_VERSION:        OpenGL ES 3.2 v1.r18p0-01rel0.5cb5681058e8e076ff89747c20c32578
      qt.scenegraph.general: GL_EXTENSIONS:     GL_EXT_texture_storage GL_OVR_multiview GL_EXT_multisampled_render_to_texture GL_KHR_blend_equation_advanced GL_OES_texture_storage_multisample_2d_array GL_EXT_texture_cube_map_array GL_EXT_gpu_shader5 GL_OES_EGL_sync GL_OES_compressed_paletted_texture GL_EXT_texture_format_BGRA8888 GL_OVR_multiview2 GL_KHR_texture_compression_astc_ldr GL_EXT_tessellation_shader GL_ARM_mali_shader_binary GL_EXT_YUV_target GL_OES_geometry_shader GL_OES_standard_derivatives GL_OES_mapbuffer GL_OES_surfaceless_context GL_EXT_disjoint_timer_query GL_OES_EGL_image GL_OES_required_internalformat GL_EXT_shader_io_blocks GL_KHR_robust_buffer_access_behavior GL_KHR_blend_equation_advanced_coherent GL_ANDROID_extension_pack_es31a GL_EXT_shader_pixel_local_storage GL_OES_fbo_render_mipmap GL_EXT_color_buffer_half_float GL_OES_depth_texture_cube_map GL_OES_tessellation_shader GL_EXT_texture_sRGB_R8 GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_ARM_mali_program_binary GL_EXT_sRGB_write_control GL_OVR_multiview_multisampled_render_to_texture GL_OES_primitive_bounding_box GL_KHR_robustness GL_OES_sample_shading GL_KHR_debug GL_EXT_texture_buffer GL_EXT_texture_sRGB_decode GL_OES_draw_elements_base_vertex GL_EXT_blend_minmax GL_OES_texture_stencil8 GL_OES_texture_3D GL_EXT_geometry_shader GL_OES_texture_border_clamp GL_OES_compressed_ETC1_RGB8_texture GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_sample_variables GL_OES_texture_buffer GL_OES_copy_image GL_OES_element_index_uint GL_OES_packed_depth_stencil GL_EXT_discard_framebuffer GL_OES_texture_cube_map_array GL_OES_rgb8_rgba8 GL_ARM_rgba8 GL_OES_depth24 GL_OES_vertex_array_object GL_EXT_copy_image GL_EXT_texture_sRGB_RG8 GL_OES_get_program_binary GL_EXT_texture_type_2_10_10_10_REV GL_KHR_texture_compression_astc_hdr GL_EXT_occlusion_query_boolean GL_ARM_shader_framebuffer_fetch GL_EXT_shadow_samplers GL_OES_texture_npot GL_EXT_texture_border_clamp GL_OES_gpu_shader5 GL_OES_depth_texture GL_EXT_read_format_bgra GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation GL_OES_draw_buffers_indexed GL_EXT_primitive_bounding_box GL_EXT_texture_rg GL_KHR_texture_compression_astc_sliced_3d GL_OES_vertex_half_float GL_OES_shader_image_atomic GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex  GL_EXT_sRGB GL_EXT_robustness GL_EXT_color_buffer_float GL_OES_texture_compression_astc
      qt.scenegraph.general: Max Texture Size: 8192
      qt.scenegraph.general: Debug context:    false
      qt.scenegraph.renderloop:                     (RT) syncAndRender()
      qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
      qt.scenegraph.renderloop:                     (RT) sync()
      qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
      qt.quick.dirty:    QSGNode: QQuickRootItem(0x57aad0, parent=0x0, geometry=0,0 100x100) Size|ChildrenChanged
      qt.quick.dirty:    QSGNode: QQuickRectangle(0x57cff0, parent=0x57aad0, geometry=0,0 100x100) Size|Content|ParentChanged|Window
      qt.scenegraph.renderloop:                     (RT) - renderer was created
      qt.scenegraph.renderloop:                     (RT) - rendering started
      qt.opengl.diskcache: OpenGL ES v2 context
      qt.opengl.diskcache: Shader cache supported = 0
      qt.scenegraph.time.compilation: shader compiled in 6ms
      qt.scenegraph.time.renderer: time in renderer: total=7ms, preprocess=0, updates=0, binding=0, rendering=7
      qt.scenegraph.renderloop:                     (RT) - rendering done
      qt.scenegraph.renderloop:                     (RT) - wake Gui after initial expose
      qt.scenegraph.renderloop: - unlock after sync
      qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=11, animations=0 - (on Gui thread) QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: - done with handleExposure()
      qt.scenegraph.renderloop: exposureChanged() QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: handleExposure() QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: - render thread already running
      qt.scenegraph.renderloop: polishAndSync (in expose) QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: - lock for sync
      qt.scenegraph.renderloop: - wait for sync
      qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 9ms, sync=0, render=7, swap=2 - (on render thread)
      qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
      qt.scenegraph.renderloop:                     (RT) WM_RequestSync
      qt.scenegraph.renderloop:                     (RT) - triggered from expose
      qt.scenegraph.renderloop:                     (RT) --- done processEvents()
      qt.scenegraph.renderloop:                     (RT) syncAndRender()
      qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
      qt.scenegraph.renderloop:                     (RT) sync()
      qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
      qt.scenegraph.renderloop:                     (RT) - rendering started
      qt.scenegraph.time.renderer: time in renderer: total=31ms, preprocess=0, updates=0, binding=0, rendering=31
      qt.scenegraph.renderloop:                     (RT) - rendering done
      qt.scenegraph.renderloop:                     (RT) - wake Gui after initial expose
      qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 42ms, sync=0, render=31, swap=11 - (on render thread)
      qt.scenegraph.renderloop: - unlock after sync
      qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
      qt.scenegraph.renderloop:                     (RT) --- done processEvents()
      qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
      qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
      qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=43, animations=0 - (on Gui thread) QQuickView(0x7ff87cae68 exposed, visibility=QWindow::Visibility(Windowed), flags=QFlags<Qt::WindowType>(Window), geometry=0,0 100x100)
      qt.scenegraph.renderloop: - done with handleExposure()
      qt.qpa.input.events: XI2 mouse enter 1080,1763, mode 0, detail 3, time 2135233
      qt.quick.focus: QQuickWindowPrivate::setFocusInScope():
      qt.quick.focus:     scope: QObject(0x0)
      qt.quick.focus:     item: QQuickRootItem(0x57aad0)
      qt.quick.focus:     activeFocusItem: QObject(0x0)
      qt.scenegraph.renderloop: update from item QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop: update from item QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop: exposureChanged() QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop: handleExposure() QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop: - render thread already running
      qt.scenegraph.renderloop: polishAndSync (in expose) QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop: - lock for sync
      qt.scenegraph.renderloop: - wait for sync
      qt.scenegraph.renderloop:                     (RT) WM_RequestSync
      qt.scenegraph.renderloop:                     (RT) - triggered from expose
      qt.scenegraph.renderloop:                     (RT) --- done processEventsAndWaitForMore()
      qt.scenegraph.renderloop:                     (RT) syncAndRender()
      qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
      qt.scenegraph.renderloop:                     (RT) sync()
      qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
      qt.quick.dirty:    QSGNode: QQuickRootItem(0x57aad0, parent=0x0, geometry=0,0 1536x2008) Size
      qt.scenegraph.renderloop:                     (RT) - rendering started
      qt.scenegraph.time.renderer: time in renderer: total=0ms, preprocess=0, updates=0, binding=0, rendering=0
      qt.scenegraph.renderloop:                     (RT) - rendering done
      qt.scenegraph.renderloop:                     (RT) - wake Gui after initial expose
      qt.scenegraph.time.renderloop: Frame rendered with 'threaded' renderloop in 11ms, sync=1, render=1, swap=9 - (on render thread)
      qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
      qt.scenegraph.renderloop:                     (RT) --- done processEvents()
      qt.scenegraph.renderloop: - unlock after sync
      qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
      qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
      qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=11, animations=0 - (on Gui thread) QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop: - done with handleExposure()
      qt.quick.hover.trace: QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008) QQuickRootItem(0x57aad0, parent=0x0, geometry=0,0 1536x2008) QPointF(1080,1763) QPointF(0,0) subtreeHoverEnabled false
      qt.scenegraph.renderloop: - polish and sync update request
      qt.scenegraph.renderloop: polishAndSync (normal) QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop: - lock for sync
      qt.scenegraph.renderloop: - wait for sync
      qt.scenegraph.renderloop:                     (RT) WM_RequestSync
      qt.scenegraph.renderloop:                     (RT) --- done processEventsAndWaitForMore()
      qt.scenegraph.renderloop:                     (RT) syncAndRender()
      qt.scenegraph.renderloop:                     (RT) - updatePending, doing sync
      qt.scenegraph.renderloop:                     (RT) sync()
      qt.quick.dirty: QQuickWindowPrivate::updateDirtyNodes():
      qt.scenegraph.renderloop:                     (RT) - sync complete, waking Gui
      qt.scenegraph.renderloop:                     (RT) - no changes, render aborted
      qt.scenegraph.renderloop: - unlock after sync
      qt.scenegraph.time.renderloop: Frame prepared with 'threaded' renderloop, polish=0, lock=0, blockedForSync=1, animations=0 - (on Gui thread) QQuickView(0x7ff87cae68 active exposed, visibility=QWindow::Visibility(Maximized), flags=QFlags<Qt::WindowType>(Window), geometry=0,40 1536x2008)
      qt.scenegraph.renderloop:                     (RT) --- begin processEvents()
      qt.scenegraph.renderloop:                     (RT) --- done processEvents()
      qt.scenegraph.renderloop:                     (RT) done drawing, sleep...
      qt.scenegraph.renderloop:                     (RT) --- begin processEventsAndWaitForMore()
      

      However, we cannot require every Qt program to use QSurfaceFormat::setRenderableType(QSurfaceFormat::OpenGLES), I think we should provide an environment variable that can be set at runtime to use gles or desktop opengl.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            lagocs Laszlo Agocs
            Reporter:
            zccrs chen zhang
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There is 1 open Gerrit change