From 15e5e4487ef80d3af262809570f5fafac4868e47 Mon Sep 17 00:00:00 2001 From: Samuliak Date: Sun, 26 Jan 2025 13:16:06 +0100 Subject: [PATCH] determine GPU vendor --- src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp b/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp index f2a42d23..329e7ee3 100644 --- a/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp +++ b/src/Cafe/HW/Latte/Renderer/Metal/MetalRenderer.cpp @@ -148,6 +148,19 @@ MetalRenderer::MetalRenderer() m_device = MTL::CreateSystemDefaultDevice(); } + // Vendor + const char* deviceName = m_device->name()->utf8String(); + if (memcmp(deviceName, "Apple", 5) == 0) + m_vendor = GfxVendor::Apple; + else if (memcmp(deviceName, "AMD", 3) == 0) + m_vendor = GfxVendor::AMD; + else if (memcmp(deviceName, "Intel", 5) == 0) + m_vendor = GfxVendor::Intel; + else if (memcmp(deviceName, "NVIDIA", 6) == 0) + m_vendor = GfxVendor::Nvidia; + else + m_vendor = GfxVendor::Generic; + // Feature support m_isAppleGPU = m_device->supportsFamily(MTL::GPUFamilyApple1); m_supportsFramebufferFetch = GetConfig().framebuffer_fetch.GetValue() ? m_device->supportsFamily(MTL::GPUFamilyApple2) : false;