4

私は、NULL ハンドルで Destroy / Free を呼び出すことができるという印象を受けました。

2.5.1 有効な使用法

VK_NULL_HANDLE を任意の vkDestroy* または vkFree* コマンドに渡すことは有効であり、これらの値は黙って無視されます。

しかし、vkGetInstanceProcAddrvkGetDeviceProcAddrを使用して関数ポインターを取得するとどうなるでしょうか。私は次のことをしています:

Device::Device(Device&& other) :
    handle(other.handle),
    functions(other.functions)
{
    other.handle = VK_NULL_HANDLE;
}

もちろん、元のデバイスに対してデストラクタが呼び出されると、null ハンドルがデバイス固有のvkDestroyDeviceに渡されます。

現在、これにより読み取りアクセス違反が発生しています。これが AMD のせいなのか、LunarG のせいなのか、それとも私のせいなのかわかりません。

4

1 に答える 1