c++ - 内存中着色器的数量在多大程度上影响性能?

标签 c++ ios windows opengl

管理着色器时,将所有着色器始终编译并保存在内存中是否有意义?还是只在内存中保留我需要的着色器,并卸载那些暂时未使用的着色器会更好?

最佳答案

根据应用程序,最重要的因素可能是您不希望出现阻塞情况,即当前帧需要使用已卸载着色器的 Material ,并且您必须在帧可以继续渲染之前重新加载/编译它,因此会阻塞渲染并可能导致帧速率出现问题。如果您可以避免这种情况并在需要着色器之前预先重新加载着色器,那么应​​该没问题。

但我首先会进行一些内存分析,以查看着色器占用了多少内存 - 在我看来,这就像一个微优化(除非您加载的着色器数量惊人地多)。我的猜测是,通过专注于纹理,您会节省更多内存。

关于c++ - 内存中着色器的数量在多大程度上影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9874339/

相关文章:

c++ - 我怎样才能修复 xcode 一直编译所有的东西?

c++ - 初始化 C++ 线程并稍后运行

java - 判断链表是否是循环的

windows - 如何从命令提示符*不带换行符*发送 EOF?

c++ - 没有或有静态设备上下文的 OpenGL 加载纹理?

ios - IOS 中的滑动手势识别

ios - 切换到横向时,Tableview 将约束更改为全屏

ios - Swift 中的回调、带有多个参数的完成处理程序

windows - 如何在 Windows 中执行 .r 文件

c# - Windows 文件系统?