使用 DirectX11 更新非 UI 线程中的顶点缓冲区

恩杰

我想用动态顶点缓冲区渲染一个对象,我在 UI 线程中进行渲染。我在想是否可以使用 Map 和 Unmap 在非 UI 线程中更改此顶点缓冲区内容。

谢谢。

YL

查克·沃尔伯恩

Direct3D 11 多线程模型相当简单:

  • 对 的调用ID3D11Device是线程安全的(除非您D3D11_CREATE_DEVICE_SINGLETHREADED在创建设备时使用了该标志)。您可以从任何线程调用此接口上的方法。

  • 调用的ID3D11DeviceContext11不是线程安全的,并且你应该只调用该接口上的方法从单个线程在给定的时间范围内。

这就是为什么MapUnmap是的一部分ID3D11DeviceContext11,而不是ID3D11Device上或ID3D11Resource本身就像是在Direct3D 10的操作与其他操作本质上连载。

这意味着您应该有一个使用直接设备上下文(和 DXGI)的线程,并且这可能应该与您的主窗口消息泵相同(出于DirectX 图形基础结构(DXGI):最佳实践中介绍的原因

您可以Map在与使用直接上下文的线程相同的线程上,将指针编组到另一个线程,然后Unmap在该线程完成时从原始线程编组,但这极不可能提高性能。

请参阅Direct3D 11 中的多线程简介

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

非交错顶点缓冲区DirectX11

来自分类Dev

在DirectX11中为动态和静态对象使用单独的顶点缓冲区

来自分类Dev

DirectX11更新动态实例缓冲区

来自分类Dev

使用SharpDX从DirectX 11中的多个顶点缓冲区进行绘制

来自分类Dev

Directx11如何管理多个顶点/索引缓冲区?

来自分类Dev

OpenGL无法使用VAO过程更新顶点缓冲区

来自分类Dev

使用Directx11更新DXT压缩纹理的错误运行时

来自分类Dev

顶点和索引缓冲区如何在 DirectX11 中与顶点、法线和 Texcords 一起工作

来自分类Dev

深度模板缓冲区不起作用DirectX11

来自分类Dev

c + +和DX11中的动态常量缓冲区或动态顶点缓冲区

来自分类Dev

DirectX11顶点在前面被绘制

来自分类Dev

使用C ++的Directx11渲染不起作用

来自分类Dev

Vulkan-顶点缓冲区更新

来自分类Dev

WPF中DirectX11中的SharpDX 2.5

来自分类Dev

从非UI线程更新ObservableCollection

来自分类Dev

从非UI线程更新控件

来自分类Dev

DirectX11中的纹理流,不可变与动态

来自分类Dev

C ++中的着色器和Directx11编译

来自分类Dev

Directx 11 with C ++:使用常量缓冲区和SetRawValue()之间的区别?

来自分类Dev

C ++ DirectX11将同一向量中的元素设置为同一更新循环中的不同位置

来自分类Dev

使用DirectX11像素着色器将颜色从DXGI_FORMAT_B8G8R8A8_UNORM转换为GPU中的NV12

来自分类Dev

使用单个顶点缓冲区还是多个顶点缓冲区?

来自分类Dev

使用单个顶点缓冲区还是多个顶点缓冲区?

来自分类Dev

DirectX顶点缓冲区默认与默认+过渡

来自分类Dev

常量缓冲区DirectX 11

来自分类Dev

从堆栈或堆变量更新DirectX常量缓冲区

来自分类Dev

具有X文件的非相干顶点缓冲区

来自分类Dev

如何使用Directx读取hdmi输入帧缓冲区?

来自分类Dev

更新顶点缓冲区会导致调试层错误

Related 相关文章

  1. 1

    非交错顶点缓冲区DirectX11

  2. 2

    在DirectX11中为动态和静态对象使用单独的顶点缓冲区

  3. 3

    DirectX11更新动态实例缓冲区

  4. 4

    使用SharpDX从DirectX 11中的多个顶点缓冲区进行绘制

  5. 5

    Directx11如何管理多个顶点/索引缓冲区?

  6. 6

    OpenGL无法使用VAO过程更新顶点缓冲区

  7. 7

    使用Directx11更新DXT压缩纹理的错误运行时

  8. 8

    顶点和索引缓冲区如何在 DirectX11 中与顶点、法线和 Texcords 一起工作

  9. 9

    深度模板缓冲区不起作用DirectX11

  10. 10

    c + +和DX11中的动态常量缓冲区或动态顶点缓冲区

  11. 11

    DirectX11顶点在前面被绘制

  12. 12

    使用C ++的Directx11渲染不起作用

  13. 13

    Vulkan-顶点缓冲区更新

  14. 14

    WPF中DirectX11中的SharpDX 2.5

  15. 15

    从非UI线程更新ObservableCollection

  16. 16

    从非UI线程更新控件

  17. 17

    DirectX11中的纹理流,不可变与动态

  18. 18

    C ++中的着色器和Directx11编译

  19. 19

    Directx 11 with C ++:使用常量缓冲区和SetRawValue()之间的区别?

  20. 20

    C ++ DirectX11将同一向量中的元素设置为同一更新循环中的不同位置

  21. 21

    使用DirectX11像素着色器将颜色从DXGI_FORMAT_B8G8R8A8_UNORM转换为GPU中的NV12

  22. 22

    使用单个顶点缓冲区还是多个顶点缓冲区?

  23. 23

    使用单个顶点缓冲区还是多个顶点缓冲区?

  24. 24

    DirectX顶点缓冲区默认与默认+过渡

  25. 25

    常量缓冲区DirectX 11

  26. 26

    从堆栈或堆变量更新DirectX常量缓冲区

  27. 27

    具有X文件的非相干顶点缓冲区

  28. 28

    如何使用Directx读取hdmi输入帧缓冲区?

  29. 29

    更新顶点缓冲区会导致调试层错误

热门标签

归档