Direct Rendering Manager: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
categorizzare
m fix link
Riga 39:
 
# Il server X può specificare un insieme di '''diverse dimensioni del buffer''' che desidera allocare ed in seguito bloccare.
# Il client può mappare questi buffersbuffer usando un '''indirizzamento virtuale''' (tramite le [[Application programming interface|API]] DRM).
# Il client può riservare alcuni di questi buffersbuffer all'uso tramite DRM, ad esempio per riempirlo con dei dati e chiedere al DRM di inviare tali dati all'hardware grafico. (Di solito i buffersbuffer più piccoli vengono usati per assicurarsi che il server X possa ottenere il blocco durante i trasferimenti consecutivi tra buffer ed il device grafico, in tal modo il server diviene maggiormente reattivo).
# Il DRM gestisce una coda di '''buffer del DMA''' per ogni contesto GLXContext dell'OpenGL, e si accorge quando è necessario uno switch. Quando risulta necessario cambiare contesto, si tenta di usare un driver specifico (in kernel-space), se questo non è disponibile si ritorna al server X che possiede un metodo generico per il GLXContext switching. Infine il DRM si occupa anche di schedulare le richieste ai vari buffer per evitare di eseguire cambi di contesto inutili.
# Il sistema DMA è generico nel senso che un server X può ottenere delle informazioni in tempo reale ed in seguito richiedere quali operazioni può eseguire sull'hardware presente nella macchina. Il server X si accorge di quale hardware è collegato e decide con quali modalità renderlo disponibile. Questo facilita l'utilizzo di eventuali nuovi device grafici tramite DRI, permettendo successivamente di usare un driver specifico che possa migliorarne le prestazioni.