jjzjj

Vulkan-LoaderAndValidationLayers

全部标签

c++ - Vulkan 中命令缓冲区之间的同步

在Vulkan中有多种处理同步的方法。我是这样理解的:Fences是GPU到CPU的同步。信号量是GPU到GPU的同步,它们用于同步队列提交(在相同或不同的队列中)。事件更通用,可在CPU和GPU上进行重置和检查。屏障用于命令缓冲区内的同步。就我而言,我有两个命令缓冲区。我希望第二个命令缓冲区在第一个命令缓冲区之后执行。submitInfo.pCommandBuffers=&firstCommandBuffer;vkQueueSubmit(queue,1,&submitInfo,VK_NULL_HANDLE);//waitforfirstcommandbuffertofinishsub

c++ - Vulkan 中命令缓冲区之间的同步

在Vulkan中有多种处理同步的方法。我是这样理解的:Fences是GPU到CPU的同步。信号量是GPU到GPU的同步,它们用于同步队列提交(在相同或不同的队列中)。事件更通用,可在CPU和GPU上进行重置和检查。屏障用于命令缓冲区内的同步。就我而言,我有两个命令缓冲区。我希望第二个命令缓冲区在第一个命令缓冲区之后执行。submitInfo.pCommandBuffers=&firstCommandBuffer;vkQueueSubmit(queue,1,&submitInfo,VK_NULL_HANDLE);//waitforfirstcommandbuffertofinishsub

在 Windows 系统上配置 Visual Studio 的 Vulkan 开发环境

在Windows系统上配置VisualStudio的Vulkan开发环境VulkanTutorialhttps://vulkan-tutorial.com/Developmentenvironment-Windowshttps://vulkan-tutorial.com/Development_environment1Vulkan-Crossplatform3DGraphicshttps://www.vulkan.org/VulkanisanewgenerationgraphicsandcomputeAPIthatprovideshigh-efficiency,cross-platformac

c++ - 在 Vulkan 中启用垂直同步

如何在Vulkan中使用垂直同步?我在Windows上,但代码也应该在Linux上运行。是不是通过在vkAcquireNextImageKHR中插入栅栏实现的? 最佳答案 尽管您可能意识到通过使用栅栏,正确的方法是使用等待垂直空白的演示模式,如VK_PRESENT_MODE_FIFO_KHR。Intel有一篇很棒的文章详细介绍了Vulkan的不同呈现模式overhere请注意,此模式可能并非在所有设备上都可用,并且即使您选择了相应的演示模式,某些驱动程序也可能会忽略垂直同步。因此,如果您使用其中一种模式并且没有获得垂直同步,您可能需

android - 如何将 Android MediaCodec Surface 连接到 Vulkan

我对使用AndroidMediaCodec进行解码以及通过Surface将YUV馈送到OpenGL纹理有很好的理解。我想用Vulkan做一些类似的事情。但是,我没有成功找到任何文档或示例代码。我的问题是:如何连接以下管道?MediaCodecVideoDecoder⇨Surface⇨texture⇨Vulkan详情视频解码器使用MediaCodec#configure配置Surface是一个AndroidSurface(linktoAPI,linktoarch.)OpenGL比较为了比较,在OpenGL的情况下,AndroidSurface是这样构造和使用的textureId=glGe

c++ - Vulkan:在多个命令缓冲区中排序图像内存屏障

对于资源转换,您需要知道资源的“之前”和“之后”VkImageLayout(例如,在VkImageMemoryBarrier中传递给vkCmdPipelineBarrier)。Vulkan不保证命令缓冲区的任何执行顺序,除非在API文档中明确说明(来自this答案)。然而,vkCmdPipelineBarrier确实明确表示它在命令缓冲区中的命令之间、调用之前和之后创建了依赖关系。因此,当图像在单个命令缓冲区中转换时,可以随时“了解”图像的布局。但是,vkQueueSumbit不强制命令缓冲区的执行顺序。如果有两个命令缓冲区,每个缓冲区都有vkCmdPipelineBarrier调用将

c++ - Vulkan:vkGetInstanceProcAddress 和 vkGetDeviceProcAddress 之间的区别

vkGetInstanceProcAddr和vkGetDeviceProcAddr在APIdocumentation中完全缺失.然而,他们需要使用交换链执行命令(从而制作任何有意义的Vulkan应用程序)。此外,SDK附带的cube/tri演示使用它们非常不一致。这两种方法可以互换吗?如果不能,有什么区别? 最佳答案 vkGetInstanceProcAddress是获取函数指针,该函数指针将始终与从传入的实例创建的任何设备一起工作。但是,返回的函数可能包含调度逻辑(通常用于说明可能会或可能不会为设备启用的扩展),这可能会减慢调用速

c++ - Vulkan:管道衍生品的创造和 yield

在Vulkan中,您可以使用vkCreateGraphicsPipeline或vkCreateComputePipeline创建pipelinederivates,与VkGraphicsPipelineCreateInfo/VkComputePipelineCreateInfo的basePipelineHandle或basePipelineIndex成员。文档指出此功能出于性能原因可用:Thegoalofderivativepipelinesisthattheybecheapertocreateusingtheparentasastartingpoint,andthatitbemore

Godot Engine 4.0横空出世,Vulkan大怪兽加持,画质提升简直亮瞎眼

【CSDN编者按】经历了漫长的等待,万众瞩目的GodotEngine4.0正式版在其3.0版本发布5年以后,终于带着海量令人兴奋的新功能横空出世!整理|开发游戏的老王责编|王子彧出品|CSDN(ID:CSDNnews)什么是GodotEngine?它是一款完全免费的轻量级、开源、跨平台、2D/3D游戏引擎。GodotEngine最初由它的创始人阿根廷资深游戏开发者JuanLinietsky在2014年开源,历经近十年的打磨,在其2.0、3.0版本问世以后逐渐广为人知,近几年GodotEngine更是成为了游戏开发界的“网红”产品,在国内外技术媒体的游戏引擎评测专题中,Godot经常成为Unre

Godot Engine 4.0横空出世,Vulkan大怪兽加持,画质提升简直亮瞎眼

【CSDN编者按】经历了漫长的等待,万众瞩目的GodotEngine4.0正式版在其3.0版本发布5年以后,终于带着海量令人兴奋的新功能横空出世!整理|开发游戏的老王责编|王子彧出品|CSDN(ID:CSDNnews)什么是GodotEngine?它是一款完全免费的轻量级、开源、跨平台、2D/3D游戏引擎。GodotEngine最初由它的创始人阿根廷资深游戏开发者JuanLinietsky在2014年开源,历经近十年的打磨,在其2.0、3.0版本问世以后逐渐广为人知,近几年GodotEngine更是成为了游戏开发界的“网红”产品,在国内外技术媒体的游戏引擎评测专题中,Godot经常成为Unre