翻译自:http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb172568(v=vs.85).aspx

一个或者多个组合的锁定选项,用来描述资源锁定类型的表现。

D3DLOCK_DISCARD:

使用方式会强制为:D3DUSAGE_DYNAMIC。

应用程序将会丢弃锁定区域内的所有内存。CPU不会因锁定而等待,可以有效的提高程序性能。对于顶点和索引缓存,整个缓存都会锁定使用后被丢弃。这个选项只有对用

D3DUSAGE_DYNAMIC使用方式创建的资源是合法的。

  不合理的LOCK会严重影响程序性能,因为一般LOCK需要等待COMMANDBUFFER前面的绘制指令全部执行完毕才能返回,

否则很可能修改正在使用的资源,从LOCK返回到修改完毕UNLOCK这段时间GPU全部处于空闲状态,没有合理使用GPU和CPU的并行性,

DX8.0引进了一个新的LOCK标志D3DLOCK_DISCARD,表示不会读取资源,只会全写资源,这样驱动和RUNTIME配合来了个瞒天过海,

立即返回给应用程序另外块VM地址指针,而原指针在本次UNLOCK之后被丢弃不再使用,这样CPU LOCK无需等待GPU使用资源完毕,

能继续操作图形资源(顶点缓冲和索引缓冲),这技术叫VB IB换名(renaming)。

D3DLOCK_DONOTWAIT:

当显卡驱动没有能够马上锁定表面的时候,允许应用程序返回CPU循环。如果没有能够马上锁定,将会返回

D3DERR_WASSTILLDRAWING。这个锁定只能用在用CreateOffscreenPlainSurface, CreateRenderTarget,

or CreateDepthStencilSurface创建的表面,这个标记通常可以被后台缓存使用.

D3DLOCK_NO_DIRTY_UPDATE:

默认情况下锁定一个资源会添加脏区域,这个选项避免该资源的这个脏区域状态的任何改变。应用程序可以使用这个选项,

当它被锁定,在这个区域有额外的信息需要被更新的时候。也就是不是指定脏区域的才能改变。

D3DLOCK_NOOVERWRITE:

使用方式会强制为:D3DUSAGE_DYNAMIC,可以进行动态更新。

引入这个锁定标记是因为在渲染期间,用其它方式锁定了资源,该资源不能被更新。这个标记可以使用在当应用程序,需要将

资源数据append data附加到末尾的时候。需要说明的是,在这个资源正在使用期间锁定该资源显卡驱动会马上返回;

资源不在使用期间,显卡驱动必须去使用资源,使用完锁定函数才返回。

D3DLOCK_NOSYSLOCK:

默认的显存锁定需要保留一个系统内存的临界区域,保证在锁定期间没有显卡模式的改变会发生。这个选项让系统内存临界区域

不要在锁定期间被保留。

锁定操作室time consuming耗时的,但是可以让系统去做其它的事情,例如响应鼠标的点击。这个选项对于耗时比较长的锁定是

很有用的,例如用软件渲染方式锁定一块后台缓存,不然adversely不利于系统的响应。

D3DLOCK_READONLY:

应用程序不能写这块缓存。这个选项让资源保存在非本地的格式,可以节省解锁时候的再压缩,可以提高锁定解锁效率。可以有效的提高程序的性能。

【转】D3DLOCK详解相关推荐

  1. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  2. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  3. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  4. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  5. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  6. CUDA之nvidia-smi命令详解---gpu

    nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...

  7. Bert代码详解(一)重点详细

    这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...

  8. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  9. pytorch nn.LSTM()参数详解

    输入数据格式: input(seq_len, batch, input_size) h0(num_layers * num_directions, batch, hidden_size) c0(num ...

最新文章

  1. Linux快捷键-命令行下
  2. 数据操作DataBaseCtrl
  3. 阿里云oss数据迁移到腾讯云cos 方法二(强烈推荐)
  4. Docker 极简入门教程,傻瓜都能看懂!
  5. 【学习笔记】智能制造问与答
  6. 开学一月,可以自己玩自己做的游戏了!!!
  7. 神盾局特工第四季/全集Agents Of SHIELD迅雷下载
  8. mysql 在update中实现子查询的方式
  9. 大数据分析平台架构(Big Data Analytics Platform)
  10. 软件设计师中级-数据结构及算法应用
  11. 计算机协会取消信息学奥赛,教育部2019年公示:信息学奥赛正式取消?
  12. rms 公式 有效值_为什麼均方根值(RMS)比平均值表达好一些?
  13. 【保姆级教程,100%成功】MAC OS打开ntfs格式U盘
  14. echarts常见图形-横向柱状图(六)
  15. 数据整理—dplyr包(mutate系列)
  16. python编写英文字典_python如何制作英文字典
  17. 仪器分析和计算机,化学分析和仪器分析的区别
  18. uniapp 微信小程序分页方法:uni-pagination分页插件和上拉分页、下拉加载刷新、刷新后回到顶部
  19. js重新渲染或重新加载div
  20. 向量叉乘矩阵表示_对于向量和矩阵的理解

热门文章

  1. MapReduce Java API-多输入路径方式
  2. Cordova创建你的第一个App
  3. 面向对象的三大特征继承,封装和多态性
  4. java 编程思想 笔记_java编程思想笔记20170215
  5. a - 数据结构实验之串一:kmp简单应用_串的两种模式匹配方式(BF/KMP算法)
  6. 自然科学 计算机,计算机科学与自然科学技术的关系
  7. 神策用户画像 2 大功能:千人千面,一人千面,一次给你
  8. linux基础,文件目录管理,cd、rm、mkdir
  9. JQeury form插件的ajaxForm方法和ajaxSubmit方法的区别
  10. DHTML【5】--HTML