HI, I am writing a vulkan compute lib to accelerate some code.
The code seems to work on several gpus, Intel embedded and arch 770 and NVidia starting for 1060.
I recently acquired an amd 7800 with the hope of getting better performance and also to be able to load much large model into gpu memory.
The result has been far, less than I expected, in some case the result fall behind and NVidia 1660 super, so I start checking the code for errors.
so far, the only thing I see in the log is this warning.
vulkan accelerator: AMD Radeon RX 7800 XT
Debug Report: Validation: Validation
Warning: [ WARNING-vkGetDeviceProcAddr-device ] | MessageID = 0x22b1fbac | vkGetDeviceProcAddr():
pName is trying to grab vkGetPhysicalDeviceCalibrateableTimeDomainsKHR which is an instance level function
the warning comes after executing this call bellow is executed
void ndBrainGpuContext::CreateLogicalDevice()
{
m_queue = VK_NULL_HANDLE;
m_device = VK_NULL_HANDLE;
const float queue_priority[] = { 1.0f };
VkDeviceQueueCreateInfo queue_info[1] = {};
queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queue_info[0].queueFamilyIndex = m_queueFamilyIndex;
queue_info[0].queueCount = 1;
queue_info[0].pQueuePriorities = queue_priority;
VkPhysicalDeviceFeatures deviceFeatures = {};
VkDeviceCreateInfo create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]);
create_info.pQueueCreateInfos = queue_info;
create_info.pEnabledFeatures = &deviceFeatures;
create_info.enabledLayerCount = 1;
create_info.ppEnabledLayerNames = &m_apiLayers[0];
//create_info.enabledExtensionCount = 1;
//create_info.ppEnabledExtensionNames = &m_apiExtensionLayers[0];
CheckResultVulkan(vkCreateDevice(m_physicalDevice, &create_info, m_allocator, &m_device));
vkGetDeviceQueue(m_device, m_queueFamilyIndex, 0, &m_queue);
}
not sure if this is part of the problem, but is a difference, nonetheless.
so, the question is what do I do to fix that?
most the vulkan initialization boilerplate code, it taken almost verbatim from tutorials endorced from Kronos books.