【问题标题】:Dedicated Nvidia GPU won't draw OpenGL专用的 Nvidia GPU 不会绘制 OpenGL
【发布时间】:2017-09-15 05:41:18
【问题描述】:

我的设置包括用于日常任务的板载 Intel 集成 GPU 和用于图形密集型应用程序的高性能 Nvidia GPU。我正在开发一个 OpenGL 3.3(核心配置文件)应用程序(使用着色器,而不是固定功能管道)。默认情况下,我的应用程序在 Intel GPU 上运行并且运行良好。但是如果我尝试在 Nvidia 上运行它,它只会显示黑屏。

现在是有趣的部分。 OpenGL 上下文被正确加载,并且我为调试而绘制的世界坐标轴实际上被绘制(GL_LINE)。出于某种原因,Nvidia 没有绘制任何 GL_POLYGONs 或 GL_QUADs。

有没有人经历过类似的事情,你认为这里的罪魁祸首是什么?

【问题讨论】:

  • 您使用的是核心配置文件吗? - 见OpenGL GL_POLYGON Not Functioning Properly
  • 我正在使用核心配置文件 OpenGL 3.3。我没有设置前向兼容性位。
  • 在 OpenGL 3.3 核心配置文件中,GL_POLYGON、GL_QUADS 和 GL_QUAD_STRIP 似乎已被弃用。出于某种原因,英特尔无论如何都会绘制它们,但 Nvidia 也开始绘制它们,只要我用 GL_TRIANGLES 等替换它们。非常感谢!

标签: c++ opengl graphics


【解决方案1】:

GL_POLYGONGL_QUADSGL_QUAD_STRIP 似乎已从 OpenGL 3.3 核心配置文件中删除。出于某种原因,Intel 无论如何都会绘制它们,但 Nvidia 也开始绘制它们,只要我用 GL_TRIANGLES 等替换它们。如果出现此类问题,请始终检查已删除的功能。

【讨论】:

  • 除非驱动程序在使用已弃用的函数时报告错误(glGetError() == GL_INVALID_XXX),否则它仍然是一个错误。
猜你喜欢
  • 2014-03-19
  • 2015-01-10
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
相关资源
最近更新 更多