Ashark / davinci-resolve-checker

Check your system configuration and hardware for ability to successfully run DaVinci Resolve
GNU General Public License v3.0
124 stars 18 forks source link

The script says that I cannot run Resolve because I have not installed the corresponding driver, but I have installed them. #41

Closed Pragmer closed 1 year ago

Pragmer commented 1 year ago

My partition is Arch Linux created using archinstall, there was an option asking about installing graphics drivers and because I know that I only have an AMD GPU(RX 6700) I selected amd all open source. I was following this guide: https://wiki.archlinux.org/title/DaVinci_Resolve to install resolve. I installed the free version that it lists via git clone >> makepkg >> pacman.

The guide states that both Open CL drivers and Open GL drivers are required and has a table listing available drivers, whether they are open source or not, and whether they have been tested to work with resolve or not. I installed "mesa" for Open GL, and "rocm-opencl-runtime" for Open CL. Both of these drivers are listed as having been tested to work on the latest version of Resolve. After this it links to this github and says to make sure that you get "All seems good. You should be able to run DaVinci Resolve successfully. " Unfortunately this is not what I get.

The output of this command(CDed into its folder): ./davinci-resolve-checker.py is the following.

Using locale en_US
DaVinci Resolve checker 5.2.3
Installed DaVinci Resolve package: davinci-resolve 18.1.4-1
Chassis type: desktop
Installed OpenCL drivers:
    rocm-opencl-runtime 5.4.3-1
Presented GPUs:
    Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] (kernel driver in use: amdgpu)
    Raphael (kernel driver in use: amdgpu)
OpenGL vendor string: 
OpenGL renderer string: 
clinfo detected platforms and devices:
    Warning: could not parse clinfo data!

Not found opencl platforms with appropriate GPUs. Check that you have installed corresponding driver. Otherwise you cannot run DR.
Unable to detect the OpenGL vendor string. Probably you are trying to use AMD Pro OpenGL while your primary GPU is Intel. Also probably you are launching script via ssh.

Furthermore, I can verify that the drivers are actually installed by using the commands "pacman -Qs mesa" and "pacman -Qs rocm-opencl-runtime" of which the outputs are the following For Mesa:

local/glu 9.0.2-3
    Mesa OpenGL utility library
local/libva-mesa-driver 23.1.3-1
    VA-API drivers
local/mesa 23.1.3-1
    An open-source implementation of the OpenGL specification
local/mesa-demos 9.0.0-2
    Mesa demos
local/vulkan-radeon 23.1.3-1
    Radeon's Vulkan mesa driver

For Rocm:

local/rocm-opencl-runtime 5.4.3-1
    OpenCL implementation for AMD

What is even more perplexing is that I actually CAN open Resolve. I just cant seem to properly import my video file. I have looked into that issue specifically for like 5 hours and all I really found were ways to check to make sure I was using a supported video format(which MKV is) and a supported codec(which is H.264, also supported) or people saying that I should make sure it has a constant framerate(which I verified with ffmpeg to be a constant 60). I even made sure that the FLAC audio format was supported which it is(my audio was recorded as FLAC).

Perhaps this is foolish of me but my conclusion after this was to go back to the resolve checker issue I had 5 hours prior that I ignored because the program had actually opened. I figured that maybe something else was going on that I was too dense to resolve, so, here I am, hoping that I can get some help of some kind. If any more information is required for diagnostic purposes request away. If I am being a foolish idiot, please say so and explain, so that maybe I don't make the same mistake in the future.

Ashark commented 1 year ago

The problem is here: Warning: could not parse clinfo data! Have you tried running clinfo?

