Announcement

Collapse
No announcement yet.

Mesa's New "Crocus" OpenGL Driver Is Performing Well For Old Intel Hardware

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • lorn10
    replied
    Thanks again! Unfortunately also the "prefer-crocus=true" value shows no effect, I get still the same errors. Whatever, It looks that in my case the
    Code:
    libGL error: failed to create dri screen
    seems to be the underlying issue and as a result I get then a:
    Code:
    libGL error: failed to load driver: crocus
    So the crocus driver cannot be loaded at an quite early point.

    However, the crocus driver is in an early stage, - maybe this will become better in the future. An if not, then I will place a bug report.

    Full libGL verbose output:
    Code:
    test@test-iMac:~$ LIBGL_DEBUG=verbose glxinfo | grep direct
    libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/crocus_dri.so)
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL error: failed to create dri screen
    libGL error: failed to load driver: crocus
    libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/crocus_dri.so)
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL error: failed to create dri screen
    libGL error: failed to load driver: crocus
    libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.

    Leave a comment:


  • frosth
    replied
    lorn10, Try "prefer-crocus=true" + MESA_LOADER_DRIVER_OVERRIDE=crocus, then this should set crocus as default ogl driver for all.

    [fingers crossed]

    Leave a comment:


  • lorn10
    replied
    Thanks frosth for this alternative suggestion. Unfortunately I am as mentioned at a quite special Dual-GPU system. It is not possible to get the i965 driver working in conjunction with the R600 Gallium driver of my Radeon TURKS card. A necessary function is missing at the classic Intel i965 driver so I always get an error:
    Code:
    libGL error: Different GPU, but blitImage not implemented for this driver
    libGL error: failed to load driver: i965
    Source: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4368

    So the only way to get this working is through the new Intel Crocus driver which implements the necessary libGL feature because it is an genuine Gallium driver.

    Leave a comment:


  • frosth
    replied
    lorn10 , maybe try it another way.
    Run environment with i965 driver and then run program with MESA_LOADER_DRIVER_OVERRIDE=crocus.
    If you really want run environment on crocus you should compile mesa with "prefer-crocus=true" and set MESA_LOADER_DRIVER_OVERRIDE=crocus in /etc/environment or ~/.bash_profile this works on my dell.

    don't know why prefer-crocus=true is not enough this is maybe bug or so
    for now works great and even video-decode in firefox works (propably using i965 path)

    Leave a comment:


  • lorn10
    replied
    Unfortunately, it looks that not all systems are currently ready to use this amazing new driver. I am here at an Apple iMac12,2 and for whatever reason it's not possible to load the crocus driver. (Yes, I have set the "MESA_LOADER_DRIVER_OVERRIDE=crocus" value in /etc/environment.) Note, this is effectively a (quite exotic) dual GPU system which contains an Intel HD 2000 and AMD Radeon TURKS GPU.

    Code:
    [FONT=monospace]test@test-iMac[COLOR=#000000]:[/COLOR][COLOR=#5454ff][B]~[/B][/COLOR][COLOR=#000000]$ glxinfo -B           [/COLOR]
    name of display: :0
    libGL error: failed to create dri screen
    libGL error: failed to load driver: crocus
    libGL error: failed to create dri screen
    libGL error: failed to load driver: crocus
    display: :0  screen: 0
    direct rendering: Yes
    Extended renderer info (GLX_MESA_query_renderer):
       Vendor: Mesa/X.org (0xffffffff)
       Device: llvmpipe (LLVM 12.0.0, 256 bits) (0xffffffff)
       Version: 21.2.0
       Accelerated: no
       Video memory: 7939MB
       Unified memory: no
       Preferred profile: core (0x1)
       Max core profile version: 4.5
       Max compat profile version: 3.1
       Max GLES1 profile version: 1.1
       Max GLES[23] profile version: 3.2
    OpenGL vendor string: Mesa/X.org
    OpenGL renderer string: llvmpipe (LLVM 12.0.0, 256 bits)
    OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.2.0-devel (git-b4d90b1 2021-06-20 focal-oibaf-ppa)
    OpenGL core profile shading language version string: 4.50
    OpenGL core profile context flags: (none)
    OpenGL core profile profile mask: core profile
    
    OpenGL version string: 3.1 Mesa 21.2.0-devel (git-b4d90b1 2021-06-20 focal-oibaf-ppa)
    OpenGL shading language version string: 1.40
    OpenGL context flags: (none)
    
    OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.2.0-devel (git-b4d90b1 2021-06-20 focal-oibaf-ppa)
    OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20[/FONT]
    Code:
    [FONT=monospace]test@test-iMac[COLOR=#000000]:[/COLOR][COLOR=#5454ff][B]~[/B][/COLOR][COLOR=#000000]$ LIBGL_DEBUG=verbose glxinfo | grep direct [/COLOR]
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/crocus_dri.so)
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL error: failed to create dri screen
    libGL error: failed to load driver: crocus
    libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/crocus_dri.so)
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL error: failed to create dri screen
    libGL error: failed to load driver: crocus
    libGL: MESA-LOADER: dlopen(/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    libGL: Can't open configuration file /etc/drirc: No such file or directory.
    libGL: Can't open configuration file /home/test/.drirc: No such file or directory.
    direct rendering: Yes
       GL_AMD_multi_draw_indirect, GL_AMD_query_buffer_object,  
       GL_ARB_depth_clamp, GL_ARB_derivative_control, GL_ARB_direct_state_access,  
       GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect,  
       GL_ARB_indirect_parameters, GL_ARB_instanced_arrays,  
       GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect,  
       GL_AMD_draw_buffers_blend, GL_AMD_multi_draw_indirect,  
       GL_ARB_direct_state_access, GL_ARB_draw_buffers,  
       GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts,  
       GL_ARB_indirect_parameters, GL_ARB_instanced_arrays,  
       GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect,  
       GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, [/FONT]
    Update: This issue is still present also at newer Mesa 21.2 releases, - maybe I should really open a bug report about that, airlied ?
    Last edited by lorn10; 22 June 2021, 01:43 PM.

    Leave a comment:


  • QwertyChouskie
    replied
    Originally posted by DanglingPointer View Post
    The million dollar question is, will it help Dolphin-emu on old laptops and rigs!? Does it boost interfacing with vulkan backend somehow?

    Will it increase performance for Zelda Twilight Princess on a top-line i7 ivy-bridge?
    This is for GL, Vulkan is a separate driver. Anything using GL might get a small boost though (the biggest difference is reduced driver overhead, so hopefully less stuttering).

    Leave a comment:


  • DanglingPointer
    replied
    The million dollar question is, will it help Dolphin-emu on old laptops and rigs!? Does it boost interfacing with vulkan backend somehow?

    Will it increase performance for Zelda Twilight Princess on a top-line i7 ivy-bridge?

    Leave a comment:


  • johanb
    replied
    With OpenArena the peak frame times were lower when using Crocus.
    While that's true, the frame times look much more consistent as minimum frame rate is much higher so I'd rather see that as reduced stuttering.

    Leave a comment:


  • s_j_newbury
    replied
    Originally posted by airlied View Post
    I've fixed the tesseract regression in master now, along with a misrendering bug in ET: legacy.

    Michael thanks for the benchmarks!
    Have you tried firefox-wayland /w WebRender?

    Leave a comment:


  • chocolate
    replied
    Looks good, does indeed show signs of reduced CPU overhead.
    Thanks everybody.

    Is there even the possibility that this driver will pick up additional OpenGL extensions compared to i965, where hardware allows? I reckon some "AZDO" extensions should be implementable.

    Leave a comment:

Working...
X