【问题标题】:My mac reports 4 Vulkan queue families but reference says it has 1我的 mac 报告了 4 个 Vulkan 队列系列,但参考资料说它有 1 个
【发布时间】:2019-07-22 09:20:08
【问题描述】:

我的家用电脑是 2012 年末的 Mac Mini,它配备第三代 Intel IvyBridge 处理器(出于某种原因只有 Apple 知道的移动型号)。

来自 LunarG SDK 的“vulkaninfo.app”报告集成 GPU 上有 4 个队列系列,但 public information 显示它应该只有 1 个。发生了什么?


VkQueueFamilyProperties[0]:
===========================
    queueFlags         = GRAPHICS | COMPUTE | TRANSFER
    queueCount         = 1
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)
    present support    = true

VkQueueFamilyProperties[1]:
===========================
    queueFlags         = GRAPHICS | COMPUTE | TRANSFER
    queueCount         = 1
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)
    present support    = true

VkQueueFamilyProperties[2]:
===========================
    queueFlags         = GRAPHICS | COMPUTE | TRANSFER
    queueCount         = 1
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)
    present support    = true

VkQueueFamilyProperties[3]:
===========================
    queueFlags         = GRAPHICS | COMPUTE | TRANSFER
    queueCount         = 1
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)
    present support    = true

【问题讨论】:

  • 也许驱动程序实现改变了?你检查了吗?
  • @FelixK。我做了一点检查。 SDK 版本 1.1.108 报告 4 个队列族,每个队列 1 个,1.0.69 报告 1 个队列族,每个队列 16 个。后者我怀疑是旧的 MoltonVK 驱动程序错误地报告了计算单元的数量,它同步并行执行,与异步执行的队列不同。

标签: macos vulkan moltenvk


【解决方案1】:

在 macOS 中,Metal 设备中没有队列计数或队列系列计数(截至 2019 年 7 月),因此可以创建 1 个或任意数量的队列并充分利用设备。

然而,正如GitHub issue 中所述,一些具有硬连线假设的程序在只有 1 个队列系列时会崩溃,因此他们让 MoltenVK 报告 4 个队列系列来修复它(请参阅 pull request 450)。

【讨论】:

  • 那么,为了修复其他人损坏的应用程序,MoltenVK 撒谎?
  • @NicolBolas 基本上是的。
  • 这些应用程序如何在 Intel 实现中工作,它们统一公开恰好 1 个队列系列和恰好 1 个队列?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 2019-11-13
  • 2019-03-05
  • 2016-02-14
  • 2021-04-15
相关资源
最近更新 更多