Skip to content

fix: accept integrated GPUs in physical device selection#9

Open
DasPauluteli wants to merge 1 commit into
Minecraft-Radiance:mainfrom
DasPauluteli:fix/apu-integrated-gpu-device-selection
Open

fix: accept integrated GPUs in physical device selection#9
DasPauluteli wants to merge 1 commit into
Minecraft-Radiance:mainfrom
DasPauluteli:fix/apu-integrated-gpu-device-selection

Conversation

@DasPauluteli
Copy link
Copy Markdown

Problem

findPhysicalDevice() in src/core/vulkan/physical_device.cpp has a hard-coded filter that rejects any device that is not VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:

if (properties.deviceType != VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU) continue;

This silently discards APUs and integrated GPUs that fully satisfy every actual capability requirement, causing an immediate crash on startup:

[PhysicalDevice] No suitable physical device found!

This affects at least:

Fix

Remove the device-type filter. isDeviceSuitable() already checks every capability that actually matters:

  • VK_KHR_swapchain
  • VK_KHR_ray_tracing_pipeline
  • accelerationStructure
  • synchronization2
  • bufferDeviceAddress

Selection is now purely capability-based.

Tested on

Field Value
GPU AMD Radeon 8060S Graphics (RADV STRIX_HALO)
GPU type VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
Vulkan API 1.4.348
Driver RADV 26.1.0
Vendor AMD (0x1002)
OS CachyOS (Arch-based), KDE Plasma 6 / Wayland
CPU AMD Ryzen AI Max+ 395 (RDNA4 APU, gfx1151, STRIX_HALO)
Radiance 0.1.5-alpha, Fabric 1.21.4

All RT extensions confirmed present: VK_KHR_acceleration_structure, VK_KHR_ray_tracing_pipeline, VK_KHR_ray_query.

Diff

-            if (properties.deviceType != VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU) continue;
-
             physicalDevice_ = device;

The suitability check in findPhysicalDevice() already validates all
required capabilities (VK_KHR_ray_tracing_pipeline + acceleration
structure + synchronization2 + bufferDeviceAddress). The additional
hard-coded filter for VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU silently
rejects APUs and integrated GPUs that fully support ray tracing,
producing the "[PhysicalDevice] No suitable physical device found!"
crash at startup.

Remove the device-type filter so that selection is capability-based.

Fixes Radiance#214, Radiance#240. Also likely fixes Radiance#87
(Intel Arc 140T reports as INTEGRATED_GPU and crashes the same way).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Interstellarss
Copy link
Copy Markdown
Collaborator

I think there is a selection mechanism in the dev branch for version 0.1.3-alpha, but at the time it is not really working on a intel integrated GPU that has ray tracing unit. If it is working on a amd integrated gpu, could you also share the performance on this device?

@Interstellarss Interstellarss self-assigned this May 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants