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