- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 OpenGL 中阅读了一些关于 PBO 的内容,我遇到了一个关于竞争条件的问题。
让我们来看下面的例子:我有两个 PBO,我想将它们的像素数据轮流传输到一个纹理对象。因此,当我为一个 PBO 启动异步像素传输时,我可以立即使用 CPU 执行其他操作,同时像素数据在后台传输。现在我对第二个 PBO 进行一些像素操作,完成后我想将像素从第二个 PBO 传输到纹理对象。但是,如果第一个 PBO 的转移尚未完成怎么办?就像第一个例子:http://www.songho.ca/opengl/gl_pbo.html
index = (index + 1) % 2;
nextIndex = (index + 1) % 2;
glBindTexture(GL_TEXTURE_2D, textureId);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pboIds[index]);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_BYTE, 0);
glTextSubImage2D() 将立即返回,我可以开始处理第二个 PBO,同时将第一个 PBO 的数据传输到 GPU。如果在第一次传输完成之前到达 glTexSubImage()(现在应该传输第二个 PBO 的像素数据)怎么办?它会导致 CPU 停滞周期吗?
最佳答案
OpenGL 将引入一个同步点并确保进一步的异步操作不会影响之前使用修改后的 OpenGL 对象的调用所安排的任何操作。
What if glTexSubImage() (the pixel data of the second PBO should now be transfered) is reached before the first transfer has completed?
没有意外。在调用 glTexSubImage 之后安排的所有调用都将使用修改后的数据。在它使用未修改的数据之前安排的所有调用。 OpenGL 规范要求这样做。
Will it result in CPU stall-cycles?
可能会,也可能不会。 OpenGL 没有指定这一点。
关于c++ - PBO 的竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15191192/
假设我正在使用 APC,其中过程和调用代码都使用 SetLastError 和 GetLastError。这会导致 GetLastError 产生不可预测的值。有什么办法可以解决这个问题吗? VOID
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
任何人都可以,请告诉我,如何在不进行JavaScript轮询/ setInterval的情况下,在完整日历上填充/显示在服务器端动态更新的数据。 grails中提供了Atmosphere插件,但是文档
我正在尝试调整我的代码,从仅在前台使用 WCSessionDelegate 回调到在后台通过 handleBackgroundTasks: 接受 WKWatchConnectivityRefreshB
我正在构建批处理系统。 单位 的批处理数量从 20 到 1000 不等。每个 Unit 本质上都是模型的层次结构(一个主模型和许多子模型)。我的任务涉及将每个模型层次结构作为单个事务保存到数据库中(每
我拍了一张图片并将其切成三 block ,然后将它们向右浮动,让文字围绕它们流动。 HTML 看起来像这样: 在我添加侧边栏并将其 float 到图像的右上方之前,它工作正常,就像这样... T
我正在考虑嵌入式 Linux 项目(还没有硬件)中即将出现的情况,其中两个外部芯片需要共享一条物理 IRQ 线。这条线在硬件中能够实现边沿触发,但不能实现电平触发中断。 查看 Linux 中的共享 i
我观察到,当 linux futexes 发生争用时,系统会在自旋锁上花费大量时间。我注意到即使不直接使用 futex 也是一个问题,但在调用 malloc/free、rand、glib 互斥调用和其
我终于能够获得一些工具提示,最终可以使用以下代码: Hover over me 然后 $('[rel=tooltip]').tooltip(); 我遇到的问题是它使用 jQueryUI 工
我是一名优秀的程序员,十分优秀!