diff --git a/rpcs3/Emu/RSX/VK/VKCompute.cpp b/rpcs3/Emu/RSX/VK/VKCompute.cpp index 499976b660fc..e7cfb617ba35 100644 --- a/rpcs3/Emu/RSX/VK/VKCompute.cpp +++ b/rpcs3/Emu/RSX/VK/VKCompute.cpp @@ -78,6 +78,7 @@ namespace vk break; case vk::driver_vendor::LAVAPIPE: case vk::driver_vendor::V3DV: + case vk::driver_vendor::PANVK: // TODO: Actually bench this. Using 32 for now to match other common configurations. case vk::driver_vendor::DOZEN: // Actual optimal size depends on the D3D device. Use 32 since it should work well on both AMD and NVIDIA diff --git a/rpcs3/Emu/RSX/VK/VKHelpers.cpp b/rpcs3/Emu/RSX/VK/VKHelpers.cpp index 7789661ef21f..2a31ffa51d09 100644 --- a/rpcs3/Emu/RSX/VK/VKHelpers.cpp +++ b/rpcs3/Emu/RSX/VK/VKHelpers.cpp @@ -144,6 +144,9 @@ namespace vk case driver_vendor::HONEYKRISP: // Needs more testing break; + case driver_vendor::PANVK: + // Needs more testing + break; default: rsx_log.warning("Unsupported device: %s", gpu_name); } diff --git a/rpcs3/Emu/RSX/VK/VKRenderTargets.h b/rpcs3/Emu/RSX/VK/VKRenderTargets.h index 4bee28227a4a..19c9f04f630b 100644 --- a/rpcs3/Emu/RSX/VK/VKRenderTargets.h +++ b/rpcs3/Emu/RSX/VK/VKRenderTargets.h @@ -190,6 +190,7 @@ namespace vk case driver_vendor::LAVAPIPE: case driver_vendor::V3DV: case driver_vendor::HONEYKRISP: + case driver_vendor::PANVK: break; } diff --git a/rpcs3/Emu/RSX/VK/vkutils/chip_class.h b/rpcs3/Emu/RSX/VK/vkutils/chip_class.h index 07b087d40372..a905b7cc07df 100644 --- a/rpcs3/Emu/RSX/VK/vkutils/chip_class.h +++ b/rpcs3/Emu/RSX/VK/vkutils/chip_class.h @@ -54,7 +54,8 @@ namespace vk LAVAPIPE, NVK, V3DV, - HONEYKRISP + HONEYKRISP, + PANVK }; driver_vendor get_driver_vendor(); diff --git a/rpcs3/Emu/RSX/VK/vkutils/device.cpp b/rpcs3/Emu/RSX/VK/vkutils/device.cpp index 25b2a57d62d9..ad80b3786fb3 100644 --- a/rpcs3/Emu/RSX/VK/vkutils/device.cpp +++ b/rpcs3/Emu/RSX/VK/vkutils/device.cpp @@ -302,6 +302,11 @@ namespace vk return driver_vendor::HONEYKRISP; } + if (gpu_name.find("Panfrost") != umax) + { + return driver_vendor::PANVK; + } + return driver_vendor::unknown; } else @@ -329,6 +334,8 @@ namespace vk return driver_vendor::V3DV; case VK_DRIVER_ID_MESA_HONEYKRISP: return driver_vendor::HONEYKRISP; + case VK_DRIVER_ID_MESA_PANVK: + return driver_vendor::PANVK; default: // Mobile? return driver_vendor::unknown;