在 Linux 上,对于 vulkan,普通用户和 root 之间有什么区别?

问题描述 投票:0回答:1

我有一个复杂的计算着色器。在 Windows 和 Linux 上(作为非 root 用户),行为如下:首先使用新的着色器编译运行,需要一段时间来创建管道;后续执行,管道立即加载。

在 Linux 上,在 systemd 下或以 root 身份运行,每次都会花费初始启动时间。为什么?我对 Vulkan 的理解是,一切都是“选择加入”,所以第一个行为让我感到困惑——我假设驱动程序正在自己进行一些管道缓存,但我找不到任何对此的确认——但考虑到这确实发生了,根本情况下发生了什么?

总结: 以常规登录用户身份运行程序,启动(首次启动后)几乎是立即的。 以 root 身份运行程序,每次都与第一次花费相同的时间。

linux systemd vulkan
1个回答
0
投票

我假设驱动程序正在自行执行一些管道缓存

从这个声明中,我们可以推断出您自己没有进行任何缓存吗?如果您不使用

vkGetPipelineCacheData
并自行保留该缓存(并随后加载缓存并在实例化管道时使用它),那么您实际上不应该期望在应用程序的后续运行中提高加载性能.

您的问题不是以 root 身份运行时性能出乎意料地差,而是在不以 root 身份运行时性能出乎意料地好。

© www.soinside.com 2019 - 2024. All rights reserved.