Bocsi, hogy a szónoklatokat ezzel higítom, de kipróbáltam, mit csinál a multithread bekapcsolás.
Röviden: lelassítja a cuccot.
Részletek: (AthlonX2 3600, 32 bit 3.6.2 kernel, GT 610 GPU)
CPU load screenshot-ok itt:
Unigine Sanctuary és Tropics benchmarkok. (Grafikonok bal széle az új módi, jobb széle a hagyományos futtatás.)
Ha beállítom az OpenGL multithreading-et (MT), mindig
- nagyobb CPU kernel load és
- leesett framerate (15 vs 9, 42 vs 27 frame/s)
az eredmény.
Ahogy írja is a doksi, egyes progik nyernek a MT-n, mások nem. A Unigine-t profi engine-ként hirdetik, és sztem az is, mégis sokkal lassab a kisérleti MT-vel. Szóval nem triviális olyan appot írni, ami ki tudja használni a MT-t. Helyes, hogy gyári defaultként ki van kapcsolva.
spekula ON
Ahhoz, hogy nyerjen a multithreadingen egy app, az kell, hogy rengeteget számolgasson a megjelenítő thread-ben. Ekkor a számításokat ki lehet pakolni másik thread-be és nem akasztja meg a rajzolgatást. Persze ez nem megy, ha a rajzoláshoz kellenek a számítások.
Lehet, h. a demók azért lassultak ekkorát, mert azok arra vannak kihegyezve, hogy a GPU-t dolgoztassák nagyon, tehát nem CPU-ban izomkodnak. Vagy más okból :)
spekula OFF