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

Aktuelle Zeit: Fr Nov 01, 2024 01:29

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: OpenGL Access Violation
BeitragVerfasst: Do Aug 06, 2009 11:55 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 18, 2009 07:17
Beiträge: 44
Wohnort: Gießen/Hessen
Auch wenn das Folgende nur indirekt etwas mit OpenGL zu tun haben sollte, wollte ich es doch mal posten.

Vor kurzem habe ich meinen Hauptrechner neu aufgestzt, und dabei meine Virtualisierungslösung - VirtualBoxaktualisiert.

Ich verwende diese um meine verschiedenen Entwicklungsumgebungen plattformunabhängig zu halten, so... Nun habe ich also die neue Version 3.0.2r aufgespielt meine alte Virtuelle-Maschine(n) wieder eingespielt und festgestellt das alle meine OpenGL Projekte die ich in FPC / Lazarus erstellt habe nach dem Start sofort eine Access Violation auslösen, egal ob es die Alten oder die Neuübersetzten sind.

Host-System : Windows XP (darauf läuft VirtualBox)
VirtualBox: 3.0.2r

Gast-System: Windows XP (Mit den neuen Treibern für die Gasterweiterung)
Framework: Lazarus/LCL 9.27 (beta)
Compiler: FPC 2.2.5
OpenGL Header: dglOpenGL.pas (3.0.2 )

Kann das jemand bestätigen?

Auch das aufsetzen einer neuen Virtuellen-Maschine hatte leider keinen Erfolg - sofort nach dem Start der OpenGL Progrmme - Access Violation. Ich gehe davon aus das es sich entweder um die VirtualBox handelt (sehr wahrscheinlich), oder der OpenGL-Header Angepasst werden muss. Seltsam ist nur das der TuxRacer doch so halbwegs zu funktionieren scheint - ich bekomme zumindest das Menü angezeigt - , ok... wenn die Strecke geladen werden soll dann schmiert der TuxRacer ab.

PS: Muss ich eventuell die OpenGL.dll austauschen?

_________________
Gruß Andreas (aka DeepCopy) - Sic Luceat Lux

Classified Directive: initialization write in function for finalization, repeat until public case uses begin, if not case type as default, var in virtual override for while, in case of class type type asm until read begin.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 06, 2009 17:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Did you reinstall the Guest Additions? If not you should do so. E.g. the old virtualbox support opengl1.5 and the new up to opengl2.0 . Not that glsl is working with the new version. They probeably need a few more releases for that.
E.g. on my first attempts on getting my opengl applications to work on the old virtual box (opengl1.5) i needed to make some changes to the way the opengl context was created. But the switch to the new virtualbox did not cause problems so far.

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 06, 2009 19:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 18, 2009 07:17
Beiträge: 44
Wohnort: Gießen/Hessen
Thanks for the advice and response,
but as mentioned earlier I did really reinstall the Guest Addions - (German: Mit den neuen Treiber für die Gasterweiterung).

I've found a solution by switching back to the previous version of VirtualBox, im currently running 2.1.2 everything works fine!
But I could not say whether it's the VirtualBox or OpenGL that causing the touble, and sadly I have no time nor the nerve to work it out
nicely.

Anyway, I guess it's best practice not to change a winning team and stick with old one, as long as the problem remains.

Zitat:
Not that glsl is working with the new version. They probeably need a few more releases for that.


That may become an important point for my further OpenGL developments - keep waiting.... one at a time.

_________________
Gruß Andreas (aka DeepCopy) - Sic Luceat Lux

Classified Directive: initialization write in function for finalization, repeat until public case uses begin, if not case type as default, var in virtual override for while, in case of class type type asm until read begin.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 09, 2009 17:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
You may want to try the new 3.04 release. GLSL seems to work now also. Even the gpu-caps fur benchmark works rendering at 5fps.

