gpt4 book ai didi

opengl - 估计 GLSL 着色器所需的寄存器数量

转载 作者:行者123 更新时间:2023-12-01 04:35:52 27 4
gpt4 key购买 nike

最近我得到了一些

error C6020: Constant register limit exceeded at variable; more than 1024 registers needed to compile program



在编译 GLSL 顶点着色器期间出现错误,可能是因为统一变量的数量,我试图找出一种方法来估计/计算基于我定义的统一着色器中所需的寄存器数量。是否有任何指南或规则?

例如,我假设大小达到 vec4 的变量需要 1 个寄存器而 mat4 需要 4 个寄存器是否正确?
是否有任何规则可用于此目的?

最佳答案

图形硬件对于任何此类估计而言都过于多样化。甚至你看似简单的假设:

variables up to vec4 in size require 1 register and mat4 require 4 registers?



这在许多现代硬件上是不正确的。以前是这样,但那是几年前的事了。特别是如果你在谈论个人 uniform变量;编译器可以用它们玩各种游戏。

甚至没有远程准确的方法来估计一段 GLSL 代码消耗的此类资源的数量。您可以计算您的代码使用的统一组件的数量,但这是因为 OpenGL 会告诉您如何去做。除此之外,你无能为力。

关于opengl - 估计 GLSL 着色器所需的寄存器数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51781227/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com