Vulkan 是否适合使用尽可能少的资源的软件? 问题考虑因素和由此产生的问题

问题描述

我正在编写一个状态栏,它应该占用尽可能少的资源,即应该节省电量并且不会从更重要的进程中窃取 cpu-/io-/gpu-time 并将内存使用保持在可接受的水平。 我希望条形图主要呈现简单的形状、图标、文本,但也应该可以实现透明效果或彩虹效果。 状态栏始终可见,但在大多数情况下,它不如用户实际查看的内容重要。

问题

Vulkan(或任何其他 gpu-api)是否比软件渲染器更符合我的要求?

考虑因素和由此产生的问题

如果我理解正确,软件渲染器必须将其帧上传到 GPU 才能显示它们。 只需直接使用 GPU 渲染即可消除数据副本。还有一些渲染技术(例如透明度、模糊)在 GPU 上显然更有效。除了实现简单之外,GUI 程序通常更喜欢软件渲染还有其他原因吗?我可以想象,像 Vulkan 这样的 API 主要是为希望从尽可能多的计算机资源中受益的游戏引擎设计的,在我的用例中可能会产生过多的开销。

解决方法

我想说“不”。 GPU 通常用于批量处理,而不是用于后台任务。

真正的答案是你必须衡量。而且您必须意识到硬件存在差异,因此即使它对您的 PC 有益,但在其他人的 PC 上可能会很烦人(耗尽电池、产生噪音等)。