在Vulkan中没有Surface可以进行屏幕外渲染吗?

时间:2016-08-10 23:55:14

标签: vulkan

与OpenGL中的无表面上下文类似,我们可以在Vulkan中进行。

2 个答案:

答案 0 :(得分:4)

当然,它的设计从一开始就是这样做的。

不是从交换链中获取图像,而是自己创建它们并为其分配和绑定内存。

获取结果将需要在渲染后将副本复制到主机可见的回读缓冲区中。

答案 1 :(得分:0)

SaschaWillems / Vulkan plot_acf(germany) plot_pacf(germany) plot_pacf(spain) plot_pacf(spain) plot_pacf(italy) plot_pacf(italy) plot_pacf(us) plot_pacf(us) 示例

Vulkan似乎比OpenGL更好地支持屏幕外渲染。

此NVIDIA概述中提到了这一点:https://developer.nvidia.com/transitioning-opengl-vulkan

这是一个可运行的示例,我刚刚设法在本地运行:https://github.com/SaschaWillems/Vulkan/tree/b9f0ac91d2adccc3055a904d3a8f6553b10ff6cd/examples/renderheadless/renderheadless.cpp

安装驱动程序和ensuring that the GPU is working后,我可以执行以下操作:

renderheadless.cpp

并立即生成图像git clone https://github.com/SaschaWillems/Vulkan cd Vulkan b9f0ac91d2adccc3055a904d3a8f6553b10ff6cd python download_assets.py mkdir build cd build cmake .. make -j`nproc` cd bin ./renderheadless ,而无需打开任何窗口:

enter image description here

我还设法在Ubuntu Ctrl + Alt + F3 non-graphical TTY上运行了该程序,这进一步表明它确实不需要屏幕。

其他可能感兴趣的示例:

相关:How to use GLUT/OpenGL to render to a file?

已经在Ubuntu 20.04,NVIDIA驱动程序435.21,NVIDIA Quadro M1200 GPU上进行了测试。