Code: Select all
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>
Der Versuch, den Griff zu erhaltenauto hTextureMem = (HANDLE)device.getMemoryWin32HandleKHR({
.memory = vulkanImageMemory,
.handleType = vk::ExternalMemoryHandleTypeFlagBits::eOpaqueWin32
});
[*] Das interne vkgetMemoryWin32Handlekhr Zeiger, dass Device Tatsächlich erfolgt der Verstoß in dieser Funktion gemäß dem Stapelrahmen.
[*]
Code: Select all
pNext
^ Die Grifftyp. /> Nehmen Sie die neuesten NVIDIA -Treiber und ein 5070 TI auf Win11 sowie den neuesten Vulkan SDK an. Daher geht es nicht darum, Erweiterungen oder Funktionen zu fehlen. Ich muss irgendwo etwas falsch machen. Ich glaube nicht, dass etwas anderes relevant ist, aber Sie wissen es nie.>