UE5 GPU内部异步

1、CPU 和 GPU 异步

readback 是第一个点里最典型的例子之一

但更准确地说:

CPU/GPU 异步本身不是 readback;readback 是最容易打断这种异步的操作。

普通情况是:

复制代码
CPU 提交 GPU 命令
CPU 继续往后跑
GPU 慢慢执行队列里的命令

而 readback 是反过来:

复制代码
CPU: 我要读取 GPU 刚刚算出来/画出来的结果
GPU: 还没做完,等一下
CPU: 被迫等待

更好的做法是异步 readback:

复制代码
第 N 帧:提交 GPU -> CPU staging/readback buffer 的拷贝
第 N+1/N+2 帧:检查 fence 或 IsReady
准备好了再 Lock/Map

参考之前的文章:UE5 compute shader 原子加-CSDN博客


2. GPU 内部异步

现代 GPU 通常有不同类型的队列:

复制代码
Graphics Queue: 光栅化、渲染主流程
Compute Queue: 计算着色器、后处理、剔除、粒子等
Copy Queue: 资源上传、显存拷贝

所谓 Async Compute 通常指 compute queue 和 graphics queue 重叠执行。比如主渲染管线在画阴影或 GBuffer 时,另一个 compute pass 同时做 SSAO、降噪、光照预处理等。

但它不是"开了就更快"。只有当 GPU 有空闲资源,并且两个任务之间没有强依赖时,异步才有收益。

参考之前的文章:《UE5 Compute Shader 中的原子操作与异步执行》-CSDN博客

核心:

输入很早就准备好了

输出很晚才会被用

中间有很多 graphics 工作可以重叠

不严重抢显存带宽 / cache / 计算单元

这样不会CS开始执行,graphics queue的内容马上要用CS的输出导致graphics被迫等待cs的结果,以至于卡顿

相关推荐
1204157137 肖哥1 小时前
UE5 PCG PCGBlueprintElement简介
ue5
dong1326972 小时前
UE5FPS游戏开发教程(四)
ue5
dong13269720 小时前
UE5FPS游戏开发教程(三)
ue5
日月云棠21 小时前
UE5源码分析之Editor——AnimationBlueprintLibrary模块全面分析
ue5
远离UE41 天前
UE5 ECS 原理
ue5
mengzhi啊3 天前
UE5 把剑绑定到骨骼-给要播放的动画及动画蒙太奇添加武器
ue5
directx3d_beginner3 天前
32,每帧更新怪物朝向改为c++
ue5
日月云棠3 天前
UE5源码分析之Editor——AnimationEditor模块全面分析
ue5
吴梓穆4 天前
UE5 播放透明视频
ue5