mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-29 22:20:48 +00:00
vk: Add basic support for honeykrisp driver
This commit is contained in:
parent
a196bbcbcd
commit
b44e2d3b30
@ -96,6 +96,7 @@ namespace vk
|
|||||||
optimal_group_size = 64;
|
optimal_group_size = 64;
|
||||||
break;
|
break;
|
||||||
case vk::driver_vendor::MVK:
|
case vk::driver_vendor::MVK:
|
||||||
|
case vk::driver_vendor::HONEYKRISP:
|
||||||
unroll_loops = true;
|
unroll_loops = true;
|
||||||
optimal_kernel_size = 1;
|
optimal_kernel_size = 1;
|
||||||
optimal_group_size = 256;
|
optimal_group_size = 256;
|
||||||
|
@ -139,6 +139,9 @@ namespace vk
|
|||||||
rsx_log.error("Dozen is currently unsupported. How did you even get this to run outside windows?");
|
rsx_log.error("Dozen is currently unsupported. How did you even get this to run outside windows?");
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
case driver_vendor::HONEYKRISP:
|
||||||
|
// Needs more testing
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
rsx_log.warning("Unsupported device: %s", gpu_name);
|
rsx_log.warning("Unsupported device: %s", gpu_name);
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,11 @@ namespace vk
|
|||||||
|
|
||||||
if (vendor_id == 0x106B)
|
if (vendor_id == 0x106B)
|
||||||
{
|
{
|
||||||
return chip_class::MVK_apple;
|
#ifdef __APPLE__
|
||||||
|
return chip_class::APPLE_MVK;
|
||||||
|
#else
|
||||||
|
return chip_class::APPLE_HK_generic; // Lazy, but at the moment we don't care about the differences in M1, M2, M3, M4, etc
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vendor_id == 0x8086)
|
if (vendor_id == 0x8086)
|
||||||
|
@ -31,7 +31,9 @@ namespace vk
|
|||||||
_NV_ENUM_MAX_, // Do not insert NV enums beyond this point
|
_NV_ENUM_MAX_, // Do not insert NV enums beyond this point
|
||||||
|
|
||||||
// APPLE
|
// APPLE
|
||||||
MVK_apple,
|
APPLE_HK_generic,
|
||||||
|
APPLE_MVK,
|
||||||
|
_APPLE_ENUM_MAX, // Do not insert APPLE enums beyond this point
|
||||||
|
|
||||||
// INTEL
|
// INTEL
|
||||||
INTEL_generic,
|
INTEL_generic,
|
||||||
@ -51,7 +53,8 @@ namespace vk
|
|||||||
DOZEN,
|
DOZEN,
|
||||||
LAVAPIPE,
|
LAVAPIPE,
|
||||||
NVK,
|
NVK,
|
||||||
V3DV
|
V3DV,
|
||||||
|
HONEYKRISP
|
||||||
};
|
};
|
||||||
|
|
||||||
driver_vendor get_driver_vendor();
|
driver_vendor get_driver_vendor();
|
||||||
|
@ -297,6 +297,11 @@ namespace vk
|
|||||||
return driver_vendor::V3DV;
|
return driver_vendor::V3DV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gpu_name.find("Apple") != umax)
|
||||||
|
{
|
||||||
|
return driver_vendor::HONEYKRISP;
|
||||||
|
}
|
||||||
|
|
||||||
return driver_vendor::unknown;
|
return driver_vendor::unknown;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -322,6 +327,8 @@ namespace vk
|
|||||||
return driver_vendor::NVK;
|
return driver_vendor::NVK;
|
||||||
case VK_DRIVER_ID_MESA_V3DV:
|
case VK_DRIVER_ID_MESA_V3DV:
|
||||||
return driver_vendor::V3DV;
|
return driver_vendor::V3DV;
|
||||||
|
case VK_DRIVER_ID_MESA_HONEYKRISP:
|
||||||
|
return driver_vendor::HONEYKRISP;
|
||||||
default:
|
default:
|
||||||
// Mobile?
|
// Mobile?
|
||||||
return driver_vendor::unknown;
|
return driver_vendor::unknown;
|
||||||
|
@ -9,17 +9,19 @@ namespace vk
|
|||||||
{
|
{
|
||||||
VkQueryPool m_query_pool;
|
VkQueryPool m_query_pool;
|
||||||
VkDevice m_device;
|
VkDevice m_device;
|
||||||
|
u32 m_size;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
query_pool(VkDevice dev, VkQueryType type, u32 size)
|
query_pool(VkDevice dev, VkQueryType type, u32 size)
|
||||||
: m_query_pool(VK_NULL_HANDLE)
|
: m_query_pool(VK_NULL_HANDLE)
|
||||||
, m_device(dev)
|
, m_device(dev)
|
||||||
|
, m_size(size)
|
||||||
{
|
{
|
||||||
VkQueryPoolCreateInfo info{};
|
VkQueryPoolCreateInfo info{};
|
||||||
info.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
|
info.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
|
||||||
info.queryType = type;
|
info.queryType = type;
|
||||||
info.queryCount = size;
|
info.queryCount = size;
|
||||||
vkCreateQueryPool(dev, &info, nullptr, &m_query_pool);
|
CHECK_RESULT(vkCreateQueryPool(dev, &info, nullptr, &m_query_pool));
|
||||||
|
|
||||||
// Take 'size' references on this object
|
// Take 'size' references on this object
|
||||||
ref_count.release(static_cast<s32>(size));
|
ref_count.release(static_cast<s32>(size));
|
||||||
@ -34,5 +36,10 @@ namespace vk
|
|||||||
{
|
{
|
||||||
return m_query_pool;
|
return m_query_pool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline u32 size() const
|
||||||
|
{
|
||||||
|
return m_size;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user