EG/test_opengl.py
2025-08-01 12:40:56 +08:00

64 lines
2.0 KiB
Python
Executable File
Raw Permalink 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.

#!/usr/bin/env python3
"""
简单的OpenGL测试脚本用于验证NVIDIA GPU是否正常工作
"""
import os
import sys
# 设置NVIDIA GPU环境变量
os.environ['__NV_PRIME_RENDER_OFFLOAD'] = '1'
os.environ['__GLX_VENDOR_LIBRARY_NAME'] = 'nvidia'
try:
from panda3d.core import loadPrcFileData
from direct.showbase.ShowBase import ShowBase
print("🔍 测试Panda3D和OpenGL...")
# 基本配置
loadPrcFileData("", "window-type offscreen")
loadPrcFileData("", "win-size 800 600")
class TestApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
# 获取GPU信息
if hasattr(self, 'win') and self.win:
gsg = self.win.get_gsg()
if gsg:
print(f"✅ GPU驱动供应商: {gsg.get_driver_vendor()}")
print(f"✅ GPU渲染器: {gsg.get_driver_renderer()}")
print(f"✅ GPU驱动版本: {gsg.get_driver_version()}")
# 检查OpenGL版本
gl_version = gsg.get_driver_version_major(), gsg.get_driver_version_minor()
print(f"✅ OpenGL版本: {gl_version[0]}.{gl_version[1]}")
if gl_version[0] >= 4 and gl_version[1] >= 3:
print("✅ OpenGL版本满足RenderPipeline要求")
else:
print("❌ OpenGL版本不满足RenderPipeline要求需要4.3+")
else:
print("❌ 无法获取图形状态")
else:
print("❌ 无法创建窗口")
# 立即退出
self.userExit()
print("正在初始化Panda3D...")
app = TestApp()
print("✅ Panda3D初始化成功")
except ImportError as e:
print(f"❌ 导入错误: {e}")
print("请确保Panda3D已正确安装")
sys.exit(1)
except Exception as e:
print(f"❌ 测试失败: {e}")
sys.exit(1)
print("🎉 OpenGL测试完成")