hi,

on default F44 install,

        $ distro
                Name: Fedora Linux 44 (Forty Four)
                Version: 44
                Codename:
        $ uname -rm
                7.0.4-200.fc44.x86_64 x86_64

with Intel DG2 GPU h/w, e.g.

        $ lspci -k -s 09:00.0
                09:00.0 VGA compatible controller: Intel Corporation DG2 [Arc 
A380] (rev 05)
                                Subsystem: ASRock Incorporation Device 6004
                                Kernel driver in use: xe
                                Kernel modules: i915, xe
        $

vulkan accel is via software render

vulkan accel's provided by mesa-vulkan-drivers pkg, which ships llvmpipe -- 
Mesa's
software rasterizer -- as the vulkan ICD.

it enumerates as

        $ vulkaninfo | grep -Ei "llvm|lava"
                ...
                GPU0:
                VkPhysicalDeviceProperties:
                ---------------------------
                                apiVersion        = 1.4.335 (4211023)
                                driverVersion     = 26.0.6 (109051910)
                                vendorID          = 0x10005
                                deviceID          = 0x0000
                                deviceType        = PHYSICAL_DEVICE_TYPE_CPU
                                deviceName        = llvmpipe (LLVM 22.1.4, 256 
bits)
                ...
                GPU id : 0 (llvmpipe (LLVM 22.1.4, 256 bits)) 
[VK_KHR_xcb_surface, VK_KHR_xlib_surface]:
                                vulkanMemoryModelAvailabilityVisibilityChains   
   = true
                                deviceName        = llvmpipe (LLVM 22.1.4, 256 
bits)
                                driverID                                        
     = DRIVER_ID_MESA_LLVMPIPE
                                driverName                                      
     = llvmpipe
                                driverInfo                                      
     = Mesa 26.0.6 (LLVM 22.1.4)
                                vulkanMemoryModelAvailabilityVisibilityChains   
     = true
                ...

performance regression from using llvmpipe software render rather than hardware 
accel is orders of magnitude.
video decode/encode is also unavailable in the llvmpipe path.

this is the case on DG2 here; it might extend to other GPU hardware (not tested)

in order to enable vulkan *hardware* accel on the DG2 `vulkan-wsi-layer`

        https://docs.vulkan.org/guide/latest/wsi.html

an optional vulkan extension

        https://docs.vulkan.org/spec/latest/chapters/VK_KHR_surface/wsi.html

is needed

specifically, it's a vulkan implicit layer extension that provides the WSI
extensions not natively exposed by the standard Mesa drivers

it's a simple build; it installs two files:

        $ rpm -ql vulkan-wsi-layer
                
/usr/share/vulkan/implicit_layer.d/VkLayer_window_system_integration.json
                
/usr/share/vulkan/implicit_layer.d/libVkLayer_window_system_integration.so

in to the vulkan _implicit_ layer

with llvmpipe:

  deviceType = PHYSICAL_DEVICE_TYPE_CPU
  deviceName = llvmpipe (LLVM 22.1.4, 256 bits)
  driverID   = DRIVER_ID_MESA_LLVMPIPE

with vulkan-wsi-layer installed, and env config, e.g.

        echo $VDPAU_DRIVER $LIBVA_DRIVER_NAME $VK_DRIVER_FILES $RUSTICL_ENABLE
                va_gl
                iHD
                /usr/share/vulkan/icd.d/intel_icd.x86_64.json
                iris

instead,

        deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName = Intel(R) Arc(tm) A380 Graphics (DG2)
        driverID   = DRIVER_ID_INTEL_OPEN_SOURCE_MESA


unlike e.g. standalone `vulkan-validation-layers` pkg which lives in 
explicit_layer.d/, the wsi extension lives in implicit_layer.d/

vulkan-loader pkg owns /usr/share/vulkan/implicit_layer.d/

        rpm -q --whatprovides  /usr/share/vulkan/implicit_layer.d/
                vulkan-loader-1.4.341.0-1.fc44.x86_64

vulkan-loader scans implicit_layer.d/ at startup, and loads found manifests 
into vulkan apps automatically.

on (at least) Intel Arc (DG2) the layer's req'd get h/w rendering at all.
otherwise, vulkan-loader falls back to llvmpipe.
no layer extension, no h/w accel.

to get out-of-the-box vulkan accel, `vulkan-wsi-layer` seems to make sense 
belongs as a dep of `vulkan-loader`


--
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://forge.fedoraproject.org/infra/tickets/issues/new

Reply via email to