【问题标题】:What causes "apply_selection_policy_once: prefer use of removable GPUs" on High Sierra是什么导致 High Sierra 上出现“apply_selection_policy_once:更喜欢使用可移动 GPU”
【发布时间】:2021-05-13 17:21:49
【问题描述】:

问题:

在我的用户群中安装的众多 macOS High Sierra 中,只有一个用户在我的应用程序 Isadora 中遇到以下错误:

apply_selection_policy_once: prefer use of removable GPUs (via com.troikatronix.isadora(preferences):GPUSelectionPolicy->preferRemovable)

这会在应用启动期间出现,并在第一次尝试创建共享 OpenGL 上下文时导致崩溃。

背景

这不是我的软件直接生成的消息。相反,我只能推断它是由 OpenGL 驱动程序或操作系统本身生成的。

此消息似乎涉及名为 GPUSelectionPolicy documented here 的 plist 属性,它与 eGPU 的使用有关。

在生成此错误时,用户没有将 eGPU 连接到计算机,但他之前已连接了 eGPU。他运行了 NVIDIA 驱动程序管理器,但选择了“默认 macOS 图形驱动程序”

尝试修复

由于此属性未包含在我的应用程序的 plist 中,我的直接响应是添加它并将值设置为“avoidRemovable”以强制操作系统完全避免使用 eGPU。这并没有解决问题。

消息中显示“com.troikatronix.isadora(preferences)”的部分似乎表明此消息来自 ~/Library/Preferences/com.troikatronix.isadora 的文件。

我已指示用户尝试这些修复

  1. 删除 ~/Library/Preferences/com.troikatronix.isadora 然后重新启动程序
  2. 创建一个新的用户帐户,重新启动计算机并登录,然后启动程序
  3. 在他的驱动程序或外部创建一个新的 High Sierra 分区,看看崩溃是否仍然存在

我正在等待他对这些测试的回复,但希望发布此错误,以防有聪明人立即提供答案。

(注意:在 Google 上搜索文本“apply_selection_policy_once”会返回一个确切的结果,它没有讨论此消息。所以似乎很少见。)

【问题讨论】:

    标签: macos opengl


    【解决方案1】:

    我有类似的问题,但错误略有不同,即

    2019-07-28 00:50:09.962 Wireshark[13896:168862] apply_selection_policy_once: prefer use of removable GPUs (via org.wireshark.Wireshark:GPUSelectionPolicy->preferRemovable)
    

    除了我的 eGPU 是 Blackmagic eGPU,我和你的背景完全一样:

    • 在生成此错误时没有连接到计算机的 eGPU,但之前连接了 Blackmagic eGPU。

    你的建议我试过了,问题还是没有解决。

    • 完全卸载应用程序 (wireshark)
    • 创建一个新的用户帐户
    • 重新安装 macOS
    • 对硬盘进行分区并安装新的 macOS
    • NVRAM(启动时按 command + option + P + R)

    另外,我安装了wireshark后,blackmagic eGPU就完全不行了。换句话说,插入Blackmagic eGPU后计算机会崩溃每次

    希望我的情况可以提供更多信息。

    【讨论】:

      【解决方案2】:

      MacOS 会自动为使用该应用程序的每个应用程序创建一个首选项文件。需要删除此文件才能解决问题。

      解决方法如下:

      1. 删除文件 ~/Library/Preferences/com.XXX.plist,其中 XXX 是应用程序包中的 Info.plist 文件中的应用程序包标识符。在我的例子中,它的 XXX 是“troikatronix.isadora”,所以完整的文件名是

        ~/Library/Preferences/com.troikatronix.isadora.plist
        
      2. 重启电脑

      3. 重新启动应用程序

      我已将“GPUSelectionPolicy”属性添加到 Info.plist 文件中,其值为“avoidRemovable”,希望将来能防止此问题。

      但是,需要注意的是,上述解决方案似乎适用于在 Info.plist 文件中未设置 GPUSelectionPolicy 属性的先前版本。

      我仍然不清楚这个问题最初是如何产生的。如果您有更多关于如何发生这种情况的信息,请将它们添加到 cmets。

      【讨论】:

        【解决方案3】:

        我在 Visual Studio Code 的嵌入式终端中获得了 CLI 输出 apply_selection_policy_once: prefer use of removable GPUs,因为我在 Visual Studio Code 应用程序上启用了 Prefer External GPU(在 Finder 中右键单击,然后 获取信息)。显然,它将偏好传播到子进程。取消选中复选框为我解决了问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-02-29
          • 1970-01-01
          • 2018-11-18
          • 1970-01-01
          • 2011-08-28
          • 2015-08-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多