vk: Workaround for amdgpu kernel driver

This commit is contained in:
kd-11 2021-01-16 14:48:42 +03:00 committed by kd-11
parent f7fdfe52bc
commit e56da4eb46

View file

@ -281,12 +281,17 @@ namespace vk
void create_dma_block(std::unique_ptr<dma_block>& block) void create_dma_block(std::unique_ptr<dma_block>& block)
{ {
#ifdef _WIN32 #ifdef _WIN32
if (g_render_device->get_external_memory_host_support()) const bool allow_host_buffers = true;
#else
// Anything running on AMDGPU kernel driver will not work due to the check for fd-backed memory allocations
const auto vendor = g_render_device->gpu().get_driver_vendor();
const bool allow_host_buffers = (vendor != driver_vendor::AMD && vendor != driver_vendor::RADV);
#endif
if (g_render_device->get_external_memory_host_support() && allow_host_buffers)
{ {
block.reset(new dma_block_EXT()); block.reset(new dma_block_EXT());
} }
else else
#endif
{ {
block.reset(new dma_block()); block.reset(new dma_block());
} }