バルカン インスタンスを作成しようとしています。これが私のコードです:
vk::ApplicationInfo appInfo("Test", 1, nullptr, 0, 0);
vk::InstanceCreateInfo info;
info.pApplicationInfo(&appInfo);
vk::Instance instance;
const auto result = vk::createInstance(&info, nullptr, &instance);
std::cout << vkResultToString(result) << std::endl;
ただし、これは VK_ERROR_INCOMPATIBLE_DRIVER を返します。
独自のものを提供せずApplicationInfo
、代わりにデフォルトで構築されたものを使用すると、機能します。
仕様書にはこう ある
0 の場合
apiVersion
、実装はそれを無視する必要があります。それ以外の場合、実装が要求されたものをサポートしていない場合は、apiVersion
返さなければなりませんVK_ERROR_INCOMPATIBLE_DRIVER
ご覧のとおり、0に設定しました。私の理解では、エラーは発生apiVersion
しません。VK_ERROR_INCOMPATIBLE_DRIVER
これはバグですか、それとも何かを忘れているか、考えが間違っていますか?
編集:
仕様の html バージョンでは、無視に関する部分apiVersion
はありません。仕様の PDF バージョンは時代遅れですか?
編集:
apiVersion
1.0.3 に設定している場合も機能します。
std::bitset<32> apiVersion;
apiVersion.set(22);
apiVersion.set(1);
apiVersion.set(0);
vk::ApplicationInfo appInfo("Test", 1, nullptr, 0, apiVersion.to_ulong());