2016-11-29 10 views
0

VkInstanceを作成してVulkanを開始しようとしていますが、すでに文書化されていないエラーが発生しています。これは私がこれまで持っていたすべてのコードです:Vulkanインスタンスを作成するVK_OUT_OF_HOST_MEMORY

VkApplicationInfo applicationInfo = {}; 
applicationInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; 
applicationInfo.pNext = NULL; 
applicationInfo.pApplicationName = "<game>"; 
applicationInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0); 
applicationInfo.pEngineName = "<engine>"; 
applicationInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0); 
applicationInfo.apiVersion = VK_API_VERSION_1_0; 

// setup the instance info 
VkInstanceCreateInfo instanceInfo = {}; 
instanceInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; 
instanceInfo.pNext = NULL; 
instanceInfo.flags = 0; 
instanceInfo.pApplicationInfo = &applicationInfo; 
instanceInfo.enabledLayerCount = 0; 
instanceInfo.ppEnabledExtensionNames = NULL; 
instanceInfo.enabledExtensionCount = 0; 
instanceInfo.ppEnabledLayerNames = NULL; 

// create the vk instance which is used to do stuff in vulkan 
VkInstance instance; 
VkResult result = vkCreateInstance(&instanceInfo, NULL, &instance); 

これ以降の結果はVK_OUT_OF_HOST_MEMORYです。 vkCreateInstanceがこれを返すかもしれないということです。スーパーヘルプ-_-。私はここで何が欠けていますか?

+0

"*すべてのドキュメントには、vkCreateInstanceが返す可能性があることが記載されています。*"ドキュメントがそれについて語っていると...どうして "ドキュメント化されていません"? –

+0

動作は文書化されていません。私が今まで働いてきたすべての仕事には、アウトプットの列挙と、アウトプットをもたらすインプットと状態が必要です。その振る舞いを文書化することなく、すべての出力に対してNULLを返すこともあります。 – FatalCatharsis

+1

"*' VK_ERROR_OUT_OF_HOST_MEMORY'ホストメモリの割り当てに失敗しました。* "これはドキュメントのものです。それはそれが言うことのすべてです、そして、それはすべてそれが*必要と言うことです。そして、率直に言って、それがすべてです。ホストがメモリを割り当てることができなかった理由を正確に知る方法がないからです。たぶんそれはあなたのシステムの中にあるかもしれませんが、非常に多くのシステムがあるので、考えられるすべての原因を列挙することはできません。クロスプラットフォームの低レベルプログラミングを扱う場合、エラーがまったく回復できない場合があります。 –

答えて

1

インストールが正しいことを確認してください。開発には、VulkanとLunarGのVulkan SDKをサポートするグラフィックドライバが必要です。

まず、インストールを確認し、デモプログラム(vulkaninfoおよびcube)を実行します。いずれかが動作しない場合は、カード/ドライバがVulkanを使用できない可能性があります。

最後に、あなたのアプリはvulkan-1ライブラリとリンクする必要があります。 vkCreateInstanceは、SDK(Vulkanランタイム)からローダーによって処理されるため、通常、使用可能な互換ドライバがない場合を除き、失敗する理由はありません。

関連する問題