Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 08, 2025 18:09

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Linux mit Intel 4000, Treiber
BeitragVerfasst: Mo Dez 29, 2014 20:05 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1282
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich habe verschiedene Linux-Distributionen ausprobiert, bei keiner brachte ich OpenGL > 3.0 hin.
Kann es sein, das es ein sehr grosser Aufwand ist, dem Intel 4000 OpenGL 4.0 zu entlocken ?

Unter Windows läuft es ohne Probleme mit OpenGL 4.0.

Auf meinem alten betagten Intel Atom mit NVidia ION-Grafik, läuft Linux mit 3.3.

Ich habe versucht Intel(R) Graphics Installer for Linux* 1.0.7 https://01.org/linuxgraphics/downloads

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Mo Dez 29, 2014 21:52 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Für OpenGL 4.0 brauchst du noch etwas Geduld:

http://www.phoronix.com/scan.php?page=news_item&px=MTc3OTk

Eigentlich sollte der aktuelle Linux-Treiber bereits OpenGL 3.3 unterstützen. Wenn nicht, bleibt dir noch Mesa 3D als Alternative.

Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Di Dez 30, 2014 16:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1282
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Wie installiere ich Mesa 3D ?

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Di Dez 30, 2014 21:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Normalerweise über deinen Package-Manager. Hier ist eine Anleitung speziell für Ubuntu.

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Mi Dez 31, 2014 22:06 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1282
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich habe folgendes gemacht:
Code:
  1. 1.) Add the PPA Repository
  2.   $ sudo add-apt-repository ppa:oibaf/graphics-drivers
  3. 2.) Update sources
  4.   $ sudo apt-get update
  5. 3.) Dist-upgrade (rebuilds many packages)
  6.   $ sudo apt-get dist-upgrade
  7. 4.) Then I rebooted.


Das spuckt meine Versionsabfrage aus:
Code:
  1. GL_VENDOR: Intel Open Source Technology Center
  2.  
  3. GL_RENDERER: Mesa DRI Intel(R) Ivybridge Desktop
  4.  
  5. GL_VERSION: 3.0 Mesa 10.5.0-devel (git-be0311c 2014-12-31 trusty-oibaf-ppa)
  6.  
  7. GL_SHADING_LANGUAGE_VERSION: 1.30 

Und dies glxinfo:

Code:
  1. tux@tux-To-be-filled-by-O-E-M ~ $ glxinfo | grep OpenGL
  2. OpenGL vendor string: Intel Open Source Technology Center
  3. OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Desktop
  4. OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.5.0-devel (git-be0311c 2014-12-31 trusty-oibaf-ppa)
  5. OpenGL core profile shading language version string: 3.30
  6. OpenGL core profile context flags: (none)
  7. OpenGL core profile profile mask: core profile
  8. OpenGL core profile extensions:
  9. OpenGL version string: 3.0 Mesa 10.5.0-devel (git-be0311c 2014-12-31 trusty-oibaf-ppa)
  10. OpenGL shading language version string: 1.30
  11. OpenGL context flags: (none)
  12. OpenGL extensions:
  13. OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.5.0-devel (git-be0311c 2014-12-31 trusty-oibaf-ppa)
  14. OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
  15. OpenGL ES profile extensions:
  16. tux@tux-To-be-filled-by-O-E-M ~ $ ^C
  17.  

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 01:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Dann hast du alles richtig gemacht, so wie ich das sehe:
mesa3d.org hat geschrieben:
OpenGL 3.3 is only available if requested at context creation because compatibility contexts are not supported.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 17:01 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1282
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
OpenGL 3.3 is only available if requested at context creation because compatibility contexts are not supported.

Wo hast du dieser Text gefunden ?

Wen ich es richtig verstehe, kann ich OpenGL 3.3 auf meinem Intel vergessen ?

Was noch komisch ist, auf meinen NVidia ION kommt folgende Auswahl bei Treiberverwaltung, bei dem Intel ist sie leer.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 18:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
mathias hat geschrieben:
Wo hast du dieser Text gefunden ?
In den Release Notes, zum Beispiel hier: http://mesa3d.org/relnotes/10.4.html

mathias hat geschrieben:
Wen ich es richtig verstehe, kann ich OpenGL 3.3 auf meinem Intel vergessen ?
Nein, das hast du falsch verstanden. Aber du musst beim Erstellen des OpenGL-Kontextes explizit angeben, dass du
- einen Core-Kontext haben willst (also einen Kontext ohne die deprecated Funktionen)
- OpenGL 3.3 haben willst

Wie das geht, weißt du doch inzwischen auch, ansonsten nochmal Tutorial OpenGL3 Zeichenkontext lesen. :)
Die Ausgabe von glxinfo, die du gepostet hast, zeigt ja, dass es bei dir funktioniert.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 18:29 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1282
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Wie das geht, weißt du doch inzwischen auch, ansonsten nochmal Tutorial OpenGL3 Zeichenkontext lesen. :)

Ich verwende die Komponente OpenGLContext von Lazarus.

Der Context erstelle ich folgendermassen.
Müsste ich den Code aus dem Tutorial hier reinflicken ?
Code:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   InitOpenGL;
  4.   OpenGLControl1.Align:=alClient;
  5.   OpenGLControl1.MakeCurrent;
  6.   ReadExtensions;
  7.   ReadImplementationProperties;
  8.  
  9.   InitScene;
  10. end;


