質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

2回答

1452閲覧

ubuntu [GLSL 4.20 is not supported] グラフィックスドライバを更新する方法が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

0グッド

0クリップ

投稿2022/02/02 00:57

編集2022/02/03 02:36

提示コードですが#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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

参考サイトコマンド
[ sudo apt update && sudo apt upgrade ] を実行してドライバを更新したら動きました。

参考サイト:https://handyradar.org/768802-opengl-glsl-4-5-on-XENBHI-article

投稿2022/02/02 13:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ader0: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
↑この様なエラーが発生していますので、バージョン4はサポートされていないのではないでしょうか。

また、Ver4.2がサポートされていてもGLSLの記述は"#version 410 core"と記述しなければならないというネット上の情報も確認されました。

OpenGL version GLSL version GLSL string
4.0 400 "#version 400 core"
4.1 410 "#version 410 core"
4.2 420 "#version 410 core"
4.3 430 "#version 430 core"

バーテックスシェーダーで #version 420 の行を #version 410 core
と書き換えたらどうなりますか。

投稿2022/02/02 02:10

cure_fontaine

総合スコア137

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/02/02 02:24

同じエラーになります。同じエラーコードです。
cure_fontaine

2022/02/02 02:44

https://teratail.com/questions/363113 ↑この中で、「別バージョンで試した」とあり解決しています。方法の詳細は分かりませんが、類似した質問をしていますので同じ方法で対処したらどうですか?
退会済みユーザー

退会済みユーザー

2022/02/02 12:52

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 1); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); はい。上記のようにバージョンを下げたのですが同じエラーが出て4.2note supprotedと表示されます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問