Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >vkQueuePresentKHR是否阻止在等待信号量时执行以后的命令?

vkQueuePresentKHR是否阻止在等待信号量时执行以后的命令?
EN

Stack Overflow用户
提问于 2022-05-24 13:20:22
回答 1查看 78关注 0票数 0

这是这个问题的后续问题,也是基于同样的Vulkan教程提供的代码。

下面是一个简化的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Vulkan handles defined and initialized elsewhere
VkDevice device;
VkQueue queue;
VkSempahore semaphore;
VkSwapchain swapchain;
VkCommandBuffer cmd_buffer;

// Renderer code
uint32_t image_index;   // image acquisition is omitted

VkPresentInfoKHR present_info{};
present_info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
present_info.waitSemaphoreCount = 1;
present_info.pWaitSemaphores = &semaphore;
present_info.swapchainCount = 1;
present_info.pSwapchains = &swapchain;
present_info.pImageIndices = &image_index;

VkSubmitInfo submit_info{};
submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
// ... irrelevant code omitted
submit_info.pCommandBuffers = &cmd_buffer;

vkQueuePresentKHR(queue, &present_info);
vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE);

在上面的示例中,cmd_buffer中的命令是否也必须等待直到发出semaphore信号?

我问这个问题是因为本教程下面的评论提到:

但是,如果图形和当前队列的结果是相同的,那么renderFinished信号量可以保证正确的执行顺序。这是因为vkQueuePresentKHR命令等待该信号量,并且它必须在队列开始中以后的命令开始之前开始(由于隐式排序),并且只有在从上一个帧呈现完成后才会发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-25 02:44:09

在上面的例子中,cmd_buffer中的命令是否也必须等待信号量被发出?

只有当您将信号量用作后一次提交的waitSemaphore时,才行。

这是因为vkQueuePresentKHR命令等待该信号量,并且它必须在队列开始中以后的命令开始之前开始(由于隐式排序),并且只有在从上一个帧呈现完成后才会发生。

我不相信这是真的。

命令相对于队列中的其他命令以隐式顺序开始,但这是在逐阶段的基础上执行的。还请注意,规范的措辞是“按顺序开始”,而不是“按顺序完成”,这是一种规范花招。硬件完全可以自由地重叠和无序地执行单独的命令,这些命令在流中是顺序的,除非流包含停止执行的同步原语。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72369593