Wieso läuft OpenGL 3.3 auf dem ION ohne spezielle Contexterstellung ?

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 18:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Wie das mit der Lazarus-Komponente geht, kann ich dir nicht beantworten.

mathias hat geschrieben:
Wieso läuft OpenGL 3.3 auf dem ION ohne spezielle Contexterstellung ?
Weil du da den proprietären nvidia-Treiber drauf hast, der scheinbar auch für OpenGL 3.3 einen Compatibilty-Context zulässt - wozu auch immer man das brauchen könnte. Ich finde, wenn man OpenGL >= 3.1 einsetzt, sollte man Nägel mit Köpfen machen und auf alles verzichten, was deprecated ist.

Die OpenSource-Treiber laufen alle (nicht nur Intel) über Mesa3D, wo man für OpenGL > 3.0 nur Core-Contexts bekommt. Wenn man keinen Core-Context anfordert, bekommt man dementsprechend auch nur OpenGL 3.0 im GL_VERSION-String.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 19:57 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1282
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich habe OpenGLContext genauer angeguckt, die Funktion ist schon eingebaut. :D

Programm läuft. :P

Code:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   InitOpenGL;
  4.   OpenGLControl1.Align:=alClient;
  5.  
  6.   OpenGLControl1.OpenGLMajorVersion := 3;  // Problem
  7.   OpenGLControl1.OpenGLMinorVersion := 3;  // gelöst
  8.  
  9.   OpenGLControl1.MakeCurrent;
  10.   ReadExtensions;
  11.   ReadImplementationProperties;
  12.  
  13.   InitScene;
  14. end;


Die Version-Abfrage klappt nicht ganz.

Sie spuckt immer noch 3.0 aus.

Für die richtige Version gibt es sicher auch etwas gescheiteres ?

Code:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3.   units: GLint;
  4. begin
  5.   InitOpenGL;
  6.   OpenGLControl1 := TOpenGLControl.Create(Self);
  7.   OpenGLControl1.Parent := Self;
  8.   OpenGLControl1.Visible := False;
  9.   OpenGLControl1.Align := alClient;
  10.   OpenGLControl1.MakeCurrent;
  11.  
  12.   OpenGLControl1.OpenGLMajorVersion := 3;
  13.   OpenGLControl1.OpenGLMinorVersion := 3;
  14.  
  15.   ReadExtensions;
  16.   ReadImplementationProperties;
  17.  
  18.   Memo1.Text :=
  19.     'GL_VENDOR: ' + glGetString(GL_VENDOR) + #13#10#13#10 + 'GL_RENDERER: ' +
  20.     glGetString(GL_RENDERER) + #13#10#13#10 + 'GL_VERSION: ' +
  21.     glGetString(GL_VERSION) + #13#10#13#10 + 'GL_SHADING_LANGUAGE_VERSION: ' +
  22.     glGetString(GL_SHADING_LANGUAGE_VERSION) + #13#10#13#10 + 'GL_EXTENSIONS: ' +
  23.     glGetString(GL_EXTENSIONS);
  24.  
  25.   glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, @units);
  26. end;

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 20:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Bei einem Core-Profil macht liest man Versionen i.d.R. so aus :
Code:
  1. glGetIntegerv(GL_MAJOR_VERSION, &glVersionMajor);
  2. glGetIntegerv(GL_MINOR_VERSION, &glVersionMinor);


Zum Erstellen geht man dann so vor :
- Normalen Context erstellen
- Versionen mit glGetIntegerv auslesen
- Mit diesen Versionen dann einen Core-Kontext erstellen

Aber MESA macht hier ja wohl was anders.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 21:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Sascha Willems hat geschrieben:
Zum Erstellen geht man dann so vor :
- Normalen Context erstellen
- Versionen mit glGetIntegerv auslesen
- Mit diesen Versionen dann einen Core-Kontext erstellen
Warum macht "man" (Quelle? :wink: ) das eigentlich so? Ich mache es jedenfalls anders.

Wenn ich ein Programm schreibe, weiß ich doch, welche OpenGL-Version benötigt wird und fordere diese dann bei der Kontexterstellung an. Entweder es geht gut, oder man hat eben Pech gehabt. Aber warum sollte ich einen 4.5 Kontext erstellen, wenn ich nur 3.3 brauche? Ich sehe darin keinen Sinn. Vielmehr besteht doch sogar noch die Gefahr, dass eventuell einige Funktionen/Parameter/Vorgehensweisen in der neuen OpenGL-Version deprecated sind oder eine andere Bedeutung bekommen haben.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 21:42 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1282
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Die komplizierte Treiberinstallation hätte ich mir sparen können.

Dank diesen beiden Zeilen im Quellcode,
Code:
  1.   OpenGLControl1.OpenGLMajorVersion := 3;
  2.   OpenGLControl1.OpenGLMinorVersion := 3;


läuft mein Programm, auf anhieb mit der Live-Version von Linux-Mint 17.1.

Jetzt muss ich nur noch eine Fehlerabfrage einbauen, wen der Context nicht erstellt werden konnte.

PS:Wen ich den Context auf 3.3 setze, müsste dann ein Fehler bei glBegin und glEnd kommen ?

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linux mit Intel 4000, Treiber
BeitragVerfasst: Do Jan 01, 2015 22:02 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
@awesome:

Zitat:
Warum macht "man" (Quelle? :wink: )


SDL macht das z.B. so.

@mathias:
Es kommt definitiv ein Fehler, wenn du deprecated functions auf einem nicht-abwärtskompatiblen Kontext nutzt ;)

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]