(Kotlin Vulkan) vkEnumerateDeviceExtensionProperties 显示总共零个可用扩展
(Kotlin Vulkan) vkEnumerateDeviceExtensionProperties shows a total of zero available extensions
vkEnumerateDeviceExtensionProperties()
"returns" 调用时0.
我正在关注 Khronos Group 的 Vulkan 教程:https://vulkan-tutorial.com/
我知道函数的实际return
值是错误代码。我说的是第 3 个 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++,但现在我真的很高兴科特林
好吧,原来我拿错了设备。我不知道是哪一个,但现在的方法 returns 78 哪个好(我猜?)。遍历可能的物理设备会有所帮助!
vkEnumerateDeviceExtensionProperties()
"returns" 调用时0.
我正在关注 Khronos Group 的 Vulkan 教程:https://vulkan-tutorial.com/
我知道函数的实际return
值是错误代码。我说的是第 3 个 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++,但现在我真的很高兴科特林
好吧,原来我拿错了设备。我不知道是哪一个,但现在的方法 returns 78 哪个好(我猜?)。遍历可能的物理设备会有所帮助!