`vkgetmemorywin32handlekhr` пытается обозначить нулевой адресC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 `vkgetmemorywin32handlekhr` пытается обозначить нулевой адрес

Сообщение Anonymous »

Я пытаюсь создать общую текстуру между Вулканом и OpenGL, и, как я понимаю процесс, она разделена на две части: экспорт памяти во время распределения, а затем получение ручки Windows для дублирования и проходит к другому процессу.

Код: Выделить всё

    auto vulkanImage = ...;
auto memoryRequirements = device.getImageMemoryRequirements(vulkanImage);
vk::ExportMemoryAllocateInfo exportInfo{
.handleTypes = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueWin32
};
vulkanImageMemory = device.allocateMemory({
.pNext = &exportInfo,
.allocationSize = memoryRequirements.size,
.memoryTypeIndex = findMemoryType(physicalDevice, memoryRequirements.memoryTypeBits, vk::MemoryPropertyFlagBits::eDeviceLocal),
});
device.bindImageMemory(vulkanImage, vulkanImageMemory, 0);
< /code>
Попытка получить ручку, однако не удалось с нарушением доступа, пытаясь обогнать нулевой указатель: < /p>
auto hTextureMem = (HANDLE)device.getMemoryWin32HandleKHR({
.memory = vulkanImageMemory,
.handleType = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueWin32
});
Примечания отладки:

[*] Внутренний vkgetmemorywin32handlekhr Указатель, что Device.getMemorywin32handlekhr вызовы указывают на действительную память, которая не является источником нарушения доступа. На самом деле нарушение происходит внутри этой функции в соответствии с кадром стека.
[*] В vkgetmemorywin32handlekhr info call struct rate rul, но, насколько я могу сказать, как это должно быть (?), Только pnext Информация о распределении памяти нуждается в фактическом объекте (согласно моему коду выше)
Тип HARDE, который выглядный тип HARDEDSED (HOWER WIN WIN WIN). /> Предположим, что последние драйверы NVIDIA и 5070 TI на Win11, а также новейшие Vulkan SDK, так что речь идет не о пропущенных расширениях или функциональности. Я, должно быть, где -то делаю что -то не так. Я не верю, что что -то еще актуально, но вы никогда не знаете.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ll-address
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»