EG/GPU_SETUP_README.md
2025-08-01 12:40:56 +08:00

2.9 KiB
Raw Permalink Blame History

RenderPipeline GPU设置指南

问题描述

你的应用程序在启动时遇到了以下错误:

  • GLSL着色器编译错误#extension directive is not allowed in the middle of a shader
  • 段错误(核心已转储)
  • RenderPipeline渲染效果没有正常显示

根本原因

问题的根本原因是:

  1. OpenGL版本不兼容你的系统默认使用Intel集成显卡OpenGL 3.1但RenderPipeline需要OpenGL 4.3+
  2. GPU切换问题虽然你有NVIDIA RTX 4060显卡支持OpenGL 4.6),但应用程序默认使用集成显卡

解决方案

方案1使用NVIDIA GPU启动推荐

使用提供的启动脚本:

./run_with_nvidia.sh

这个脚本会:

  • 自动检测NVIDIA GPU
  • 设置正确的环境变量
  • 强制应用程序使用NVIDIA GPU
  • 显示详细的GPU信息

方案2手动设置环境变量

如果你想手动启动,使用以下命令:

export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
python main.py

方案3系统级GPU切换

你也可以使用prime-select工具永久切换到NVIDIA GPU

sudo prime-select nvidia  # 切换到NVIDIA
sudo prime-select intel   # 切换回Intel省电

诊断工具

运行诊断脚本来检查你的系统状态:

./diagnose_gpu.sh

这会显示:

  • 硬件信息
  • 驱动状态
  • OpenGL版本
  • RenderPipeline兼容性检查

验证修复

成功修复后,你应该看到:

  • 应用程序启动时显示:Driver Renderer = NVIDIA GeForce RTX 4060 Laptop GPU
  • 没有GLSL编译错误
  • RenderPipeline效果正常显示
  • 没有段错误

技术细节

为什么会出现这个问题?

  1. 双GPU笔记本电脑现代笔记本通常有两个GPU

    • Intel集成显卡省电性能较低
    • NVIDIA独立显卡高性能耗电
  2. 默认GPU选择Linux系统默认使用集成显卡以节省电量

  3. OpenGL版本差异

    • Intel UHD GraphicsOpenGL 3.1不满足RenderPipeline要求
    • NVIDIA RTX 4060OpenGL 4.6(完全满足要求)

环境变量说明

  • __NV_PRIME_RENDER_OFFLOAD=1启用NVIDIA GPU渲染卸载
  • __GLX_VENDOR_LIBRARY_NAME=nvidia强制使用NVIDIA OpenGL库

故障排除

如果仍然有问题:

  1. 检查NVIDIA驱动

    nvidia-smi
    
  2. 验证OpenGL

    __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep OpenGL
    
  3. 重新安装NVIDIA驱动(如果需要):

    sudo apt purge nvidia-*
    sudo apt autoremove
    sudo apt install nvidia-driver-535
    sudo reboot
    

性能优化

使用NVIDIA GPU后你可以

  • 启用更高质量的渲染设置
  • 使用更复杂的着色器效果
  • 提高分辨率和帧率

记住使用NVIDIA GPU会消耗更多电量在笔记本电脑上使用时请注意电池续航。