27 марта 2020: Вопрос сводится к тому, как запускать приложения на видеокарте Nvidia. Если видеокарта Intel включена, версия OpenGL составляет 4,6 для Nvidia и Intel GPU в соответствии с программным обеспечением GPU-Z. Но, если отключить Intel, чтобы запустить приложение с помощью Nvidia, приложение вылетает; GPU-Z показывает версию 1.1 OpenGL. Итак, как я могу запустить приложение с видеокартами Nvidia?
Примечания: 1. Я попытался добавить приложение в настройках графики, чтобы использовать высокопроизводительный графический процессор, но приложение использует графический процессор Intel. 2. Также не удалось добавить приложение в панель управления Nvidia.
16 марта 2020 года: я выполнял код example1 в Nano GUI в Windows 10. Программа работает, когда я подключаю свой дисплей с помощью кабеля HDMI (подключенного к материнской плате), но вылетает без каких-либо ошибок с помощью кабеля DP (подключенного к графической карте NVIDIA). В моей системе установлены Intel UHD Graphics 630 и NVIDIA GeForce GT 730. Версия драйвера NVIDIA - 26.21.14.4250.
Я запустил простой код OpenGL в режиме отладки, и программа вылетает при функции glfwInit()
. Ошибка в
libEGL!eglDestroyImageKHR
Вот пример кода, который падает с портом DP и работает с портом HDMI.
// #include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow *window);
// settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
int main()
{
// glfw: initialize and configure
// ------------------------------
glfwInit();
// glfw window creation
// --------------------
GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
// render loop
// -----------
while (!glfwWindowShouldClose(window))
{
// glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc.)
// -------------------------------------------------------------------------------
glfwSwapBuffers(window);
glfwPollEvents();
}
// glfw: terminate, clearing all previously allocated GLFW resources.
// ------------------------------------------------------------------
glfwTerminate();
return 0;
}