dx12的resource barrier

resource barrier存在的意义,就是通过标明资源的状态转换,来让GPU
这里有两个非常重要的点,需要resource barrier来完成:

  • 资源的同步
  • 资源的表达/存储方式

资源同步

比如上一个是compute shader里写的uav,下一个pxiel shader里面读的srv;
那么就是一个uav to srv的转换。
由于gpu中可能多个执行之间可能有并行,所以这里插一个uav2srv的barrier就能起到一个等待同步的作用。

资源存储方式
包括layout等等,根据不同的用途会有不同的优化方式,这个一般都不太透明。
各家gpu的各个架构可能都不一样。
简言之一个原则就是resource state尽可能贴近资源的状态就好,正确准确的表达。

三种barrier:

  • transition barrier这个就是最常见的,不同资源state之间转换
  • uav barrier:这个就是多个cmd之间,可能资源一直是uav,但是需要同步,这个时候由于都是uav,所以不能transition barrier,所以dx12专门提供uav barrier;其实可以理解就是transition barrier的一种特殊形式。
  • aliasing barrier

reference
Using Resource Barriers to Synchronize Resource States in Direct3D 12

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值