计算着色器和 Unity3d 在 Ubuntu 22.10 中无法正常运行

计算着色器和 Unity3d 在 Ubuntu 22.10 中无法正常运行

我正在尝试在 Ubuntu 22.10 中使用 Unity3d,更具体地说是一些地形生成资产。这些资产使用计算着色器来计算地形生成。但它在我的系统上不起作用。

我一直在做一些测试GeeX实验室并且计算着色器在该环境中工作。Unity 声称计算着色器在 20.04 中可以工作。

因此,在计算着色器方面,Ubuntu 22.10 和 Unity3d(测试了 2021.3.17f1、2022.2.3f1 以及 2023.1.0b2)之间似乎存在一些不兼容性。由于它应该可以在 Ubuntu 20.04 中工作(我自己无法测试,这是 Unity 声称的),因此 Ubuntu 中一定有一个变化导致了它。

在计算着色器方面,Ubuntu 20.04 和 22.10 之间发生了什么,可能导致它停止为 Unity3d 工作?

仅供参考,我正在使用 nVidia RTX-4080 卡和所有 nVidia 软件包的 525 版本。


更新:一些非常简单的计算着色器似乎在 Unity3d 中运行良好,可能指向 Unity3d,而且这可能是他们的问题。

也许是 DX HLSL 到 OpenGL GLSL 的转换问题?

我自己并不直接使用计算着色器,但 Unity3d 环境中有一些资产和工具广泛使用它们,如果它们不起作用,就很难在 Linux 中使用这些工具,这会极大地阻碍 Linux 开发人员的发展。

到现在为止我并不真正指望有一个解决方案,但是如果有人有能力调试此类问题并且可以至少给我一些关于如何自己调试的提示,那就足够了。


另一个更新,我设法让 Unity 人员用 22.04 对其进行测试(官方不支持,但至少它是一个 LTS,所以希望很快就会推出),他们声称它可以工作。

所以这改变了一些事情。问题是

  • 22.04 和 22.10 之间的差异;或
  • 驱动程序版本的差异;或者
  • 安装中的差异

我确实设法让 Docker 镜像与 Unity3d 和 20.04 一起工作,但它也遇到了同样的问题。我做过将我正在使用的相同的 525 驱动程序放入 Docker 镜像中,因此我将首先尝试驱动程序版本,看看它是否会改变任何东西。

我还将查看是否可以从 Unity3d、Ubuntu 和 nvidia 驱动程序中获取更多日志,看看是否能告诉我任何信息。

答案1

事实证明,解决方案是切换到 Vulkan 而不是 OpenGL。

我遇到了一些麻烦,但主要是我在尝试让 Vulkan 工作时导致了这个问题。我对 Prime、Optimus 和 Bumblebee 感到困惑,这反过来又让我的系统混乱了。

一旦所有这些部分消失,我现在直接使用 nVidia 驱动程序运行,一切都正常运行。

另外,我现在可以在 Unity3d 中创建和使用 HDRP 场景。

相关内容