it-swarm.com.de

Kivy erkennt OpenGL 2.0 nicht

Ich habe beschlossen, einige Programme in Kivy Cross Platform zu programmieren und Kivy erfolgreich auf meinem Computer zu installieren. Das Problem ist, dass ich beim Ausführen meines Codes diese Fehlermeldung bekomme: 

[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.

Und diese Fehlerbox erscheint:

Kivy Fatal Error

Ich habe die OpenGL-Version meiner GPU über GPU Caps Viewer überprüft, um mich auf OpenGL Version 2.1 zu verifizieren, aber Kivy erkennt OpenGL 2.1 nicht und verwendet stattdessen GDI Generic von Microsoft. Ich habe im Internet etwas recherchiert und herausgefunden, dass der beste Weg, dieses Problem zu lösen, darin besteht, den Treiber Ihrer Grafikkarte von Ihrem Grafikkartenhersteller zu aktualisieren. In meinem Fall funktionierte dies jedoch nicht. 

Ich habe meine Grafiktreiber aktualisiert (Ich verwende NVIDIA GeForce GT 435M unter 64-Bit-Windows 8). 

Meine Frage ist: Gibt es eine Möglichkeit, Kivy vom generischen Treiber GDI zum NVIDIA-Treiber wechseln zu lassen? Oder gibt es woanders ein Problem?

12
M Brank

Unter Windows 7 pro 32bit wurde Config.set('graphics', 'multisamples', '0') durch Hinzufügen des Fehlers für mich behoben. (Update: Dies funktioniert auch unter 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 __== '__main__':
    MyApp().run()

Nach der Änderung wird die OpenGL-Version korrekt gemeldet:

[INFO] [GL] GLEW-Initialisierung war erfolgreich 

[INFO] [GL] OpenGL-Version <2.1.0 - Build 8.15.10.2281>

12
576i

Winkel-Backend für py3.5 + 

pip install kivy.deps.angle 
set KIVY_GL_BACKEND=angle_sdl2

Es funktioniert perfekt unter Windows 10 und seine Lösung für das obige Problem. Multisample funktioniert in meinem Fall nicht

5
Yash

Ich benutze Python 3.6 und Windows 8.1. Funktioniert auch unter Windows 10.
Diese Lösung löst das Problem in den meisten Fällen:
.
1. Klicken Sie mit der rechten Maustaste auf This PC und öffnen Sie Properties.
2. Gehen Sie zu Erweiterte Systemeinstellungen.
3. Klicken Sie auf Umgebungsvariablen.
4. Klicken Sie auf Neu in Benutzervariablen für ---.
5. Geben Sie KIVY_GL_BACKEND in Variablenname ein.
6. Setzen Sie angle_sdl2 in Variable value.
7. Python neu starten.

Hier ist ein YouTube-Video mit diesen Schritten: https://www.youtube.com/watch?v=ATK9w2AiDeM

3
Khaled Dallah

Wenn Sie immer noch das Problem haben, versuchen Sie Folgendes:

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

es hat bei mir funktioniert (win10, opengl3.1, py3.6)

3
Jack Newbile

Ändern Sie den Schlüsselwert für Multisamples in der Konfigurationsdatei (% HOMEPATH% \. Kivy\config.ini für mich) von multisamples = 2 in multisamples = 0 .

2

Dies scheint ein bekannter Fehler in der aktuellen Version von kivy zu sein und wird bereits in ihrem Issue-Tracker gemeldet. Ich denke, es gibt keinen (einfachen) Weg, um dieses Problem zu lösen. Ein Wechsel zu einer älteren Version kann hilfreich sein.

2
BDL

Für alte eingebettete Grafiken wie Intel GMA 965 unter Windows 10:

zusätzlich zum Setzen von Multisamples auf 0,
versuchen Sie es mit dem Fix-Tool von pal1000 https://github.com/pal1000/save-legacy-intel-graphics

(Weitere Informationen unter https://community.khronos.org/t/i-have-opengl-3-1-but-kivy-says-that-i-have-only-1-1/ 103980/6 und https://stackoverflow.com/a/57406551/11284684 )

0

setzen Sie dies in Ihren Code und es wird funktionieren 

von kivy import Config

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