How can I use OpenGL in a Windows application running on Wine?

I am using a WIndows application through Wine.

I first installed Wine with yay -S wine, which output the following messages.

warning: dependency cycle detected:
warning: lib32-harfbuzz will be installed before its lib32-freetype2 dependency
warning: dependency cycle detected:
warning: lib32-mesa will be installed before its lib32-libglvnd dependency

Package (62)                  New Version              Net Change

community/faudio              22.10-1                    0.36 MiB
multilib/lib32-acl            2.3.1-1                    0.04 MiB
multilib/lib32-brotli         1.0.9-4                    0.80 MiB
multilib/lib32-bzip2          1.0.8-2                    0.07 MiB
multilib/lib32-curl           7.86.0-1                   0.68 MiB
multilib/lib32-dbus           1.14.4-1                   0.38 MiB
multilib/lib32-expat          2.5.0-2                    0.18 MiB
multilib/lib32-faudio         22.10-1                    0.27 MiB
multilib/lib32-fontconfig     2:2.14.1-2                 0.34 MiB
multilib/lib32-freetype2      2.12.1-1                   0.79 MiB
multilib/lib32-gettext        0.21-1                     3.02 MiB
multilib/lib32-glib2          2.74.1-1                   3.84 MiB
multilib/lib32-glu            9.0.2-3                    0.34 MiB
multilib/lib32-harfbuzz       5.3.1-3                    1.83 MiB
multilib/lib32-icu            72.1-1                    35.50 MiB
multilib/lib32-lcms2          2.13.1-1                   0.41 MiB
multilib/lib32-libdrm         2.4.113-1                  0.38 MiB
multilib/lib32-libelf         0.187-1                    2.42 MiB
multilib/lib32-libffi         3.4.4-1                    0.04 MiB
multilib/lib32-libgcrypt      1.10.1-1                   0.98 MiB
multilib/lib32-libglvnd       1.5.0-1                    1.32 MiB
multilib/lib32-libgpg-error   1.45-1                     0.15 MiB
multilib/lib32-libice         1.0.10-1                   0.10 MiB
multilib/lib32-libidn2        2.3.3-1                    0.12 MiB
multilib/lib32-libjpeg-turbo  2.1.4-2                    1.13 MiB
multilib/lib32-libnl          3.7.0-1                    1.18 MiB
multilib/lib32-libpcap        1.10.1-1                   0.37 MiB
multilib/lib32-libpciaccess   0.16-1                     0.06 MiB
multilib/lib32-libpng         1.6.38-1                   0.30 MiB
multilib/lib32-libpsl         0.21.1-2                   0.07 MiB
multilib/lib32-libsm          1.2.3-1                    0.04 MiB
multilib/lib32-libssh2        1.10.0-1                   0.28 MiB
multilib/lib32-libtiff        4.4.0-4                    0.64 MiB
multilib/lib32-libunistring   1.0-1                      1.67 MiB
multilib/lib32-libunwind      1.6.2-1                    0.17 MiB
multilib/lib32-libx11         1.8.1-1                    1.33 MiB
multilib/lib32-libxau         1.0.9-2                    0.01 MiB
multilib/lib32-libxcb         1.15-1                     0.97 MiB
multilib/lib32-libxcursor     1.2.1-1                    0.04 MiB
multilib/lib32-libxdamage     1.1.5-2                    0.01 MiB
multilib/lib32-libxdmcp       1.1.3-1                    0.03 MiB
multilib/lib32-libxext        1.3.4-2                    0.08 MiB
multilib/lib32-libxfixes      6.0.0-1                    0.02 MiB
multilib/lib32-libxi          1.8-1                      0.08 MiB
multilib/lib32-libxml2        2.10.3-2                   1.48 MiB
multilib/lib32-libxrandr      1.5.2-2                    0.06 MiB
multilib/lib32-libxrender     0.9.10-3                   0.05 MiB
multilib/lib32-libxshmfence   1.3-2                      0.01 MiB
multilib/lib32-libxxf86vm     1.1.4-3                    0.02 MiB
multilib/lib32-llvm-libs      14.0.6-2                 121.35 MiB
multilib/lib32-lm_sensors     1:3.6.0.r41.g31d1f125-1    0.06 MiB
multilib/lib32-mesa           22.2.1-1                  65.19 MiB
multilib/lib32-ncurses        6.3-1                      0.61 MiB
multilib/lib32-pcre2          10.40-3                    1.75 MiB
multilib/lib32-sdl2           2.24.1-1                   2.13 MiB
multilib/lib32-systemd        251.7-1                    1.92 MiB
multilib/lib32-util-linux     2.38.1-1                   1.05 MiB
multilib/lib32-wayland        1.21.0-1                   0.16 MiB
multilib/lib32-xz             5.2.7-1                    0.19 MiB
multilib/lib32-zlib           1.2.13-1                   0.09 MiB
multilib/lib32-zstd           1.5.2-1                    0.63 MiB
multilib/wine                 7.19-1                   513.79 MiB

