2017-09-18 28 views
-2

我是一個團隊的一部分,工作在具有vulkan渲染系統的3D遊戲引擎上。到目前爲止,我們一直在測試NVIDIA顯卡,比如GTX 970,並且表現不俗。 但最近我們測試的AMD卡上的場景,並獲得真正的低幀率:Vulkan:在AMD卡上可能會導致非常差的幀數,但在NVIDIA卡上可以正常使用fps

例如,渲染史邦札場景:
AMD R9怒:5 fps的
NVIDIA的GeForce GTX 970:64 FPS

NVIDIA的fps不是很好,但比AMD更好。

你們有什麼想法可以導致這種AMD卡上的fps差異?
或者你知道我該怎麼去隔離造成AMD卡上低fps的原因?

在此先感謝您的幫助。

+1

您希望我們能爲您解決水晶球問題嗎?嘗試將問題簡化爲差異仍然可見的小例子。 –

+0

這種行爲在不同的操作系統之間是否一致? (例如:Windows和Linux)如果你不能在另一個操作系統上重現它,它可能只是一個糟糕的驅動程序 – KABoissonneault

+0

你是否在每幀使用了許多獨特的綁定'vkDeviceMemory'值?例如。你有100個紋理都有自己的'vkAllocateMemory'調用? – MuertoExcobito

回答

1

當每次提交訪問多個vkDeviceMemory值時,AMD驅動程序出現問題。在沒有WDDM 2.0的Windows 7/8上,這尤其是一個問題。實際上,如果您在Window 7上使用太多(〜1000),則很容易重現BSOD。 Nvidia司機似乎正在幕後做一些事情,而且不受這些限制。但是,因此,他們的驅動程序實施可能會隱藏用戶優化的一些機會。

無論如何,建議集中您的內存分配,以便VkImageVkBuffers從相同的分段vkDeviceMemory分配。有一個開源庫,稱爲Vulkan Memory Allocater,它試圖幫助實現這種行爲(並且它是由AMD懷疑編寫的!)。

+0

非常感謝您的回答。我會研究這個。 – 0xfeedbacc

相關問題