web-dev-qa-db-ja.com

KivyがOpenGL 2.0を検出しない

私は、Kivyクロスプラットフォームでプログラミングを行うことにし、コンピューターにKivyを正常にインストールしました。問題は、コードを実行すると次のエラーが発生することです。

[INFO              ] [Kivy        ] v1.9.1
[INFO              ] [Python      ] v3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]
[INFO              ] [Factory     ] 179 symbols loaded
[INFO              ] [Image       ] Providers: img_tex, img_dds, img_gif, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO              ] [OSC         ] using <thread> for socket
[INFO              ] [Window      ] Provider: sdl2
[INFO              ] [GL          ] GLEW initialization succeeded
[INFO              ] [GL          ] OpenGL version <b'1.1.0'>
[INFO              ] [GL          ] OpenGL vendor <b'Microsoft Corporation'>
[INFO              ] [GL          ] OpenGL renderer <b'GDI Generic'>
[INFO              ] [GL          ] OpenGL parsed version: 1, 1
[CRITICAL          ] [GL          ] Minimum required OpenGL version (2.0) NOT found!

OpenGL version detected: 1.1

Version: b'1.1.0'
Vendor: b'Microsoft Corporation'
Renderer: b'GDI Generic'

Try upgrading your graphics drivers and/or your graphics hardware in case of problems.

The application will leave now.

そして、このエラーボックスが飛び出します:

Kivy Fatal Error

GPU Caps Viewerを使用してOpenGLバージョンのGPUを確認し、OpenGLバージョン2.1まで確認しましたが、KivyがOpenGL 2.1を検出せず、デフォルトでGDI Microsoftからのジェネリックです。インターネットで調査し、この問題を解決する最善の方法は、グラフィックカードの製造元からグラフィックカードのドライバーを更新することであることがわかりましたが、私の場合、これはうまくいきませんでした。

グラフィックドライバーを更新しました(64ビットWindows 8でNVIDIA GeForce GT 435Mを実行しています)。

私の質問は: KivyにGDI汎用ドライバーからNVIDIAドライバーに切り替えさせる方法はありますか?それとも他の場所に問題がありますか?

17
Matic Brank

Windows 7 Pro 32ビットでConfig.set('graphics', 'multisamples', '0')を追加すると、エラーが解決しました。 (更新:これはWindows 10でも機能します。)

import kivy 
kivy.require('1.9.1') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.label import Label

# add the following 2 lines to solve OpenGL 2.0 bug
from kivy import Config
Config.set('graphics', 'multisamples', '0')


class MyApp(App):

    def build(self):
        return Label(text='Hello world')

if __name__ == '__main__':
    MyApp().run()

変更後、OpenGLバージョンは正しく報告されます。

[情報] [GL] GLEWの初期化に成功しました

[情報] [GL] OpenGLバージョン<2.1.0-ビルド8.15.10.2281>

14
576i

Python 3.6とWindows 8.1を使用しています。Windows10でも動作します。
ほとんどの場合、このソリューションは問題を解決します:

1。 This PCを右クリックして、Propertiesを開きます。
2。 システムの詳細設定に移動します。
3。 環境変数をクリックします。
4。 ユーザー変数---新規をクリックします。
5。 KIVY_GL_BACKEND変数名に入れます。
6。 angle_sdl2変数値に入れます。
7。 Pythonを再起動します

これらの手順を示すYouTubeビデオは次のとおりです。 https://www.youtube.com/watch?v=ATK9w2AiDeM

7
Khaled Dallah

Py3.5以降のAngleバックエンド

pip install kivy.deps.angle 
set KIVY_GL_BACKEND=angle_sdl2

それは完全にwindows 10で動作し、上記の問題の解決策です。私の場合、マルチサンプルは機能しません

7
Yash

問題が解決しない場合は、次を試してください。

    import os
    os.environ['KIVY_GL_BACKEND'] = 'angle_sdl2'

それは私のために働いた(win10、opengl3.1、py3.6)

6
Jack Newbile

構成ファイル(私にとっては%HOMEPATH%\。kivy\config.ini)のマルチサンプルキーの値をmultisamples = 2からmultisamples =に変更します。

3

まず、私はPython 3.7を使用しています。

私は最初に以下の指示に従いました:

  1. このPCを右クリックして、[プロパティ]を開きます。
  2. 詳細システム設定に移動します。
  3. [環境変数]をクリックします。
  4. ---の[ユーザー変数]で[新規]をクリックします。
  5. KIVY_GL_BACKEND変数名。
  6. angle_sdl2 in変数値。
  7. Pythonを再起動します

次に、私はIDE Windows 10で以下を実行し、それは私のために働いた

from kivy import Config
Config.set('graphics', 'multisamples', '0')
import os
os.environ['KIVY_GL_BACKEND'] = 'angle_sdl2'
import kivy
from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text="Tech With Me")

if __name__== "__main__":
    MyApp().run()
3
Sagai Mangai

これは、kivyの現在のバージョンの既知のバグであるようです すでに問題トラッカーで報告されています 。したがって、この問題を解決する(簡単な)方法はないと思います。古いバージョンに戻すと役立つ場合があります。

2
BDL

これをあなたのコードに入れればうまくいくでしょう

kivy import Configから

Config.set('graphics', 'multisamples', '0')

Windows 10のIntel GMA 965などの古い組み込みグラフィックスの場合:

マルチサンプルを0に設定することに加えて、
pal1000による修正ツールを試してください https://github.com/pal1000/save-legacy-intel-graphics

https://community.khronos.org/t/i-have-opengl-3-1-but-kivy-says-that-i-have-only-1-1/ 103980/6 および https://stackoverflow.com/a/57406551/11284684

0