Pragmer commented 1 year ago
clinfo ``` Number of platforms 1 Platform Name AMD Accelerated Parallel Processing Platform Vendor Advanced Micro Devices, Inc. Platform Version OpenCL 2.1 AMD-APP.dbg (3513.0) Platform Profile FULL_PROFILE Platform Extensions cl_khr_icd cl_amd_event_callback Platform Extensions function suffix AMD Platform Host timer resolution 1ns Platform Name AMD Accelerated Parallel Processing Number of devices 2 Device Name gfx1031 Device Vendor Advanced Micro Devices, Inc. Device Vendor ID 0x1002 Device Version OpenCL 2.0 Driver Version 3513.0 (HSA1.1,LC) Device OpenCL C Version OpenCL C 2.0 Device Type GPU Device Board Name (AMD) AMD Radeon Graphics Device PCI-e ID (AMD) 0x73df Device Topology (AMD) PCI-E, 0000:03:00.0 Device Profile FULL_PROFILE Device Available Yes Compiler Available Yes Linker Available Yes Max compute units 18 SIMD per compute unit (AMD) 4 SIMD width (AMD) 32 SIMD instruction width (AMD) 1 Max clock frequency 2700MHz Graphics IP (AMD) 10.3 Device Partition (core) Max number of sub-devices 18 Supported partition types None Supported affinity domains (n/a) Max work item dimensions 3 Max work item sizes 1024x1024x1024 Max work group size 256 Preferred work group size (AMD) 256 Max work group size (AMD) 1024 Preferred work group size multiple (kernel) 32 Wavefront width (AMD) 32 Preferred / native vector sizes char 4 / 4 short 2 / 2 int 1 / 1 long 1 / 1 half 1 / 1 (cl_khr_fp16) float 1 / 1 double 1 / 1 (cl_khr_fp64) Half-precision Floating-point support (cl_khr_fp16) Denormals No Infinity and NANs No Round to nearest No Round to zero No Round to infinity No IEEE754-2008 fused multiply-add No Support is emulated in software No Single-precision Floating-point support (core) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Correctly-rounded divide and sqrt operations Yes Double-precision Floating-point support (cl_khr_fp64) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Address bits 64, Little-Endian Global memory size 10720641024 (9.984GiB) Global free memory (AMD) 10469376 (9.984GiB) 10469376 (9.984GiB) Global memory channels (AMD) 5 Global memory banks per channel (AMD) 4 Global memory bank width (AMD) 256 bytes Error Correction support No Max memory allocation 9112544864 (8.487GiB) Unified memory for Host and Device No Shared Virtual Memory (SVM) capabilities (core) Coarse-grained buffer sharing Yes Fine-grained buffer sharing Yes Fine-grained system sharing No Atomics No Minimum alignment for any data type 128 bytes Alignment of base address 1024 bits (128 bytes) Preferred alignment for atomics SVM 0 bytes Global 0 bytes Local 0 bytes Max size for global variable 9112544864 (8.487GiB) Preferred total size of global vars 10720641024 (9.984GiB) Global Memory cache type Read/Write Global Memory cache size 16384 (16KiB) Global Memory cache line size 64 bytes Image support Yes Max number of samplers per kernel 29663 Max size for 1D images from buffer 134217728 pixels Max 1D or 2D image array size 8192 images Base address alignment for 2D image buffers 256 bytes Pitch alignment for 2D image buffers 256 pixels Max 2D image size 16384x16384 pixels Max 3D image size 16384x16384x8192 pixels Max number of read image args 128 Max number of write image args 8 Max number of read/write image args 64 Max number of pipe args 16 Max active pipe reservations 16 Max pipe packet size 522610272 (498.4MiB) Local memory type Local Local memory size 65536 (64KiB) Local memory size per CU (AMD) 65536 (64KiB) Local memory banks (AMD) 32 Max number of constant args 8 Max constant buffer size 9112544864 (8.487GiB) Preferred constant buffer size (AMD) 16384 (16KiB) Max size of kernel argument 1024 Queue properties (on host) Out-of-order execution No Profiling Yes Queue properties (on device) Out-of-order execution Yes Profiling Yes Preferred size 262144 (256KiB) Max size 8388608 (8MiB) Max queues on device 1 Max events on device 1024 Prefer user sync for interop Yes Number of P2P devices (AMD) 0 Profiling timer resolution 1ns Profiling timer offset since Epoch (AMD) 0ns (Wed Dec 31 16:00:00 1969) Execution capabilities Run OpenCL kernels Yes Run native kernels No Thread trace supported (AMD) No Number of async queues (AMD) 8 Max real-time compute queues (AMD) 8 Max real-time compute units (AMD) 18 printf() buffer size 4194304 (4MiB) Built-in kernels (n/a) Device Extensions cl_khr_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_amd_device_attribute_query cl_amd_media_ops cl_amd_media_ops2 cl_khr_image2d_from_buffer cl_khr_subgroups cl_khr_depth_images cl_amd_copy_buffer_p2p cl_amd_assembly_program Device Name gfx1036 Device Vendor Advanced Micro Devices, Inc. Device Vendor ID 0x1002 Device Version OpenCL 2.0 Driver Version 3513.0 (HSA1.1,LC) Device OpenCL C Version OpenCL C 2.0 Device Type GPU Device Board Name (AMD) AMD Radeon Graphics Device PCI-e ID (AMD) 0x164e Device Topology (AMD) PCI-E, 0000:0e:00.0 Device Profile FULL_PROFILE Device Available Yes Compiler Available Yes Linker Available Yes Max compute units 1 SIMD per compute unit (AMD) 4 SIMD width (AMD) 32 SIMD instruction width (AMD) 1 Max clock frequency 2200MHz Graphics IP (AMD) 10.3 Device Partition (core) Max number of sub-devices 1 Supported partition types None Supported affinity domains (n/a) Max work item dimensions 3 Max work item sizes 1024x1024x1024 Max work group size 256 Preferred work group size (AMD) 256 Max work group size (AMD) 1024 Preferred work group size multiple (kernel) 32 Wavefront width (AMD) 32 Preferred / native vector sizes char 4 / 4 short 2 / 2 int 1 / 1 long 1 / 1 half 1 / 1 (cl_khr_fp16) float 1 / 1 double 1 / 1 (cl_khr_fp64) Half-precision Floating-point support (cl_khr_fp16) Denormals No Infinity and NANs No Round to nearest No Round to zero No Round to infinity No IEEE754-2008 fused multiply-add No Support is emulated in software No Single-precision Floating-point support (core) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Correctly-rounded divide and sqrt operations Yes Double-precision Floating-point support (cl_khr_fp64) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Address bits 64, Little-Endian Global memory size 536870912 (512MiB) Global free memory (AMD) 524288 (512MiB) 524288 (512MiB) Global memory channels (AMD) 4 Global memory banks per channel (AMD) 4 Global memory bank width (AMD) 256 bytes Error Correction support No Max memory allocation 456340272 (435.2MiB) Unified memory for Host and Device No Shared Virtual Memory (SVM) capabilities (core) Coarse-grained buffer sharing Yes Fine-grained buffer sharing Yes Fine-grained system sharing No Atomics No Minimum alignment for any data type 128 bytes Alignment of base address 1024 bits (128 bytes) Preferred alignment for atomics SVM 0 bytes Global 0 bytes Local 0 bytes Max size for global variable 456340272 (435.2MiB) Preferred total size of global vars 536870912 (512MiB) Global Memory cache type Read/Write Global Memory cache size 16384 (16KiB) Global Memory cache line size 64 bytes Image support Yes Max number of samplers per kernel 5710 Max size for 1D images from buffer 134217728 pixels Max 1D or 2D image array size 8192 images Base address alignment for 2D image buffers 256 bytes Pitch alignment for 2D image buffers 256 pixels Max 2D image size 16384x16384 pixels Max 3D image size 16384x16384x8192 pixels Max number of read image args 128 Max number of write image args 8 Max number of read/write image args 64 Max number of pipe args 16 Max active pipe reservations 16 Max pipe packet size 456340272 (435.2MiB) Local memory type Local Local memory size 65536 (64KiB) Local memory size per CU (AMD) 65536 (64KiB) Local memory banks (AMD) 32 Max number of constant args 8 Max constant buffer size 456340272 (435.2MiB) Preferred constant buffer size (AMD) 16384 (16KiB) Max size of kernel argument 1024 Queue properties (on host) Out-of-order execution No Profiling Yes Queue properties (on device) Out-of-order execution Yes Profiling Yes Preferred size 262144 (256KiB) Max size 8388608 (8MiB) Max queues on device 1 Max events on device 1024 Prefer user sync for interop Yes Number of P2P devices (AMD) 0 Profiling timer resolution 1ns Profiling timer offset since Epoch (AMD) 0ns (Wed Dec 31 16:00:00 1969) Execution capabilities Run OpenCL kernels Yes Run native kernels No Thread trace supported (AMD) No Number of async queues (AMD) 8 Max real-time compute queues (AMD) 8 Max real-time compute units (AMD) 1 printf() buffer size 4194304 (4MiB) Built-in kernels (n/a) Device Extensions cl_khr_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_amd_device_attribute_query cl_amd_media_ops cl_amd_media_ops2 cl_khr_image2d_from_buffer cl_khr_subgroups cl_khr_depth_images cl_amd_copy_buffer_p2p cl_amd_assembly_program NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) No platform clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) No platform clCreateContext(NULL, ...) [default] No platform clCreateContext(NULL, ...) [other] Success [AMD] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1) Platform Name AMD Accelerated Parallel Processing Device Name gfx1031 clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (2) Platform Name AMD Accelerated Parallel Processing Device Name gfx1031 Device Name gfx1036 clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (2) Platform Name AMD Accelerated Parallel Processing Device Name gfx1031 Device Name gfx1036 ```

