首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一个简单的方法来唤醒我的程序时,一个伏尔坎围栏的信号?

有没有一个简单的方法来唤醒我的程序时,一个伏尔坎围栏的信号?
EN

Stack Overflow用户
提问于 2021-04-29 19:14:19
回答 1查看 36关注 0票数 1

我正在编写一个使用libev来等待许多文件描述符的程序。当数据传入时,将运行vulkan计算着色器来处理数据。该着色器的完成使用围栏发出信号。我不想阻塞我的事件循环来等待完成返回结果。

我最初尝试使用VkGetFenceFdKHR获取文件描述符,并在栅栏上设置VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT以获取同步文件,但我针对的其中一台计算机不支持该功能。

目前,我只是使用计时器和vkGetFenceStatus来轮询栅栏,但这感觉非常低效。有没有更好的方法来唤醒我的事件循环?

EN

回答 1

Stack Overflow用户

发布于 2021-04-30 23:55:52

我不知道这是不是更好的方法,因为我没有基于文件描述符的同步的实际经验。但这里有一个替代方案。

您可以创建一个线程,它的唯一目的是在栅栏上阻塞,之后它将发出FD信号。这在某些方面可能比您的计时器和轮询API更好,因为它不会浪费CPU周期。但它确实需要额外的线程唤醒,然后等待FD的线程才能看到它,因此这可能会延迟响应。

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

https://stackoverflow.com/questions/67316264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档