将 Vulkan VkImage 用作 CUDA cuArray 的正确方法是什么?
我一直在尝试遵循一些示例,但是在调用 cuExternalMemoryGetMappedMipmappedArray()
以有序的方式提供信息。
我正在使用 CUDA 10.1
基本代码来自https://github.com/SaschaWillems/Vulkan,特别是我正在使用01 - Vulkan Gears演示,丰富了 saveScreenshot 方法09 - 捕获屏幕截图
我不会将快照图像保存到文件中,而是将快照图像作为 CUarray 发送到 CUDA 中。
我启用了以下实例和设备扩展:
std::vector<const char*> instanceExtensions = {
VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME };
std::vector<const char*> deviceExtensions = { VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME,
VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME,
VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME,
VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME };
Run Code Online (Sandbox Code Playgroud)
我有一个 VkImage,创建如下:
// Create the linear tiled destination image to copy to and to read the memory from
VkImageCreateInfo imageCreateCI(vks::initializers::imageCreateInfo());
imageCreateCI.imageType = VK_IMAGE_TYPE_2D;
// Note that vkCmdBlitImage (if …
Run Code Online (Sandbox Code Playgroud) 我差不多整整一天都在寻找如何做到这一点.
起初,我认为这可以通过......来完成
Right click the project name -> "Add files" -> choosing a .cpp file which contains the class you need and the corresponding header file
.
然后,.cpp文件和头文件与其原始文件夹一起出现.在此之后,我写#include"random.h"
了一个需要使用的项目random.h
及其功能.
但是,这会产生错误,表明这一点fatal error: random.h: No such file or directory
.编译器显然找不到该文件(即使我可以).
我添加了这张照片.
另外,我一直在寻找如何在没有文件夹的情况下添加.cpp和头文件.(例如,在上图中,您将看到random.cpp
内部Using_a_class_test
包含在一个名为的文件夹中Random
.令我遗憾的是,我还没有找到如何消除这样的文件夹.)
如果您提供任何见解,我将不胜感激.