Total Installed Size:  773.39 MiB

:: Proceed with installation? [Y/n] 
(62/62) checking keys in keyring                                                [---------------------------------------------] 100%
(62/62) checking package integrity                                              [---------------------------------------------] 100%
(62/62) loading package files                                                   [---------------------------------------------] 100%
(62/62) checking for file conflicts                                             [---------------------------------------------] 100%
:: Processing package changes...
( 1/62) installing lib32-expat                                                  [---------------------------------------------] 100%
( 2/62) installing lib32-zlib                                                   [---------------------------------------------] 100%
( 3/62) installing lib32-bzip2                                                  [---------------------------------------------] 100%
( 4/62) installing lib32-libpng                                                 [---------------------------------------------] 100%
( 5/62) installing lib32-pcre2                                                  [---------------------------------------------] 100%
( 6/62) installing lib32-libffi                                                 [---------------------------------------------] 100%
( 7/62) installing lib32-util-linux                                             [---------------------------------------------] 100%
( 8/62) installing lib32-glib2                                                  [---------------------------------------------] 100%
( 9/62) installing lib32-harfbuzz                                               [---------------------------------------------] 100%
(10/62) installing lib32-brotli                                                 [---------------------------------------------] 100%
(11/62) installing lib32-freetype2                                              [---------------------------------------------] 100%
(12/62) installing lib32-fontconfig                                             [---------------------------------------------] 100%
Rebuilding 32-bit fontconfig cache...
(13/62) installing lib32-libjpeg-turbo                                          [---------------------------------------------] 100%
(14/62) installing lib32-xz                                                     [---------------------------------------------] 100%
(15/62) installing lib32-zstd                                                   [---------------------------------------------] 100%
(16/62) installing lib32-libtiff                                                [---------------------------------------------] 100%
(17/62) installing lib32-lcms2                                                  [---------------------------------------------] 100%
(18/62) installing lib32-icu                                                    [---------------------------------------------] 100%
(19/62) installing lib32-libxml2                                                [---------------------------------------------] 100%
(20/62) installing lib32-libxdmcp                                               [---------------------------------------------] 100%
(21/62) installing lib32-libxau                                                 [---------------------------------------------] 100%
(22/62) installing lib32-libxcb                                                 [---------------------------------------------] 100%
(23/62) installing lib32-libx11                                                 [---------------------------------------------] 100%
(24/62) installing lib32-libxfixes                                              [---------------------------------------------] 100%
(25/62) installing lib32-libxrender                                             [---------------------------------------------] 100%
(26/62) installing lib32-libxcursor                                             [---------------------------------------------] 100%
(27/62) installing lib32-libxext                                                [---------------------------------------------] 100%
(28/62) installing lib32-libxrandr                                              [---------------------------------------------] 100%
(29/62) installing lib32-libxdamage                                             [---------------------------------------------] 100%
(30/62) installing lib32-libxi                                                  [---------------------------------------------] 100%
(31/62) installing lib32-acl                                                    [---------------------------------------------] 100%
(32/62) installing lib32-gettext                                                [---------------------------------------------] 100%
(33/62) installing lib32-libpciaccess                                           [---------------------------------------------] 100%
(34/62) installing lib32-libdrm                                                 [---------------------------------------------] 100%
(35/62) installing lib32-wayland                                                [---------------------------------------------] 100%
(36/62) installing lib32-libxxf86vm                                             [---------------------------------------------] 100%
(37/62) installing lib32-libxshmfence                                           [---------------------------------------------] 100%
(38/62) installing lib32-libunistring                                           [---------------------------------------------] 100%
(39/62) installing lib32-libidn2                                                [---------------------------------------------] 100%
(40/62) installing lib32-libssh2                                                [---------------------------------------------] 100%
(41/62) installing lib32-libpsl                                                 [---------------------------------------------] 100%
(42/62) installing lib32-curl                                                   [---------------------------------------------] 100%
(43/62) installing lib32-libelf                                                 [---------------------------------------------] 100%
(44/62) installing lib32-libunwind                                              [---------------------------------------------] 100%
(45/62) installing lib32-ncurses                                                [---------------------------------------------] 100%
(46/62) installing lib32-llvm-libs                                              [---------------------------------------------] 100%
(47/62) installing lib32-lm_sensors                                             [---------------------------------------------] 100%
(48/62) installing lib32-mesa                                                   [---------------------------------------------] 100%
Optional dependencies for lib32-mesa
    opengl-man-pages: for the OpenGL API man pages
    lib32-mesa-vdpau: for accelerated video playback
    lib32-libva-mesa-driver: for accelerated video playback
