0
私はogldev's vulkan tutorialsを実行しています。この問題は、特にvkGetPhysicalDeviceSurfaceFormatsKHRという関数で実行されています。ドキュメンテーションによると、pSurfaceFormats引数がNULLの場合、pSurfaceFormatCountポインタで実際に使用できるサーフェスフォーマットの数がわかります。Vulkan:vkGetPhysicalDeviceSurfaceFormatsKHRフォーマットがありません?
ここに私の問題が入ります。整数ポインタには全く触れません。
uint NumFormats = 0;
res = vkGetPhysicalDeviceSurfaceFormatsKHR(PhysDev, Surface, &NumFormats, NULL);
if(res != VK_SUCCESS) {
LIFE_ERROR("vkGetPhysicalDeviceSurfaceFormatsKHR error: %d\n", res);
assert(0);
}
assert(NumFormats > 0);
(アサート(NumFormats> 0)が失敗した)私は、NVIDIAドライバでLinuxを実行している、と私は私の出力がこれですので、VULKAN APIは、正しく私のGPUを見ることができることをかなり確信している:
Found 6 extensions
Instance extension 0 - VK_KHR_surface
Instance extension 1 - VK_KHR_xcb_surface
Instance extension 2 - VK_KHR_xlib_surface
Instance extension 3 - VK_KHR_wayland_surface
Instance extension 4 - VK_EXT_debug_report
Instance extension 5 - VK_NV_external_memory_capabilities
Surface created
Num physical devices 1
Device name: GTX 980 Ti
API version: 1.0.24
Num of family queues: 2
....(assert failes)
コードが正しいと思われるので、サーフェスに問題があると思われます。どのプラットフォームのサーフェスエクステンション(xcb、xlib、wayland)を使用していますか?そのエクステンションを有効にしましたか?ネイティブウィンドウとサーフェスの作成が成功しましたか?検証レイヤが有効になっていますか? –
@JesseHall私はxcbとbase vulkanを使っているだけなので、検証レイヤはありません。 – Sillydan