
提示コードですが#verison 450
というバージョン指定をコメントアウトしても以下のコンソールのエラーが出るのですがグラフィックスドライバーを更新する方法が知りたいです。アップデートしても 4.2が使えません。ウインドウズでは使えるのですががなぜubuntuでは使えないのでしょうか?
参考サイト: https://handyradar.org/768802-opengl-glsl-4-5-on-XENBHI-article
参考サイト: https://askubuntu.com/questions/1004544/how-to-install-the-open-source-intel-drivers-to-get-opengl-4-5
参考サイト: https://en.wikipedia.org/wiki/OpenGL_Shading_Language
試したこと
参考サイトを参考にドライバ更新
Console
shigurechan@shigurechan-System-Product-Name:~/prg/TopDownGame$ ./Game Complie Error: Vertex Shader Complie Error: Vertex Shader0:4(10): error: GLSL 4.20 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES Complie Error: Fragment Shader Complie Error: Fragment Shader0:4(10): error: GLSL 4.20 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, and 3.00 ES Program Info Log: error: linking with uncompiled/unspecialized shadererror: linking with uncompiled/unspecialized shader プログラムリンク失敗 Segmentation fault (コアダンプ)
Window
// ##################################### クライアントコンテキスト ##################################### void FrameWork::Window::setCurrent() { glfwMakeContextCurrent(window); glfwSwapInterval(1); //垂直同期 //マウス移動 if (GLFW_NOT_INITIALIZED == glfwRawMouseMotionSupported()) { std::cerr << "glfwRawMouseMotionSupported() 初期化出来ません。" << std::endl; assert(0); } // OpenGL Verison 4.5 Core Profile を選択する glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); //アライメント glEnable(GL_TEXTURE_2D); //テクスチャを有効 glEnable(GL_ALPHA_TEST); //アルファテスト glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //ブレンドタイプ glEnable(GL_BLEND); //ブレンド有効 glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE); //半透明 glEnable(GL_CULL_FACE); //カリング 有効 glCullFace(GL_BACK); //裏面を無効 glEnable(GL_MULTISAMPLE); //イベント処理 glfwSetWindowUserPointer(window, this); //このインスタンスのthis glfwSetWindowSizeCallback(window, Resize); //ウインドウサイズを変更する時に呼び出す処理 glfwSetDropCallback(window, DragAndDrop); //ドラック&ドロップ glfwSetScrollCallback(window, MouseScroll); //マウスのホイール glfwSetCharCallback(window, KeyInputChar); //テキスト入力 glfwSetKeyCallback(window, KeyInput); //キー入力 glfwSetCursorPosCallback(window, MouseMove); //マウスが動いたとき glfwSetInputMode(window, GLFW_RAW_MOUSE_MOTION, GLFW_TRUE); atexit(glfwTerminate); //プログラム終了時の処理を登録 }
Vertex Shader
glsl
1/*######################################################################### 2# 3###########################################################################*/ 4//#version 420 5#version 110 6 7 8 9 10// ###################### ###################### 11layout(location = 0) in vec3 vertexPosition; 12layout(location = 1) in vec2 vertexUV; 13 14// ###################### ###################### 15layout(location = 2) out vec2 vUV; //UV 16 17// ###################### Uniform ###################### 18uniform mat4 uScale; 19uniform mat4 uRotate; 20uniform mat4 uTranslate; 21uniform mat4 uViewProjection; 22 23void main() 24{ 25 vec4 vertex = vec4(vertexPosition,1.0); 26 mat4 model = uTranslate * uRotate * uScale; 27 gl_Position = (uViewProjection * model) * vertex; 28 29 vUV = vertexUV; 30} 31
Fragment shader
glsl
1 2//#version 420 3 4out vec4 fragment; 5 6 7layout (location = 2) in vec2 UV; 8 9uniform sampler2D screenTexture; 10 11void main() 12{ 13 14 fragment = texture(screenTexture, UV); 15} 16

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。