Direct3D 12 尝鲜(二): Fence

news/2025/3/15 10:18:16/
(转载请注明出处)

正如上节末尾所说, 出现了运行时错误:

D3D12 ERROR: ID3D12CommandAllocator::Reset: A command allocator is being reset before previous executions associated with the allocator have completed. [ EXECUTION ERROR #548: COMMAND_ALLOCATOR_SYNC]

就是说要在相关执行完成后才能重置, 在自己的第一印象中, 认为提交呈现(Present)后, 所有的操纵就完成了, 但这样似乎不是这样的, 微软在这里有提到:

Waiting for frame rendering is probably the coarsest way to be certain that the GPU has finished. At a finer grain, you can again use fences

就是说, 等待帧渲染完毕就认为GPU工作完毕了, 这种做法不够好, 最好使用Fence:
篱笆

好了, 篱笆来了, 路障来了, 微软你不再来个钉刺带?╮( ̄▽ ̄)╭


Fence对应的接口就是


http://www.ppmy.cn/news/918142.html

相关文章

OpenGL Direct3D(DirectX)区别

1. OpenGl仅仅是个图形图像接口,基本不包括其它多媒体功能, 它的优势是平台无关性。DirectX则是基于Windows的,不能在MAC 和 Linux Solars上使用 。 2. OpenGL多用于专业高端绘图领域,D3D用于游戏较多,因为支持各种多媒体功能。

Direct3D 11在windows7上提示创建d3d设备失败

1.在windows7上编译程序,设置的是Debug版本,结果在执行第一步就失败了,无法创建设备。 2.跟踪到执行点,发现是Debug版本,显卡驱动程序不支持,无法创建支持调试的Direct3D设备创建。

Direct3D基础概念和模型整理

参考整理自文章: http://zh.wikipedia.org/zh/Direct3D http://blog.csdn.net/weili_2007/article/details/1907066 http://msdn.microsoft.com/en-us/library/windows/desktop/bb219679(vvs.85).aspx#Direct3D_System_Integration 概念主要包括IDirect3D, Adapt…

DirectX11 Direct3D初始化

Direct3D初始化 1. Direct3D初始化步骤 下面将讲解如何初始化Direct3D。我们将Direct3D的初始化过程分为如下几个步骤: 1.使用D3D11CreateDevice方法创建ID3D11Device和ID3D11DeviceContext。 2.使用ID3D11Device::CheckMultisampleQuali…

DirectX入门之初始化Direct3D及常见问题

这篇文章主要讲解如何初始化Direct3D。Direct3D初始化成功后,我们将的到一个代表显卡的C对象(类型:IDrect3DDevice9)。 初始化流程图: 完整代码: //全局变量IDirect3DDevice9 *device 0 ;// Step 1: Create the IDirect3D9 obje…

Direct3D 11编程总结

一、Direct3D 11 知识 1. Direct3D 11资源 1.1 Direct3D资源简介 Direct3D 11利用资源来存储输入输出数据。资源分为:几何、纹理、着色数据。资源可以是有类型的,也可以是无类型的;可以控制资源的读写访问方式,也可以限定是被CPU还是GPU访问。在图形管道阶段最多可以创建…

Direct3D 12 尝鲜(五): SDK 更新

(转载请注明出处) 又是一个月, 微软在Build2015中公布了不少关于Win10的新闻, 又在N卡公布的支持DX12显卡中看到了我的垃圾显卡(GT640M LE)居然在支持范围,高高兴兴地直接换物理机安装上Win10, 升级了SDK, VS2015变成了RC版. 不过失望了是显卡支持的仅仅是D3D12 level11.0, 不…