Strumenti Utente



qt_windows_e_i_driver_opengl_intel

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
qt_windows_e_i_driver_opengl_intel [2015/04/13 09:44]
mickele [Qt, Windows e i driver OpenGL della Intel]
qt_windows_e_i_driver_opengl_intel [2015/04/24 13:06] (versione attuale)
mickele
Linea 1: Linea 1:
-====== Qt, Windows e i driver OpenGL della Intel ======+====== Qt, Windows e i driver OpenGL Intel ======
  
 +Le Qt 5.4 hanno introdotto alcune novità nelle modalità di accesso alle funzioni avanzate delle GPU. Il nuovo meccanismo, che permette di valutare al momento dell'esecuzione come accedere alle librerie grafiche, non sempre però risponde alle attese. E' perciò necessario intervenire manualmente per "indirizzare" le Qt alla scelta migliore.
  
-  configure -opengl desktop+===== Caricamento dinamico OpenGL =====
  
-  configure -opengl es2 +Fino alle Qt 5.4, su piattaforma Windows la scelta di come interfacciare le librerie Qt con le librerie OpenGL poteva avvenire solo in fase di compilazione delle Qt, con l'opzione -opengl del comando configure. Analizziamo prima le opzioni già presenti per passare poi alle novità.
-   +
-   +
-  -opengl dynamic+
  
 +~~READMORE~~
  
 +Con
  
-  * prova la libreria opengl32 e verifica se le funzioni OpenGL 2.0 sono disponibili +  configure.exe -opengl desktop
-  * se il passo precedente ha esito negativo, prova ANGLE +
-  * infine, se tutto è andato storto, prova la libreria opengl32sw.dll; si tratta di una libreria opengl software disponibile con il progetto mesa +
-===== In caso di problemi =====+
  
-Con Windows 7  ed alcuni driver della intel ho ricontrato alcuni problemi nella proceduraIn particolare le librerie riconosceva come funzionante le librerie opengl, cosa in realtà non vera (grazie a mamma Intel!)Perciò era necessario forzare il sistema ad attivare la piattaforma angle+le librerie si interfacciano direttamente con l'implementazione opengl dei driver della scheda grafica. Affinché tutto vada a buon fine è necessario però che siano disponibili le funzioni opengl nella versione 2.0. 
 + 
 +Usando invece il comando 
 + 
 +  configure.exe -opengl es2 
 + 
 +le librerie si interfacciano con le librerie angle che a loro volta fanno da ponte tra comandi opengl e comandi direct3d. Abbiamo in questo caso un sistema leggermente meno performantema meno problemi in caso di driver opengl carenti. 
 + 
 +Con le Qt 5.4 è stata aggiunta l'opzione dynamic. Usando 
 + 
 +  configure -opengl dynamic 
 + 
 +le Qt determineranno runtime le librerie con cui interfacciarsi, con il seguente ordine di priorità: 
 + 
 +  - prima verrà provata la libreria opengl32 che verrà attivata solo se disponibili le funzioni OpenGL 2.0; si tratta dell'opzione desktop vista prima 
 +  - se il passo precedente ha esito negativo, si prova la libreria ANGLE 
 +  - infine, se tutto è andato storto, sarà usata libreria opengl32sw, un implementazione software delle opengl, decisamente carente dal punto di vista delle prestazioni. 
 + 
 +===== In caso di problemi =====
  
-Per farlo è sufficiente impostare la variabile di ambiente QT_OPENGL ad angle.+Con Windows 7  ed alcuni driver della intel ho riscontrato alcuni problemi nella procedura. In particolare mi riferisco a driver compatibili con opengl 2.0, ma non con opengl 2.1. In tal caso viee attivata la libreria opengl32, facendo funzionare tutto tranne i modulo opengl e modulo QtQuick 2, carenze non da poco
  
-  QT_OPENGL=angle+In tal caso è necessario forzare le Qt ad attivare la piattaforma ANGLE, che rende disponibile opengl 2.1 e garantisce il pieno supporto ai due moduli. Per farlo è sufficiente impostare la variabile di ambiente QT_OPENGL ad angle. Procediamo quindi con Start -> tasto destro del mouse su Computer -> Proprietà -> Impostazioni di sistema avanzate -> Variabili d'ambiente e definiamo una nuova variabile QT_OPENGL il cui valore sarà angle. Possiamo scegliere se definrla tra le variabili del singolo utente o tra quelle di sistema (nel qual caso funzioneranno per tutti gli utenti).
  
-In alternativa, se vogliamo che il programma autonomamente adotti le librerie angle, nel codice della funzione main aggiungiamo il metodo+In alternativa, se vogliamo che il nostro eseguibile autonomamente si interfacci alle librerie angle, nel codice della funzione main() aggiungiamo il metodo
  
-  QCoreApplication::setAttribute(Qt::AA_UseOpenGLES)+  QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
  

qt_windows_e_i_driver_opengl_intel.1428911042.txt.gz · Ultima modifica: 2015/04/13 09:44 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email