Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

let me preface this with I've only tested this on my card (AMD r9 380).

vkGetPhysicalDeviceQueueFamilyProperties() finds 3 QueueFamilies. One containing all the normal bits (graphics, compute, transfer), one missing graphics, and one missing compute and graphics. I've taken it as the one missing Graphics is the Compute queue family, and the one missing compute and graphics is the Transfer queue family.

vkGetDeviceQueue(instance, computeFamily, 0, &pComputeQueue); instance being VkInstance, computeFamily being a uint32_t index value, 0 being the index of the queue requested, and pComputeQueue is a VkQueue. Attempting to run this function with this parameters generates Vulkan01.exe: 0xC0000005: Access violation writing location 0x0000000000000000.

vkGetDeviceQueue() returns just fine for Graphics, Presentation (which returns the same as graphics on my implementation, as expected), and transfer.

So the question is: Why would I get an error trying to return a handle to one of my listed Queue Families? Is it likely just my card? (some of the Sascha Williams examples won't run on my computer either, so I theorize that perhaps my card is just too old for some features?)

And I'm dumb. I forgot to include a reference to that family index when building the array of VkDeviceQueueCreateInfo. Thx FrozenFirebat Jan 1, 2019 at 22:36

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question . Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers .