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`
Hi,
Will you please review https://copr.fedorainfracloud.org/coprs/g/xr-sig/vulkan-wsi-layer/ and see if this works for your case. I had to add a handful of patches and it'd be good to get them tested before upstreaming.
Thanks,
On Mon, May 11, 2026 at 12:59 PM pgnd pgnd@dev-mail.net wrote:
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_64with 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.htmlan 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_MESAunlike 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_64vulkan-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 -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org 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/devel@lists.fedoraproject.org Do not reply to spam, report it: https://forge.fedoraproject.org/infra/tickets/issues/new
hi,
Will you please review https://copr.fedorainfracloud.org/coprs/g/xr-sig/vulkan-wsi-layer/ https://copr.fedorainfracloud.org/coprs/g/xr-sig/vulkan-wsi-layer/ and see if this works for your case. I had to add a handful of patches and it'd be good to get them tested before upstreaming.
atm, i'm building in kernel 7.0.8
applying only 4 patches as i'd submitted at
https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer/-/work_items/32 https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer/-/work_items/33 https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer/-/work_items/34 https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer/-/work_items/35
so far, that's all i need.
troubleshooting some UI artifacts in VirtualBox-7.2 Guest UI -- only from guest start to early boot; once booted, Guest's OK -- which i think may be related to Vulkan. specifically, their embedded vulkan libs ...
once i get that sorted out, i can take your build out for a spin.
the VBox issue was a red-herring; KWin 6.6.5 related, but not Vulkan involved.
testing your build, far so good.
after install,
$ sudo rpm -e vulkan-wsi-layer $ sudo rpm -ivh https://packages.redhat.com/api/pulp-content/public-copr/@xr-sig/vulkan-wsi-... $ sudo rpm -q vulkan-wsi-layer vulkan-wsi-layer-0^20260514gita6e9640-1.fc44.x86_64
@ distro-pkg'ing looks path-consistent
$ rpm -ql vulkan-wsi-layer /usr/lib/.build-id /usr/lib/.build-id/e5 /usr/lib/.build-id/e5/935321a7656f7dc6e3dc6d7aa70ec4e8bb1925 /usr/lib64/vulkan-wsi-layer /usr/lib64/vulkan-wsi-layer/layer !! /usr/lib64/vulkan-wsi-layer/layer/libVkLayer_window_system_integration.so /usr/share/doc/vulkan-wsi-layer /usr/share/doc/vulkan-wsi-layer/README.md /usr/share/licenses/vulkan-wsi-layer /usr/share/licenses/vulkan-wsi-layer/LICENSE !! /usr/share/vulkan/implicit_layer.d/VkLayer_window_system_integration.json
$ grep library_path /usr/share/vulkan/implicit_layer.d/VkLayer_window_system_integration.json "library_path": "/usr/lib64/vulkan-wsi-layer/layer/libVkLayer_window_system_integration.so",
but is that consistent with @ Fedora vulkan pkg'ing? note:
$ locate libVkLayer | grep so$ /usr/lib64/libVkLayer_MESA_device_select.so /usr/lib64/libVkLayer_khronos_validation.so $ rpm -q --whatprovides `locate libVkLayer | grep so$` mesa-vulkan-drivers-26.0.6-2.fc44.x86_64 vulkan-validation-layers-1.4.341.0-2.fc44.x86_64
, flat in /usr/lib64/ path, not nested in /usr/lib64/vulkan-wsi-layer/layer/
initial testing here looks good. benchmarks are similar to my build ...
There should be no reason to install vulkan-wsi-layer on Linux at this time AFAIK, mesa drivers provide their own WSI.
Dave.
On Mon, May 18, 2026 at 8:05 AM pgnd pgnd@dev-mail.net wrote:
the VBox issue was a red-herring; KWin 6.6.5 related, but not Vulkan involved.
testing your build, far so good.
after install,
$ sudo rpm -e vulkan-wsi-layer $ sudo rpm -ivh https://packages.redhat.com/api/pulp-content/public-copr/@xr-sig/vulkan-wsi-... $ sudo rpm -q vulkan-wsi-layer vulkan-wsi-layer-0^20260514gita6e9640-1.fc44.x86_64
@ distro-pkg'ing looks path-consistent
$ rpm -ql vulkan-wsi-layer /usr/lib/.build-id /usr/lib/.build-id/e5 /usr/lib/.build-id/e5/935321a7656f7dc6e3dc6d7aa70ec4e8bb1925 /usr/lib64/vulkan-wsi-layer /usr/lib64/vulkan-wsi-layer/layer !! /usr/lib64/vulkan-wsi-layer/layer/libVkLayer_window_system_integration.so /usr/share/doc/vulkan-wsi-layer /usr/share/doc/vulkan-wsi-layer/README.md /usr/share/licenses/vulkan-wsi-layer /usr/share/licenses/vulkan-wsi-layer/LICENSE !! /usr/share/vulkan/implicit_layer.d/VkLayer_window_system_integration.json
$ grep library_path /usr/share/vulkan/implicit_layer.d/VkLayer_window_system_integration.json "library_path": "/usr/lib64/vulkan-wsi-layer/layer/libVkLayer_window_system_integration.so",
but is that consistent with @ Fedora vulkan pkg'ing? note:
$ locate libVkLayer | grep so$ /usr/lib64/libVkLayer_MESA_device_select.so /usr/lib64/libVkLayer_khronos_validation.so $ rpm -q --whatprovides `locate libVkLayer | grep so$` mesa-vulkan-drivers-26.0.6-2.fc44.x86_64 vulkan-validation-layers-1.4.341.0-2.fc44.x86_64
, flat in /usr/lib64/ path, not nested in /usr/lib64/vulkan-wsi-layer/layer/
initial testing here looks good. benchmarks are similar to my build ...
-- _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org 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/devel@lists.fedoraproject.org Do not reply to spam, report it: https://forge.fedoraproject.org/infra/tickets/issues/new
There should be no reason to install vulkan-wsi-layer on Linux at this time AFAIK, mesa drivers provide their own WSI.
they do. but whether they're sufficient depends on your use case.
comparing implicit-layer-loaded vulkan-wsi-layer vs MESA native-WSI
a minimal-instance test (vk-feature-query) checking for capability, with layer installed/auto-enabled
$ VK_DRIVER_FILES=.../intel_icd.x86_64.json ./vk-feature-query swapchainMaintenance1 : true # layer implemented presentWait2 : true # layer implemented presentTiming : true # layer-only (Mesa: false) presentAtAbsoluteTime : true # layer-only (Mesa: false) presentAtRelativeTime : true # layer-only (Mesa: false) presentModeFifoLatestReady: true # layer-only (Mesa: false)
and disabled
$ DISABLE_WSI_LAYER=1 VK_DRIVER_FILES=.../intel_icd.x86_64.json ./vk-feature-query swapchainMaintenance1 : true # Mesa native presentWait2 : true # Mesa native presentTiming : false presentAtAbsoluteTime : false presentAtRelativeTime : false presentModeFifoLatestReady: false
iiuc layer *exclusively* provides:
presentTiming presentAtAbsoluteTime presentAtRelativeTime presentModeFifoLatestReady
useful when an app needs to
- control exactly when frames appear on screen - show the freshest frame at each vblank without tearing
e.g., video sync, VR, real-time imaging/control ...
but, fair point. may not be of interest to the distro's packaging.
local build/install solves the functionality issue here.