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

2024-04-08

对于资源转换,您需要了解“之前”和“之后”VkImageLayout资源的(例如,在VkImageMemoryBarrier传递给vkCmdPipelineBarrier)。 Vulkan 不保证命令缓冲区执行的任何顺序,除非 API 文档中明确说明(来自this https://stackoverflow.com/a/35919918/3493731回答)。然而,vkCmdPipelineBarrier https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkCmdPipelineBarrier.html确实明确表示它在调用之前和之后在命令缓冲区中的命令之间创建了依赖关系。因此,当图像在单个命令缓冲区内转换时,可以随时“了解”图像的布局。

然而,vkQueueSumbit不强制命令缓冲区的执行顺序。如果有两个命令缓冲区,每个缓冲区都有vkCmdPipelineBarrier调用将同一图像转换为不同的布局,这两个操作之间是否存在依赖关系,或者在这种情况下是否需要显式同步?


第 2.2.1 节说:

命令缓冲区边界,无论是在相同或不同批次或提交的主命令缓冲区之间,还是在主命令缓冲区和辅助命令缓冲区之间,都不会引入任何隐式排序约束。换句话说,在任何信号量或栅栏操作之间提交命令缓冲区集(可以包括执行辅助命令缓冲区)会回放记录的命令,就好像它们已全部记录到单个主命令缓冲区中一样,除了当前状态是在每个边界上重置。

在第 6.4 节中,它指出用于同步的命令对包括:

第一组:管道屏障之前的命令。

第二组:同一队列中管道屏障之后的命令(可能仅限于同一子通道内)。

请注意,它说“在同一队列中”,而不是“在同一命令缓冲区中”。

这两个语句都清楚地表明管道屏障会影响队列的命令执行。执行依赖性不限于单个命令缓冲区的命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vulkan:在多个命令缓冲区中排序图像内存屏障 的相关文章

随机推荐

  • AWS Redis 从外部连接

    有没有办法从外部 AWS 网络连接 AWS 上托管的 Redis 实例 我有一个基于 Windows 的 EC2 实例在 AWS 上运行 另一个是 Redis 缓存节点 我知道有人问过这个问题 但答案是在基于 Linux 的系统中 但我的是
  • 在 PL/SQL 存储过程中拆分逗号分隔的字符串

    我有 CSV 字符串 100 01 200 02 300 03 我需要将其传递给 Oracle 中的 PL SQL 存储过程 在过程中 我需要将这些值插入表中的数字列中 为此 我从这里得到了一个工作方法 如何在 oracle 9i 中最好地
  • PHP MYSQL - 根据行号是否匹配行号填充 HTML 表编号行

    所以 基本上我正在尝试制作数据中心驾驶室图 我们有一个 Excel 电子表格 但它不容易更新 也不容易搜索 我的 MySQL 数据库中有三个表 数据库是 机架 表格是 机柜 设备和数据中心 每个表格中的每一行代表它是什么 机柜表有一列指定其
  • 如何中断无限循环

    虽然我知道这样问有点傻 但我仍然想更多地了解它的技术角度 无限循环的一个简单示例 public class LoopInfinite public static void main String args for System out pr
  • 使用 Iframe 的自定义用户代理

    是的 我已经读过使用不同的用户代理加载 iframe 内容 https stackoverflow com questions 12845445 load iframe content with different user agent但我
  • PhantomJS 在评估之前更改网页内容

    我想在评估 渲染网页之前删除 HTML 元素或简单地删除网页的前 N 个字符 有什么办法可以做到这一点吗 这取决于多种场景 我将仅概述以下问题的每种答案组合的步骤 是不是有一段JS叫做onload ol 或者脚本块立即被评估 ie 它是内联
  • 使用 JavaScript 进行地理位置定位

    我正在编写一个脚本来获取地理位置 纬度 经度 我可以使用它来将我的谷歌地图实例居中 目前我使用两种可能的技术 其一是google loader ClientLocation目的 我还没有测试过这个 因为它为我返回 null 我想是因为我不住
  • 使用内置显卡,没有NVIDIA显卡,可以使用CUDA和Caffe库吗?

    使用内置显卡 没有 NVIDIA 显卡 可以使用 CUDA 和 Caffe 库吗 我的操作系统是 ubuntu 15 CPU为 Intel i5 4670 3 40GHz 4核 内存为12 0GB 我想开始学习深度学习 CUDA 适用于 N
  • 如果分析器不是答案,我们还有什么其他选择?

    看完Joshua Bloch的演讲 绩效焦虑 后 我读了他在演讲中建议的论文 评估 Java 分析器的准确性 http www plan cs colorado edu klipto mytkowicz pldi10 pdf 引用结论 我们
  • 将 Oracle 日期解析为 Java

    我正在查询数据库并获取格式为 01 SEP 22 的日期 我想在Java中将此日期转换为 yyyy MM dd 格式 我有什么办法可以做到这一点吗 java time 我建议您使用 java time 现代 Java 日期和时间 API 来
  • 如果 $(window).load() 已弃用,我应该使用什么?

    我需要一个在页面完全加载 文本 图像等 时调用的函数 我注意到 window load 现已弃用 那么 我应该使用什么 如果你想避免load函数 使用泛型on功能 window on load function insert code he
  • Drupal 中表的节点引用

    I have Drupal with CCK I have a content type named Article This Article has 5 Node references I m using the table field
  • 如何仅在筛选记录上使用 power bi 中的 MAX 函数?

    我试图选择具有最新日期的记录 数据库中的所有记录都有这些基本列 AssetNumber WorkOrderNumber ScheduledEndDate Department 我想查找特定部门中每项资产的所有最新工单 日期 我有一个基本的措
  • 具有引用数据成员的类的默认构造函数?

    我有课MyClass我需要在其中创建一个std array of std vector在默认构造函数中 但是 此类有一个数据成员 它是一个引用 类型为Something 它也需要在构造函数中初始化 但我无法在默认构造函数中执行此操作 我应该
  • 在 .NET 中,调用 .Count() 更好,还是调用 .Count(如果可用)更好?

    导入 Linq 命名空间后 可以同时使用 Count 和 Count 例如 在实现 IList 的对象上 Count 将调用 Count 属性 如果可用 如下所示 C Count 扩展方法性能 https stackoverflow com
  • Spring AOP(方面)未执行

    我使用 Spring 2 5 6 asm 1 5 3 aspectjrt aspectjweaver 1 6 1 cglib 2 1 3 在我的基于 Web 的 Spring 应用程序中 我有以下类 package uk co txttoo
  • Yii、ajax、按钮。如何防止多个JS onclick绑定

    首先 英语不是我的母语 如果我可能弄错了 我很抱歉 我创建了 Yii Web 应用程序 其中主页上有输入表单 该表单在通过 ajax 请求单击按钮后出现 表单上有一个 取消 按钮 可以使带有表单的 div 不可见 如果我单击 显示表单 和
  • 将 Google Drive 的“计算机”挂载到 Colaboratory

    我研究了官方的一些加载数据到Colaboratory的方法 但它仅通过命令将colab与Google Drive的 My Drive 文件夹连接 驱动器 mount content gdrive colab目录树的图片 https i st
  • 为什么默认情况下不是所有 React 组件都用 React.memo() 包装?

    我刚刚了解到React memo 并想知道 我们什么时候不想要这种行为 我们不是总是希望组件仅在其 props 发生更改时才重新渲染吗 这是因为记忆本身不是免费的 你不应该在任何地方使用它 因为 记忆化本身在比较一个渲染与下一个渲染的值时会
  • Vulkan:在多个命令缓冲区中排序图像内存屏障

    对于资源转换 您需要了解 之前 和 之后 VkImageLayout资源的 例如 在VkImageMemoryBarrier传递给vkCmdPipelineBarrier Vulkan 不保证命令缓冲区执行的任何顺序 除非 API 文档中明