| 699 | } |
| 700 | |
| 701 | bool IsFamilyEmulated(DeviceDispatchTable *table, uint32_t familyIndex) { |
| 702 | // Special case |
| 703 | if (familyIndex == VK_QUEUE_FAMILY_IGNORED) { |
| 704 | return false; |
| 705 | } |
| 706 | |
| 707 | // Emulated if it's transfer without compute, graphics families implicitly support compute |
| 708 | // If neither of the trio, there's no commands to inject. |
| 709 | const VkQueueFamilyProperties& family = table->queueFamilyProperties[familyIndex]; |
| 710 | return (family.queueFlags & VK_QUEUE_TRANSFER_BIT) && !(family.queueFlags & VK_QUEUE_COMPUTE_BIT); |
| 711 | } |
| 712 | |
| 713 | uint32_t RedirectQueueFamily(DeviceDispatchTable *table, uint32_t familyIndex) { |
| 714 | // If emulated, use the exclusive compute queue |
no outgoing calls
no test coverage detected