(49/62) installing lib32-libglvnd                                               [---------------------------------------------] 100%
(50/62) installing lib32-glu                                                    [---------------------------------------------] 100%
(51/62) installing lib32-libice                                                 [---------------------------------------------] 100%
(52/62) installing lib32-libsm                                                  [---------------------------------------------] 100%
(53/62) installing lib32-libnl                                                  [---------------------------------------------] 100%
(54/62) installing lib32-libgpg-error                                           [---------------------------------------------] 100%
(55/62) installing lib32-libgcrypt                                              [---------------------------------------------] 100%
(56/62) installing lib32-systemd                                                [---------------------------------------------] 100%
(57/62) installing lib32-dbus                                                   [---------------------------------------------] 100%
(58/62) installing lib32-libpcap                                                [---------------------------------------------] 100%
(59/62) installing faudio                                                       [---------------------------------------------] 100%
(60/62) installing lib32-sdl2                                                   [---------------------------------------------] 100%
Optional dependencies for lib32-sdl2
    lib32-alsa-lib: ALSA audio driver
    lib32-jack: JACK audio driver
    lib32-libpulse: PulseAudio audio driver
    lib32-pipewire: PipeWire audio driver
(61/62) installing lib32-faudio                                                 [---------------------------------------------] 100%
(62/62) installing wine                                                         [---------------------------------------------] 100%
Run 'systemctl restart systemd-binfmt' in order to make the wine binfmt available on your system.
Optional dependencies for wine
    giflib [installed]
    lib32-giflib
    libpng [installed]
    lib32-libpng [installed]
    libldap [installed]
    lib32-libldap [installed]
    gnutls [installed]
    lib32-gnutls
    mpg123 [installed]
    lib32-mpg123
    openal [installed]
    lib32-openal
    v4l-utils [installed]
    lib32-v4l-utils
    libpulse [installed]
    lib32-libpulse
    alsa-plugins [installed]
    lib32-alsa-plugins
    alsa-lib [installed]
    lib32-alsa-lib
    libjpeg-turbo [installed]
    lib32-libjpeg-turbo [installed]
    libxcomposite [installed]
    lib32-libxcomposite
    libxinerama [installed]
    lib32-libxinerama
    opencl-icd-loader [installed]
    lib32-opencl-icd-loader
    libxslt [installed]
    lib32-libxslt
    gst-plugins-base-libs [installed]
    lib32-gst-plugins-base-libs
    vkd3d
    lib32-vkd3d
    sdl2 [installed]
    lib32-sdl2 [installed]
    libgphoto2 [installed]
    sane [installed]
    gsm [installed]
    cups [installed]
    samba
    dosbox
:: Running post-transaction hooks...
(1/6) Registering binary formats...
(2/6) Arming ConditionNeedsUpdate...
(3/6) Updating fontconfig configuration...
(4/6) Updating fontconfig cache...
(5/6) Updating 32-bit fontconfig cache...
(6/6) Updating the desktop file MIME type cache...

I then installed the application using its installer, which was recognized by Wine Windows Program Loader and executed. All went fine.

The application, which allows to navigate on a 3D environment, offers three options:

  • Accelerated graphics (Direct3D)
  • Accelerated graphics (OpenGL)
  • Standard graphics

When I choose the first two options, the application stops to show the 3D environment (it instead shows a black area), which is then shown again when I choose the third option.

This happens only on my laptop, which has a integrated graphics card. On my desktop computer, with an NVIDIA graphics card, the application works even when I select Direct3D or OpenGL.

Is there any additional package I need to install?

The output of inxi -Ga, for my laptop, is the following.

Graphics:
  Device-1: Intel 4th Gen Core Processor Integrated Graphics vendor: ASUSTeK
    driver: i915 v: kernel arch: Gen-5.75 process: Intel 45nm built: 2010
    ports: active: eDP-1 empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0
    chip-ID: 8086:0416 class-ID: 0300
  Device-2: NVIDIA GM107M [GeForce GTX 950M] vendor: ASUSTeK
    driver: nouveau v: kernel non-free: 515.xx+ status: current (as of 2022-10)
    arch: Maxwell code: GMxxx process: TSMC 28nm built: 2014-19 pcie: gen: 1
    speed: 2.5 GT/s lanes: 16 link-max: gen: 3 speed: 8 GT/s bus-ID: 01:00.0
    chip-ID: 10de:139a class-ID: 0302 temp: 47.0 C
  Device-3: Chicony HD WebCam (Asus N-series) type: USB driver: uvcvideo
    bus-ID: 1-7:4 chip-ID: 04f2:b3fd class-ID: 0e02 serial: 0x0001
  Display: x11 server: X.Org v: 21.1.4 compositor: kwin_x11 driver: X:
    loaded: intel,modesetting alternate: fbdev,nouveau,nv,vesa
    dri: i965,nouveau gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
    s-diag: 582mm (22.93")
  Monitor-1: eDP-1 mapped: eDP1 model: LG Display 0x042c built: 2013
    res: 1920x1080 hz: 60 dpi: 139 gamma: 1.2 size: 350x190mm (13.78x7.48")
    diag: 396mm (15.6") ratio: 16:9 modes: 1920x1080
  OpenGL: renderer: Mesa Intel HD Graphics 4600 (HSW GT2) v: 4.6 Mesa
    22.2.1 direct render: Yes

I am using the LTS kernel on both the computers.

As additional information, the Windows application isn’t a .NET application. It’s a set of Python files with two Windows executables, one to start the application and the other to uninstall the application.

Can you tell the name of the application? Also setting Nvidia GPU may be helpful:

sudo pacman -S --needed prime-run && prime-run wine /path/to/application

It’s IMVU.
I think this isn’t an issue with that application, but with what Wine exposes to Windows applications. The OpenGL renderer is set, on the EOS side; Wine should pass that information to the Windows applications.

Install nvidia drivers.

sudo pacman -S nvidia-dkms

Don’t know what this does, but did you see this install message and perform it?

Maybe try running through Lutris instead? It provides a lot of easy accessible options for testing.

Check this page for OpenGL info: https://wiki.archlinux.org/title/OpenGL
use glxinfo | grep OpenGL or prime-run glxinfo | grep OpenGL to verify your install
and glxgears or prime-run glxgears to test it. prime-run only if have nvidia-primeinstalled and you’re using nvidia drivers.

I ended up installing the NVIDIA driver with yay -S nvidia and then installing Optimus Manager following what described in Optimus-Manager for Nvidia.
After I switched to NVIDIA graphics, IMVU was able to use OpenGL for its rendering. (I can also select Accelerated graphics (Direct3D) as rendering, although in that case the frame rate is lower.)

I could not use the nvidia-dkms driver because Optimus Manager isn’t able to detect it. (It showed an error when I tried to switch to NVIDIA graphics.)

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.