【问题标题】:(Kotlin Vulkan) vkEnumerateDeviceExtensionProperties shows a total of zero available extensions(Kotlin Vulkan) vkEnumerateDeviceExtensionProperties 显示总共零个可用扩展
【发布时间】:2020-01-15 05:05:11
【问题描述】:

vkEnumerateDeviceExtensionProperties() 调用时“返回”0。

我正在关注 Khronos Group 的 Vulkan 教程:https://vulkan-tutorial.com/

我知道函数的实际return 值是错误代码。我说的是第三个parameter,在这种情况下是正在写入的IntBuffer。 IntBuffer 总是返回为 0。此外,到目前为止我所做的一切都有效,包括实例创建、验证层、表面创建和创建逻辑设备(实际上是在这部分代码之后,但它在我之前工作实现了这个)。 代码如下:

private fun checkDeviceExtensionSupport(device: VkPhysicalDevice): Boolean {

    val pExtensionCount = memAllocInt(1)
    vkEnumerateDeviceExtensionProperties(device,null.toString(),pExtensionCount,null)

    val availableExtensions = VkExtensionProperties.mallocStack(pExtensionCount.get(0))
    vkEnumerateDeviceExtensionProperties(device,null.toString(),pExtensionCount,availableExtensions)

    println("ExtensionCount: ${pExtensionCount.get()}") //this is 0
    println("Available extensions: ${availableExtensions.get(0)}") //which results in an out of bounds here

    memFree(pExtensionCount)
    availableExtensions.free()
    return true
}

我注意到其他人一开始甚至都不调用此方法。有必要吗?我相当确定您必须稍后在逻辑设备创建信息中指定设备扩展名。难道只是我的物理设备不支持任何扩展?不过对我来说听起来有点奇怪。

是的,我知道 Kotlin 可能不是编程引擎和游戏的最佳选择,如果我被困在这里,我愿意回到 C++,但现在我实际上对 Kotlin 很满意。

【问题讨论】:

  • val pExtensionCount = memAllocInt(1) vkEnumerateDeviceExtensionProperties(device,null.toString(),pExtensionCount,null) 应该是这样的吗?我想你忘了换行和缩进。
  • 您也可以在该设备上运行 VkPhysicalDeviceProperties 吗?它可能不是您认为的设备。您可以尝试将null 放入null.toString() 吗?它可能找不到扩展名,因为它认为您正在尝试命名图层。
  • 哦,这些行实际上应该是分开的。我想我只是格式错误。 null.toString() 是必要的,因为否则将有 2 种可能的方法可以被调用。一个想要一个 ByteBuffer,另一个想要一个 CharSequence。我将尝试获取设备属性!好主意!
  • 好吧,事实证明我实际上弄错了设备。我不知道是哪一个,但该方法现在返回 78,这很好(我猜?)。非常感谢!你在这里做上帝的工作。
  • 您可能应该对此做出自我回答,我会赞成它,它会帮助其他人。评论是临时的。

标签: java kotlin vulkan


【解决方案1】:

好吧,事实证明我实际上拿错了设备。我不知道是哪一个,但该方法现在返回 78,这很好(我猜?)。遍历可能的物理设备会有所帮助!

【讨论】:

    猜你喜欢
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多