Running vulkaninfo returns error: vulkaninfo.h:477: failed with ERROR_INITIALIZATION_FAILED - 64-bit

Iḿ trying to get vulkan to work but I get the following error:
vulkaninfo
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32
/build/vulkan-tools-KEbD_A/vulkan-tools-1.2.131.1+dfsg1/vulkaninfo/vulkaninfo.h:477: failed with ERROR_INITIALIZATION_FAILED
Following command dumps:
lspci -nnk | grep -iA2 vga
00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02)
Subsystem: Dell Core Processor Integrated Graphics Controller [1028:0410]
Kernel driver in use: i915
I have added the following to my grub config and initialized it
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.si_support=1 radeon.si_support=0 amdgpu.cik_support=1 radeon.cik_support=0"
followed by a reboot. The result is the same error :(
what am I doing wrong, can anyone help me?
Before I forget I installed vukan and mesa vulkan drivers and am running Ubuntu 20.04 LTS on a Dell Latitude E4310. Please help, I just want to play some windows (directX11) games with Wine.

This kind of cryptic error message can happen because vulkaninfo doesn't find any supported GPU.
It is likely that your GPU is not supported by Vulkan (too old), and so you won't be able to use DXVK (DirectX to Vulkan). You still may be able to run games without Vulkan by forcing Wine to use WineD3D (DirectX to OpenGl) instead. See Xaero_Vincent's answer in this reddit thread:
In Lutris you can easily disable DXVK as a option and on steam you can
force OpenGL-based WineD3D:
PROTON_USE_WINED3D=1 %command%
You'll notice though that DirectX 10/11 games will generally run
slower under OpenGL and some games will likely have graphics
artifacts, since DXVK is more mature and further developed.

Related

SDL2 from source not finding any video drivers

I am trying to compile SDL2 from source which I will then static link in another project. I've downloaded the source code here.
On a Ubuntu 18.04 machine I run the following commands:
./configure
make clean
make
The configure output then shows the following (note the found video drivers):
SDL2 Configure Summary:
Building Shared Libraries
Building Static Libraries
Enabled modules : atomic audio video render events joystick haptic sensor power filesystem threads timers file loadso cpuinfo assembly
Assembly Math : mmx 3dnow sse sse2 sse3
Audio drivers : disk dummy oss
Video drivers : dummy opengl_es2 vulkan
Input drivers : linuxev linuxkd
Using libsamplerate : NO
Using libudev : NO
Using dbus : NO
Using ime : YES
Using ibus : NO
Using fcitx : NO
If I then use this library in my other project I get a runtime error saying: SDL could not initialize! SDL_Error: No available video device.
Am I missing a step? I'm assuming X11 or Wayland should be linked against since I'm running on Ubuntu Desktop?

Investigating 32 bit MESA driver selection

I've used NVidia card, with the properary drivers installed on a Debian Stretch.
But because i'm carry my hard drive between different machines (intel, amd, but always on amd64 act), i'm decided to drop the NVidia card, and rollback opengl to MESA in order to use 3D acceleration on every machine. After a lot of struggling i'm successfully identified and recovered some badly overwritten file (libGL.so, libdrm2.so, by NVidia installer).
Now i'm successfully recovered the 64bit related libraries, so glxgears, browser's WebGL support, gnuplot, etc. works well.
But 32bit libraries (wine, steam) still doesn't work well, it's always falls back to "Mesa X11" render.
I'v used glxgears
$ LIBGL_DEBUG=verbose glxinfo | grep "OpenGL renderer string"
to identify which so and DRI selected. It's prints the lookup process and the renderer:
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/r600_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
libGL: Using DRI2 for screen 0
OpenGL renderer string: Gallium 0.4 on AMD SUMO (DRM 2.50.0 / 4.12.0-0.bpo.1-amd64, LLVM 3.9.1)
To investigate in 32 bit libraries (we can't have from mesa both the 64 and 32 bit installed), i've downloaded the 32bit version:
$ apt-get download mesa-utils:i386
Unpacked it and tries to figure out why it's fails to select the proper DRI:
LIBGL_DEBUG=verbose ./glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa X11
The pevious 64bit glxinfo prints debugging information to the stderr therefore we can see how the selection happens.
With 32bit version i can't get any useful information, even if i specify the
LIBGL_DRIVERS_PATH=/usr/lib/i386-linux-gnu/dri/
evironment variable, where mesa might find the proper 32 bit so.
$ file /usr/lib/i386-linux-gnu/dri/r600_dri.so
/usr/lib/i386-linux-gnu/dri/r600_dri.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=d5177f823f11ac8ea7412e517aa6684154de506e, stripped
How can i get more information about the MESA DRI selection?

VAAPI Compatibility issue with "Intel Corporation 3rd Gen Core processor Graphics Controller"

i am getting below error while running vainfo
libva info: VA-API version 0.99.0 libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD' libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva error: /opt/intel/mediasdk/lib64/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1 vaInitialize failed with error code 1 (operation failed),exit
This is happening after installing Intel Media Server Studio 2017 (see), before that vainfo was working fine, as i installed below packages and drivers, suggested from here.
sudo apt-get install i965-va-driver libva-intel-vaapi-driver vainfo
Machine configuration : ubuntu 14.04 LTS
Processor : Intel i7(i7-3720QM)
Graphics : Intel Corporation 3rd Gen Core processor Graphics Controller
Is this just because Intel SDK does not support 3rd Generation Processor?
The problem is with version of Media SDK used, Media SDK-2017 supports only 4th/5th Generation Processors.
For 3rd Generation Machine Media SDK-2015-R1 is the compatible version, which can be downloaded from here. Using the correct version with corresponding hardware will solve this problem.

arm64 support not provided in mkimage

I am trying to create an u-boot supported image using mkimage, when I try using:
mkimage -A arm64
I get the error:
Invalid CPU Type - valid names are: alpha, arm, x86, ia64, m68k, microblaze,
mips, mips64, nios2, powerpc, ppc, s390, sh, sparc, sparc64,
blackfin, avr32, nds32, or1k, sandbox
So I see there is no support for arm64.
I tried compiling a new version of u-boot, but the mkimage in u-boot is also not supporting arm64.
I tried installing u-boot-tools on my ubuntu pc with:
sudo apt-get install u-boot-tools
But this mkimage also is giving me the same problem.
Any help is highly appreciated.
Thank You!
As a valid architecture for mkimage, arm64 has been valid since roughly v2014.01-rc2 (and v2014.04 was the first full release with aarch64 support). That said, for most cases you either want to use booti which will boot the 'Image' format that the Linux Kernel generates for arm64 (similar to using bootz on arm32) or to generate a FIT image instead.

Invalid module format with matching vermagic value

I have a problem with one of my kernel modules for Linux 4 tegra on the Jetson tk1. I'm trying to integrate a Camera driver into the kernel
I'm trying to insert a module into the kernel and I've compiled everything on the target machine. Here's the modinfo of the kernel module.
filename: /home/ubuntu/mymodule.ko
license: GPL v2
author: John Doe
description: SoC Camera driver
alias: of:N*T*Cnvidia,mymodule*
alias: i2c:mymodule
depends:
vermagic: 3.10.40-svn469 SMP preempt mod_unload ARMv7 p2v8
parm: test_pattern:int
The uname -r command outputs this :
3.10.40-svn469
I still get this output when I am running sudo insmod mymodule.ko
insmod: ERROR: could not insert module mymodule.ko: Invalid module format
I've tried looking into the dmesg/syslog/kern log files but there's no information about why my module insertion is failing. I also looked around on other threads and it usually says to verify that the module was compiled using the correct headers. From my understanding, is the "vermagic" and the "uname -r" are similar I'm assuming that the versions are correct (I might be very wrong about that).
I'm running out of ideas and I'd like to know if I missed something.
Cheers.

Resources