[EDIT]A word of warning: With the new version i am unable to edit the virtual machine settings :-([/EDIT]

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 09, 2009 18:13 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 18, 2009 07:17
Beiträge: 44
Wohnort: Gießen/Hessen
Nope, 3.04 doesn't do the trick besides It seem's to work faster as the previous version anyway.
Ah, nice ... I've no access violations anymore but simply the OpenGL program won't start. *sad*

My hardware couldn't be the problem, right?
Specs:
* MoBo: Abit AX78 v1.X (AMD770+SB600) (latest BIOS V13)
* Graphic: XFX Geforce 8600GTS
* Processor: AMD 8450 Tri-Core
* 4 Gig - RAM

I've changed the host-system to Linux 2.6.28-14-generic, the strange 3D behaviour remains unchanged, OpenGL seem's neither to work
on a windows-host nor a linux-host for a WindowsXP Sp3 - guest, since VBox version 3+

Haven't had any virtual machine settings problem yet - at least so far -

_________________
Gruß Andreas (aka DeepCopy) - Sic Luceat Lux

Classified Directive: initialization write in function for finalization, repeat until public case uses begin, if not case type as default, var in virtual override for while, in case of class type type asm until read begin.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 09, 2009 19:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich hatte das auch mal ausprobiert und bei mir knallen die Beispiele aus meiner TextSuite auch. Und die laufen selbst mit der schrottigen OpenGL 1.1 Softwareimplementation von Microsoft. Nur mit der neusten VirtualBox klappts net. Ich will aber auch nicht ausschließen, dass die ein Feature entfernt haben was vom Header benutzt wird, ohne das er das sinnvoll überprüft. Müsste ich nur mal schauen, dass ich das mal debugged bekomme und im Falle eines Problemes dann fixe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 11, 2009 16:56 
Offline
DGL Member

Registriert: Do Jun 28, 2007 17:58
Beiträge: 193
Programmiersprache: Pascal, C
Ich hatte die selben Probleme - Allerdings hatte ich nur eine Beta oder Alpha-Version, von daher habe ich es darauf geschoben. Das Gastbetriebsystem ist Windows 7.

_________________
http://audorra.sourceforge.net//http://andorra.sourceforge.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 12, 2009 03:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 18, 2009 07:17
Beiträge: 44
Wohnort: Gießen/Hessen
Ich habe die Lösung des Problems gefunden, zuerst einmal es ist kein Problem von OpenGL oder dem Header der dlgOpenGL.pas... sehr beruhigend!

Ich bin eher zufällig über die Lösung gestolpert, als das ich sagen könnte ich hätte sie gefunden. Beim Erstellen einer neuen VM für 64bit, wollte ich die Mehrprozessor-Unterstützung aktivieren, ich wurde aber von der VBox mit dem Fehler "VT-x/AMD-V nicht verfügbar" zurückgepfiffen.

Ich hatte mich zwar von der SVM-Unterstützung durch den Prozessor in Linux $> /proc/cpuinfo versichert, aber und jetzt kommt's - und auch den Eintrag VIRTUALIZATION im BIOS aktiviert (Phoenix BIOS) - ABER den speziellen Eintrag "SECURE VIRTUAL MACHINE MODE" nicht aktiviert (warum auch -habe ich vorher gedacht- da ich davon ausgegangen bin, das die Virtuellen Maschinen dann einfach nur in einem "Sicheren Modus" laufen :roll: , naja... was ja auch fast stimmt), nach nochmaliger Recherche im Internet habe ich dann den Zusammenhang zwischen SVM und SECURE VIRTUAL MACHINE MODE entdeckt, und das es dabei um um einen 9-teiligen SVM-Befehlssatz für den Prozessor handelt, der es dem Hypervisor (der VirtualBox) erlaubt den Gast im höchsten aller CPL (Current Privilege Levels) - dem CPL-0 - auf der CPU laufen zu lassen, also so, als würde der Gast-VM die Hardware tatsächlich alleine gehören (bis auf ein paar Einschränkungen). Das heißt durch SVM wird quasi ein noch höherer Level als CPL-0 auf der Hostseite (dem Virtualbox-Host) geschaffen, um der Gast-VM zu erlauben Programme und Treiber auf CPL-0 Ebene auszuführen, wer weitere Informationen zum Thema SVM und Virtualisierung haben möchte kann sie hier nachlesen.

Lange Rede kurzer Sinn: Den Eintrag SECURE VIRTUAL MACHINE MODE im BIOS auf ENABLED gestellt den Host hochgefahren, die VM gestartet (mehrere Prozessoren waren jetzt vom Start weg möglich) und bemerkt, daß das Chip-Icon in der Statusbar der Gast-VM nicht mehr ausgegraut war, eine beliebige meiner OpenGL-Anwendungen in der Gast-VM gestartet und ca. ~400 - ~500 FPS bewundert :wink: (ohne nur ~35 FPS).

Die Einstellungen der VirtualBox (gilt für alle meine Konfigurationen 32/64bit - Windows/Linux)

Prozessoren: 2 // oder so viele wie man eben zuweisen möchte
VT-x/AMD-V: aktiviert
Nestet Paging: deaktiviert // sollte auch deaktiviert bleiben - massive Performance-Verluste
Grafikspeicher: 64MB
3D-Beschleunigung: aktiviert
GuestAdditions: installiert;

Kleiner Nachtrag: Wenn man einen Mehrkernprozessor mit SVM Unterstützung hat, aber sich keine Virtuelle Maschine mit Mehrkernprozessor starten lässt (das gilt auch für die alten virtuellen Maschinen!), dann liegt der Verdacht nahe das die BIOS-Einstellungen falsch sind, oder das Mainboard (Chip-Satz) unterstützt SVM nicht richtig. Sollte das Starten mit nur einem Kern dennoch möglich sein kann das dazu führen, das die Virtualbox versucht totzdem über SVM auf die Hardware (hier Grafikkarte) zuzugreifen, und eben genau das die "Access Violations" in der Gast-VM auslöst.

_________________
Gruß Andreas (aka DeepCopy) - Sic Luceat Lux

Classified Directive: initialization write in function for finalization, repeat until public case uses begin, if not case type as default, var in virtual override for while, in case of class type type asm until read begin.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 12, 2009 20:34 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Did you get the dual core feature working at full speed. Al i got is that the system with 2 cores becomes slow.

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 13, 2009 02:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 18, 2009 07:17
Beiträge: 44
Wohnort: Gießen/Hessen
Couldn't say that, besides it's not a dual core feature only it's also a multi core one.

Regarding your problem: Did you disabled the "Nested Paging" feature? This could cause massive performance losses if your host doesn't support it.

_________________
Gruß Andreas (aka DeepCopy) - Sic Luceat Lux

Classified Directive: initialization write in function for finalization, repeat until public case uses begin, if not case type as default, var in virtual override for while, in case of class type type asm until read begin.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 13, 2009 18:53 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
No nested paging is off, with that one on things become even worser. My virtual pc is back to one cpu again, but on showing the desktop it goes peaking at 100% for about a few minutes. Enough experimenting for me now...

_________________
http://3das.noeska.com - create adventure games without programming


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL Access Violation
BeitragVerfasst: Do Jan 16, 2014 12:32 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1278
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich habe die gleich Fehlermeldung "access violation" auf einem PC in der Firma, läuft aber ohne Virtuelle Maschinen etc.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 25 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.011s | 15 Queries | GZIP : On ]