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

118 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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启动推荐
使用提供的启动脚本:
```bash
./run_with_nvidia.sh
```
这个脚本会:
- 自动检测NVIDIA GPU
- 设置正确的环境变量
- 强制应用程序使用NVIDIA GPU
- 显示详细的GPU信息
### 方案2手动设置环境变量
如果你想手动启动,使用以下命令:
```bash
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
python main.py
```
### 方案3系统级GPU切换
你也可以使用`prime-select`工具永久切换到NVIDIA GPU
```bash
sudo prime-select nvidia # 切换到NVIDIA
sudo prime-select intel # 切换回Intel省电
```
## 诊断工具
运行诊断脚本来检查你的系统状态:
```bash
./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驱动**
```bash
nvidia-smi
```
2. **验证OpenGL**
```bash
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep OpenGL
```
3. **重新安装NVIDIA驱动**(如果需要):
```bash
sudo apt purge nvidia-*
sudo apt autoremove
sudo apt install nvidia-driver-535
sudo reboot
```
## 性能优化
使用NVIDIA GPU后你可以
- 启用更高质量的渲染设置
- 使用更复杂的着色器效果
- 提高分辨率和帧率
记住使用NVIDIA GPU会消耗更多电量在笔记本电脑上使用时请注意电池续航。