2010-11-18 20 views
2

Gölgelendiricileri kullanan bir OpenGL programım var (OpenGL sürüm 3.3, GLSL sürüm 1.5). Özellikle GPU üzerinde çalışacağını söylemediğiniz sürece, gölgelendiricilerin aslında CPU üzerinde çalıştığını duydum. (Tabii ki, shader'ları kullanmamın sebebi, CPU yerine GPU'daki hesaplamaları yaparak renderlemeyi hızlandırmaktır, bu yüzden bu benim istediğim davranış değildir.) Bu doğru mu? Eğer öyleyse, gölgelendiriciyi GPU'da çalıştırmaya nasıl başladınız?Gölgelendiricilerin GPU üzerinde çalışmasını sağlama

cevap

10

Bunu nereden duyduğunuzdan emin değilim, ancak grafik sağlayıcısından yarı yolda iyi sürücülere sahip olduğunuzu farz edelim, gölgelendiricileriniz herhangi bir şey yapmadan, ancak yükleme ve kullanma olmadan GPU'da çalışır.

+1

+1 Bir not olarak, modern kartlarda bile bazı özellikler OpenGL'nin yazılım modunda gölgelendiriciyi oldukça korkunç bir performansa neden olmasına neden olacaktır ('GL_LINE_SMOOTH' klasik bir örnektir). –

+0

Mac OS X'in OpenGL yığını CPU'ya geri dönebilir (bir şeyler yanlış giderse). – Stringer

+0

OSX [çift destek] (http://developer.apple.com/graphicsimaging/opengl/capabilities/) 3.3? – genpfault

2

Sürücünün her zaman CPU'yu değil GPU'da her gölgeyi çalıştırmaya çalıştığından eminim. Ancak tüm modern video kartları, tam özellikli gölgelendirici işlemlerini desteklemez. Örneğin bildiğim gibi OpenGL 4.0 uzantısı GL_ARB_gpu_shader_fp64 kısmi destek olarak mevcut olabilir. Bu nedenle sürücü, CPU üzerinde bazı yazılım modlarında taklit etmelidir. Uzantılar hakkında, GL_EXTENSIONS parametresiyle glGetString numaralı telefonu arayarak kartınızı kontrol edebilirsiniz.

İlgili konular