复制
相关文章
在eclipse中没有server(需在选项中设置)
①在软件eclipse下的Help->InstallNew Software->中,在Work with中点击Add,如下,加入
全栈程序员站长
2022/07/25
4K0
在eclipse中没有server(需在选项中设置)
goto语法在PHP中的使用
在C++、Java及很多语言中,都存在着一个神奇的语法,就是goto。顾名思义,它的使用是直接去到某个地方。从来代码的角度来说,也就是直接跳转到指定的地方。我们的PHP中也有这个功能,我们先来看看它是如何使用的:
硬核项目经理
2020/01/02
2.7K0
trait能力在PHP中的使用
相信大家对trait已经不陌生了,早在5.4时,trait就已经出现在了PHP的新特性中。当然,本身trait也是特性的意思,但这个特性的主要能力就是为了代码的复用。
硬核项目经理
2020/03/12
1.9K0
在 Django 表单中传递自定义表单值到视图
在Django中,我们可以通过表单的初始化参数initial来传递自定义的初始值给表单字段。如果我们想要在视图中设置表单的初始值,可以在视图中创建表单的实例时,传递一个字典给initial参数。
华科云商小徐
2024/08/09
1340
Redis 在PHP中的使用笔记
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/79403675
泥豆芽儿 MT
2018/09/11
9920
Redis 在PHP中的使用笔记
在PHP中,cookie和session的使用
cookie简介 Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,Cookie通过HTTP headers从服务端返回到客户端。多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。 PHP工作原理:PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通
思梦php
2018/03/09
4.1K0
在PHP中,cookie和session的使用
[MongoDB] 使用PHP在MongoDB中搜索的实现
条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式,使用PCRE (Perl Compatible Regular Expression) 作为正则表达式语言。 MongoDB OR 条件语句使用了关键字 $or
唯一Chat
2020/02/25
5.2K0
工具系列 | Casbin在PHP中的使用教程
Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。
Tinywan
2023/03/08
1.7K0
工具系列 | Casbin在PHP中的使用教程
RabbitMQ在php中的使用----发布与订阅
安装教程 rabbitmq和php的amqp扩展教程网上有很多,大家可以自行查询,例如:Linux系统安装RabbitMQ及PHP安装amqp拓展库详细教程
美团骑手
2021/01/18
2K0
final关键字在PHP中的使用
final关键字的使用非常简单,在PHP中的最主要作用是定义不可重写的方法。什么叫不可重写的方法呢?就是子类继承后也不能重新再定义这个同名的方法。
硬核项目经理
2020/02/26
2.3K0
在PHP中strpos函数的正确使用方式
首先简单介绍下 strpos 函数,strpos 函数是查找某个字符在字符串中的位置,这里需要明确这个函数的作用,这个函数得到的是位置。 如果存在,返回数字,否则返回的是 false。 而很多时候我们拿这个函数用来判断字符串中是否存在某个字符,一些同学使用的姿势是这样的 // 判断‘沈唁志博客’中是否存在‘博客’这个词 if (strpos('沈唁志博客', '博客')) { // 如果存在执行此处代码 echo '存在'; }else{ // 如果不存在执行此处代码 e
沈唁
2018/05/24
5.2K0
SwiftUI:使用 @EnvironmentObject 从环境中读取自定义值
SwiftUI的环境使我们可以使用来自外部的值,这对于读取Core Data上下文或视图的展示模式等很有用。但是我们也可以将自定义对象发送到环境中,并在以后将它们读出来,这使我们可以在复杂的应用程序中更轻松地共享数据。
韦弦zhy
2020/09/10
9.7K0
在C或C++中如何使用PI(π)值
参考链接: C++ acos() #include <math.h> #define PI acos(-1) 主要是利用利用数学函数中的反三角函数,但是要注意一定引入math包           arccos          ⁡          (          −          1          )          =          π         \arccos(-1)=\pi      arccos(−1)=π  完整示例:  //#define LOCAL #includ
用户7886150
2021/02/09
5.9K0
ComboBoxEdit设置选项值(单选 多选)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120492.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/15
2.1K0
在 PHP 中自定义 function_alias 函数为函数创建别名
我们知道 PHP 有一个为类创建一个别名的函数:class_alias,比如我们有个类名字是 WPJAM_Items,我们希望使用 WPJAM_Item 的时候效果一致,可以使用下面的代码为类 WPJAM_Items 创建一个别名 WPJAM_Item 。
Denis
2023/04/13
1.9K0
在php中使用redis
说这么多就是为了表明,大部分情况下,redis是可以满足我们对于缓存的要求的。下面来说如何在php项目中使用redis作为缓存引擎。
ianzhi
2019/07/31
6460
【IEDA】已解决:在IDEA中找不到JSP选项
在使用IntelliJ IDEA创建一个Web项目时,有时会遇到找不到JSP选项的问题。即使按照通常的步骤创建项目,也无法找到添加JSP文件的选项,让人感觉像是使用了一个“假的”IDEA。
屿小夏
2024/09/06
9030
【IEDA】已解决:在IDEA中找不到JSP选项
php数组中模糊查询给定的值
第一种:查询给定的值索引不变 /** * 在数组中模糊搜索给定的值 * @param $data * @param $keyword * @return array */ function searchArr($data,$keyword){ $arr = array(); foreach($data as $key=>$values ){ if (strstr( $values , $keyword ) !== false ){ $arr
素描
2019/09/19
6.4K0
PHP——判断数组中是否有重复值并找出重复值
可以用来测试需要唯一凭据号码的,是否有重复值,不过一般直接使用uuid了,简单粗暴就解决问题,这个就简单的测试生成的数据是否有重复值吧
思索
2024/08/16
720
php JWT在web端中的使用方法教程
JWT就是一个字符串,经过加密处理与校验处理的字符串,由三个部分组成。基于token的身份验证可以替代传统的cookie+session身份验证方法。三个部分分别如下:
用户2323866
2021/07/13
1.9K0

相似问题

自定义wordpress选项字段中的SAving PHP

10

在functions.php中调用自定义字段值

10

在自定义查询中保存重复的选项值

20

在admin中保存自定义选项时保留querystring值

10

在header.php中获取自定义post类型值

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文