barrier 管理的是commandbuffer里面 command之间

fence管理的是queue之间 queue和cpu之间的顺序

 

通过flag比如等待所有面片画完

---------------

这个项目做完,终于明白barrier和fence的使用了

barrier api就是一个addbarrier()

比如在做rtt的时候 第一张作为srt的rt画完之后 加个addbarrier()之后gpu在使用这张srv的时候 就会根据flag等

通常是等画完了再用,具体flag看文档,ue4里面是全部加的

 

fence可以做cpu gpu之间的同步。Api有两步:

1. 找个合适的地方加fence

2.wait 通过flag

例子,CPU命令提交之后加个fence

之后 CPU wait GPU执行完全部命令 就可以把CPU这边的cmd 清了重新使用了

 这里可以做cpu gpu并行。循环两次一wait

 

barrier没加导致的错误的样子:面片边缘大块闪,对角线位置(因为是三角全屏面片) 没画完就被拿来用了,有点像ps4sampleself那种感觉 闪的单位大一些

相关文章:

  • 2021-05-24
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-25
猜你喜欢
  • 2022-02-21
  • 2021-05-22
  • 2021-11-10
  • 2021-12-07
  • 2021-05-16
  • 2021-07-28
相关资源
相似解决方案