2011-05-17 12 views
9

Bir pencereyi openGL (Win32 veya diğer araç takımlarını kullanarak) kullanarak nasıl açacağımı biliyorum. Ama sistemde 2 tane grafik kartı var. Oluşturulacak bir grafik aygıtı nasıl seçerim? Programlama dilim C++ ve pencerelere odaklanıyorum ancak herhangi bir örnek memnuniyetle karşılanacaktır.Windows'ta bir grafik aygıtı seçin + opengl

Düzenleme: Benim yeni laptop iki grafik kartları var: Belki onun iyi bir fikir biraz perspektif katmak amacıyla, daha iyi sorunumu açıklamak için. Entegre Intel HD ve GeForce GT 540M. Intel kartı çoğu zaman işlemek için çalışır, çünkü pil tasarrufu sağlar. Bir oyun başladığında, GeForce otomatik olarak başlatılır. Bu sistem nvidia tarafından "optimus" olarak adlandırılır (http://www.nvidia.com/object/optimus_technology.html). Sorun şu ki, uygulamama başladığımda, de opengl sürücüsünün algılanması 2.1 ve satıcı Intel'dir ve diğer cihaza nasıl geçeceğimi bilmiyorum.

Son olarak bu bilgiyi buldum. Eğer nvidia kullanmıyorsanız çok yararlı değil ama ben kim http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CUDA_Developer_Guide_for_Optimus_Platforms.pdf

cevap

6

okuyabiliyorsa izin vermiyorum, ama% 100 emin değilim, ancak Windows altında bunun mümkün olmadığını hatırlıyorum. belirli bir ekranda bir pencere.

NVidia WGL_NV_gpu_affinity adı verilen bir uzantı sağladı. Bunun hala mevcut olup olmadığından ve istediğin gibi çalışıp çalışmadığından emin değilim.

Düzenleme: benzer bilgiler zaten this PDF için bir ilave bağlantı ile, another thread sağlanan görüyoruz

. Belki de tatmin edici bir cevap değil, en azından bazı bilgiler.

+1

gerçeği bence, eksik olan linux bir (GLX _...) var, pencereler için olduğunu söylüyor. Ancak ATI/AMD, windows (WGL) ve linux (GLX) sürümleri olan AMD_gpu_association adlı benzer bir uzantıya sahiptir. –

+0

Tabii ki haklısın (kahve içmem lazım). Cevabımı düzenledim, ancak bir tanesi fazla değil. : s – Bart

+0

Sanırım bu cihazı (hatta yazılım tabanlı bir cihaz) directX'te bir seçenektir. Belki de win32 araç setindeki cihazı seçmenin yolu budur. – Killrazor

1

Eğer OpenGL ile birden GPU'ları olan programlamaya WGL_NV_gpu_affinity uzantıyı kullanmalıdır. (durumda, NVIDIA kartı). Ancak sadece QUADRO serisinde desteklenir. Maalesef sisteminizde grafik kartı oluşturmayı seçemezsiniz.

10

En basit, Nvidia Optimus özel çözümü, bu kod parçacığını uygulamanızın bir yerine yapıştırmaktır. Bu, uygulamanız başladığında Nvidia sürücüsünün güçlü GPU'ya geçmesini söyleyecektir.

// enable optimus! 
extern "C" { 
    _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; 
} 
+4

AMD eşdeğeri için, bkz. [This] (http://stackoverflow.com/questions/17458803/amd-equivalent-to-nvoptimusenablement) sorusu. – fkorsa

2

Nvidia Denetim Masası> 3d ayarlarını yönet> tercih edilen grafik işlemciyi seçin. Varsayılan olarak otomatik seçimi görebilirsiniz. İstediğiniz GPU’ya değiştirin. Bu uzantı, WGL_nv_gpu_affinity denir

+0

Cevabınız bir son kullanıcı için uygundur, ancak bir geliştirici için uygun değildir. Ancak test ederken hala iyi, teşekkürler. – legends2k