Q100313:如何在 Mari 中计算虚拟纹理的 GPU 内存使用情况

概括

Mari是一款对 GPU 要求极高的软件,这意味着在大多数情况下,显卡能够处理的内存量将与应用程序的性能直接相关。

运行Mari所需的内存量始终取决于您创建的项目的大小。

本文将解释可用于计算不同项目大小的虚拟纹理所需的 GPU 内存(通常称为 VRAM)的公式。

更多信息

根据项目大小计算的内存占用量可以简化为以下公式,从而得出Mari进行虚拟纹理计算所需的内存:

Pixel Size x Width x Height x Depth


例如,如果您有一个 32 位通道和 4K 纹理,您可以按以下方式计算将使用的内存量:

32 bit x 4     = 128 bit              ## Where 4 represents R, G, B, A and 32 bits per pixel 
128 bit / 8 = 16 Bytes   ## Convert 128 bits into bytes = 16 Bytes
16 x 4096 = 65536 Bytes   ## Multiplied by the width of the texture layer
65536 x 4096 = 268435456 Bytes ## Multiplied by the height of the texture layer
268435456 x 8 = 2147483648 Bytes ## Multiplied by the number of layers in your layerstack
 Total: 2.147483648 Gigabytes


在上面的例子中,如果你的显卡大约有 4 GB 的内存, Mari仅仅在计算虚拟纹理时就已经会占用你一半以上的专用内存。

当你开始考虑Mari内部用于计算其他功能和着色器的额外进程,以及考虑到你可能打开的任何其他可能使用 GPU 的应用程序(包括 Web 浏览器),就很容易理解为什么有些用户会发现自己很容易耗尽内存。

注意:虚拟纹理也称为虚拟纹理图集或稀疏虚拟纹理 (SVT)。

延伸阅读

可用内存越多越好,您可能还需要了解其他硬件组件的使用情况以及它们对Mari性能的影响,请参阅这篇文章:
Q100078: Mari对硬件组件的使用情况

如果您需要有关 SVT 以及不同硬件如何影响Mari性能的更多信息,请参阅以下文章:
文档: Mari需要使用哪些硬件

要了解如何提高Mari的性能,请参阅以下文章:
Q100188:提升Mari及特定项目的性能

更多帮助

如果您仍然遇到性能问题,请创建支持工单并向我们提供本文中要求的信息:
Q100090:报告Mari问题时需要发送给支持团队的信息

如需了解如何提交支持工单,请参阅本文:
Q100064:如何提交支持工单

    我们很遗憾听到

    请告诉我们