L'applicazione My .Net Winforms crea tre contesti di rendering OpenGL nella mia finestra principale, quindi consente all'utente di visualizzare altre finestre in cui ogni finestra presenta altri due contesti di rendering (utilizzando uno splitter). Intorno al 26 ° contesto di rendering, le cose iniziano ad andare VERAMENTE lente. Invece di impiegare alcuni millisecondi per eseguire il rendering di un frame, il nuovo contesto di rendering richiede tra 5 e 10 secondi. Funziona ancora, solo DAVVERO LENTAMENTE! E OpenGL NON restituisce alcun errore (glGetError).Esiste un limite al numero di contesti di rendering OpenGL che è possibile creare contemporaneamente?
Le altre finestre funzionano correttamente. Solo i nuovi contesti di rendering dopo un certo numero di rallentamenti. Se chiudo quelle finestre, è tutto a posto - fino a quando non riapuro abbastanza finestre per superare il limite. Ogni contesto di rendering ha il suo thread e ognuno usa un semplice shader. Il rallentamento sembra accadere quando carico una texture. Ma la dimensione della trama non ha alcun effetto sul numero di contesti che posso creare, né la dimensione della finestra OpenGL.
Sono in esecuzione su schede nVidia e lo vedo su diverse GPU con diverse quantità di memoria e diverse versioni di driver. Qual è l'accordo? Esiste un limite al numero di contesti di rendering che un'applicazione può creare?
Qualcun altro ha un'applicazione con un sacco di contesti di rendering che vanno nello stesso momento?
Vedi anche https://community.amd.com/thread/184325 per un riferimento su AMD, ho la sensazione che il conteggio AMD è bassa (+/- 20 CTX?) –