What little I gathered from this is that it IS using OpenCL. I ran the script again and it finds stuff on OpenCL but it still cant find anything on OpenGL

Using locale en_US
DaVinci Resolve checker 5.2.3
Installed DaVinci Resolve package: davinci-resolve 18.1.4-1
Chassis type: desktop
Installed OpenCL drivers:
    rocm-opencl-runtime 5.4.3-1
Presented GPUs:
    Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] (kernel driver in use: amdgpu)
    Raphael (kernel driver in use: amdgpu)
OpenGL vendor string: 
OpenGL renderer string: 
clinfo detected platforms and devices:
    AMD Accelerated Parallel Processing (roc) (number of devices: 2)
        AMD Radeon Graphics
        AMD Radeon Graphics

Unable to detect the OpenGL vendor string. Probably you are trying to use AMD Pro OpenGL while your primary GPU is Intel. Also probably you are launching script via ssh.
Pragmer commented 1 year ago

Idk if I should clarify, but I do NOT have an intel GPU and I am NOT trying to use AMD Pro OpenGL.

Ashark commented 1 year ago

Have you followed the installation instructions to install dependencies such as mesa-demos? Try running glxinfo commands from script (lines 129 and 134 currently).

Pragmer commented 1 year ago

I don't know whether to feel embarrassed, ashamed, or both. Both of these problems with the script were caused by commands not being installed, I'm assuming due to my own incompetence. New output of the script:

Using locale en_US
DaVinci Resolve checker 5.2.3
Installed DaVinci Resolve package: davinci-resolve 18.1.4-1
Chassis type: desktop
Installed OpenCL drivers:
    rocm-opencl-runtime 5.4.3-1
Presented GPUs:
    Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] (kernel driver in use: amdgpu)
    Raphael (kernel driver in use: amdgpu)
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon Graphics (navi22, LLVM 15.0.7, DRM 3.52, 6.4.2-arch1-1)
clinfo detected platforms and devices:
    AMD Accelerated Parallel Processing (roc) (number of devices: 2)
        AMD Radeon Graphics
        AMD Radeon Graphics

You have several AMD GPUs. DR Studio can utilise several GPUs. Script will check if appropriate driver for your renderer GPU is used. But keep in mind that if you use prime offloading, than your primary gpu still need appropriate driver (script does not check it).
You should use ROC_ENABLE_PRE_VEGA=1 environment variable. Otherwise use pro stack (run checker with --pro), because legacy opencl requires progl to work.

The reason it says I have several AMD GPUs is likely because I have one ACTUAL GPU, an RX6700, and the CPU has an IGPU. I did look through a Davinci Resolve Log and it seems to me that it liked to use the IGPU not the actual GPU. I'm assuming "ROC_ENABLE_PRE_VEGA=1" is supposed to fix that.

Pragmer commented 1 year ago

Update: I think the recommendation given by the script is incorrect. From what I can find GFX9/Vega came out in 2017. My graphics card, was made in 2021. I don't know about you but 2021 seems like its AFTER that, not before, so I am unsure why it is recommending me to enable something only for graphics cards made before Vega. My CPU(which has an IGPU) was made in late 2022, further after Vega.

Ashark commented 1 year ago

It is most likely some conditions error. Please use dump_lspci_list.py and share the dict. I will analyze it.

Pragmer commented 1 year ago

I think I am misunderstanding your request due to my own ignorance. I looked up what it meant to share the dict and it seemed like it would be the file in this directory: /usr/share/dict/, but I cannot upload it as it is not supported, so I probably got that wrong. Would you mind elaborating on what you want me to do?

Pragmer commented 1 year ago

I apologize If I am causing you frustration, this is not my intent. I am still in the learning stage of this distribution.

Ashark commented 1 year ago

I mean, after running the dump_lspci_list.py you should now have a lspci_devices_dump.bin. This is a python dictionary in binary format. Can you upload it, so that I could debug the problem?

Pragmer commented 1 year ago

Oh, I didn't realize that's what that type of file was called. Unfortunately it did not let me upload the file directly, so I had to upload it as a tar file. lspci_devices_dump.tar.gz

Ashark commented 1 year ago

Try with version 5.2.4

Ashark commented 1 year ago

Both of these problems with the script were caused by commands not being installed, I'm assuming due to my own incompetence.

No, that happened because glxinfo was moved to mesa-utils recently. Fixed dependencies in 5.2.5. Thanks for mentioning this.

Pragmer commented 1 year ago

Thank you for your help. The script now identifies that I can run davinci resolve.