在 Vulkan 中重新绑定图形管道是否保证无操作?

2024-01-25

在简化的场景中,每个要渲染的对象都被转换为辅助命令缓冲区,并且每个命令缓冲区最初都绑定一个图形管道:是否可以保证无操作来绑定之前立即绑定的管道?或者辅助命令缓冲区的执行顺序根本无法保证?


是否可以保证无操作来绑定之前立即绑定的管道?

不。事实上,在您概述的情况下,您应该准确地假设opposite. Why?

由于每个 CB 都与其他 CB 隔离,因此vkCmdBindPipeline函数无法知道事先绑定了什么。请记住:已开始记录的命令缓冲区的状态是不明确的。这意味着命令缓冲区构建代码无法对您未在此 CB 中设置的任何状态做出任何假设。

为了让驱动程序实现您正在谈论的优化,它必须在vkCmdExecuteCommands时间,内省每个辅助命令缓冲区并开始删除跨 CB 边界重复的任何内容。

That might是可行的,如果vkCmdExecuteCommands必须将辅助 CB 中的所有命令复制到主 CB 中。但这仅适用于硬件级别不存在辅助 CB 的系统,因此必须通过将其命令复制到主 CB 来实现。但即使在这种情况下,与简单地将一些令牌复制到主 CB 的存储中相比,实施此类剔除也会使命令执行时间更长。

处理低级 API 时,不要假设驱动程序将使用其直接权限之外的信息来优化代码。尤其当您拥有自己进行优化的工具时。

这是(又一个)为什么您不应该为每个单独的对象提供自己的 CB 的原因。

或者辅助命令缓冲区的执行顺序根本无法保证?

命令的执行顺序不会因为它们在 CB 中的存在而改变。然而,这些命令使用的状态的明确定义的性质is做作的。

在辅助 CB 继承的状态之外,每个辅助 CB 的状态一开始都是未定义的。那是why您必须为每个管道绑定一个管道。仅当先前发出的状态位于包含该命令的 CB 内(或者是继承的状态)时,依赖于先前发出的状态的命令才具有明确定义的行为。

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

在 Vulkan 中重新绑定图形管道是否保证无操作? 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile

