我正在编写一个状态栏,它应该占用尽可能少的资源,即应该节省电源,不会从更重要的进程中窃取cpu-/io-/gpu时间,并将内存使用率保持在可接受的水平。我希望条形图主要呈现简单的形状、图标、文本,但也可以呈现透明效果或彩虹效果。状态栏总是可见的,但大多数时候它不如用户实际看到的重要
问题
Vulkan(或任何其他gpu api(比软件渲染器更符合我的要求吗?
考虑因素和由此产生的问题
如果我理解正确,软件渲染器必须将其帧上传到gpu以显示它们。数据拷贝可以通过直接使用gpu进行渲染来消除。此外,一些渲染技术(例如透明度、模糊(在gpu上显然更有效。gui程序通常更喜欢软件渲染,除了实现的简单性之外,还有其他原因吗?我可以想象,像Vulkan这样的API主要是为那些希望从尽可能多的计算机资源中获益的游戏引擎设计的,在我的用例中可能会产生太多的开销。
我想说"否";。GPU通常用于批量处理,而不是用于后台任务。
真正的答案是你必须衡量。你必须意识到硬件存在差异,所以即使这在你的电脑上是有益的,在别人的电脑上也可能很烦人(耗尽电池、引起噪音等(。