随机推荐

  • 在执行 DataBind 之前如何对 DataSet 进行排序?

    我有来自数据库的数据 格式为DataSet 然后我将其设置为DataSource在执行之前的网格控件DataBind 我想排序DataSet DataTable在一列上 该列在数据库中排序太复杂 但我希望可以像对通用列表进行排序一样对其进行
  • 编组变量参数 - __arglist 或替代方案

    描述我试图解决的问题的最佳方式是用代码进行讨论 我在这个论坛上看到很多 arglist 问题 但没有很多有用的答案 我知道应该避免 arglist 所以我愿意接受替代方法 在一个 C 模块中 我有如下内容 void SomeFunction
  • 什么是进程和线程?

    是的 我读过很多操作系统相关的资料 我还在读书 但似乎它们都在以 抽象 的方式描述进程和线程 这对它们的行为和逻辑组织做了很多高层的阐述 我想知道它们是什么身体上的 在我看来 它们只是一些内存中的 数据结构 由内核代码维护和使用 以方便程序
  • 我如何告诉 webdriver-io 使用 Firefox 开发者版本?

    我如何告诉 webdriver io 使用 Firefox 开发者版本而不是普通的 Firefox 我需要使用普通 Firefox 不支持的 CSS4 选择器 我阅读了文档 但找不到该选项 您需要通过设置重新定义 Firefox 的位置bi
  • 如何以编程方式更新反应路由器中的查询参数?

    我似乎无法找到如何在不使用的情况下使用react router更新查询参数 hashHistory push url 似乎没有注册查询参数 并且您似乎无法传递查询对象或任何内容作为第二个参数 如何更改网址 shop Clothes dres
  • 参数类型“String”无法分配给参数类型“Uri”

    我正在尝试使用 flutter 插件 HTTP 发出 HTTP POST 请求 但收到标题错误 有谁知道这个原因 因为在我的其他应用程序中这工作得很好 await http post Uri encodeFull https api ins
  • 无法访问动态特征实现中的结构字段[重复]

    这个问题在这里已经有答案了 在尝试使用通用参数实现特征并访问这些通用参数的字段时 我遇到一条错误消息 指出相关参数不包含此类字段 下面是一些显示该问题的示例代码 pub struct Settings pub time String pub
  • AWS API 网关 - CORS + POST 不起作用

    CORS这真的让我发疯 我真的不知道如何让它发挥作用 我创建了一个简单的 APIG Api 其中包含 1 个名为 abc 的资源 并添加了 2 个方法GET and POST两者都与授权 set to NONE and 需要 API 密钥
  • 使用 LINQ 更新记录

    我需要在表中为行子集设置一个值 在 SQL 中 我会这样做 UPDATE dbo Person SET is default 0 WHERE person id 5 有没有办法在 LINQ 中做到这一点 我目前使用的是 var result
  • 为什么最小宽度较小的媒体查询会覆盖较大的媒体查询?

    我试图理解为什么min width 600下面的媒体查询将覆盖min width 768媒体查询 我知道 600px 在 CSS 文件中出现得较晚 这可能是一个原因 但肯定只有在屏幕尺寸为 600 或 768 时才应应用一个 我现在正在研究
  • T4MVC 或 MvcFutures 用于视图中的强类型链接

    我正在尝试减少 消除 MVC3 项目中的 魔术字符串 并且想知道哪种方法更好 使用 MvcFutures 并执行以下操作 var title Create New Customer Html ActionLink c gt c Create
  • UIWebView 在文本字段焦点后滚动

    I have UIView and UIWebView在屏幕上 当我单击网站中的文本字段时 网络视图内容将会上升 我怎么能强迫UIView那么也移动吗 您可以订阅UIKeyboardWillShowNotification or the U
  • 强制滚动条到底部

    我正在制作一个运行良好的小型消息 聊天系统 问题是 div 消息输出到的位置不按我需要的方式滚动 所有新消息都会添加到 div 的底部 当添加更多消息并且显示滚动条时 滚动将停留在 div 的顶部 div 我需要将其反转 以便滚动始终粘在底
  • 为什么当我使用扫描仪 sc.nextDouble() 时出现 InputMismatchException

    我想从一个读取数据txt文件 但我得到InputMismatchException当我打电话时nextDouble 方法 即使我正在使用useLocale方法 但是不起作用 txt文件第一行是 1 forname 1 9 public cl
  • HTML5 - 如何获取图像尺寸

    我有这个脚本 它用于获取浏览器上传图像的宽度和高度 参考 http renevier net misc resizeimg html http renevier net misc resizeimg html function create
  • 文本框 asp.net 回发在 autopostback true 上触发两次

    在文本框 OnTextChanged 事件上 回发周期触发两次 两种方法都设置断点来理解问题 这是我的代码示例
  • Pyspark 数据框:对一列进行求和,同时对另一列进行分组

    我有一个如下所示的数据框 In 94 prova df show order item order id order item subtotal 1 299 98 2 199 99 2 250 0 2 129 99 4 49 98 4 29
  • 是否可以排除 apache 访问日志中指定的 GET 参数?

    我需要排除 apache 日志中的一些敏感详细信息 但我想保留日志和 uri 是否可以在我的访问日志中实现以下目标 127 0 0 1 27 Feb 2012 13 18 12 0100 GET api php param secret H
  • 环境/开发资产路径的副本在 gems 目录中找不到 jquery-ui-rails

    我将 config environments development rb 复制到 config environments ci rb 当我使用 RAILS ENV development 运行时 资产搜索路径包括我的 gem 供应商目录
  • 在 Vulkan 中重新绑定图形管道是否保证无操作?

    在简化的场景中 每个要渲染的对象都被转换为辅助命令缓冲区 并且每个命令缓冲区最初都绑定一个图形管道 是否可以保证无操作来绑定之前立即绑定的管道 或者辅助命令缓冲区的执行顺序根本无法保证 是否可以保证无操作来绑定之前立即绑定的管道 不 事实上