2015-05-04 14 views
5

Tôi có máy tính xách tay tích hợp card đồ họa Intel và NVIDIA và tôi muốn chạy chương trình của tôi (viết bằng C# với .NET) trong Visual Studio 2013 Community Edition trên thẻ NVIDIA, vì chương trình của tôi làm việc rộng với OpenGL và card Intel không hỗ trợ các tính năng OpenGL mới nhất. Nhưng theo chương trình cài đặt mặc định chạy trên thẻ Intel.Bất kỳ cách nào để chạy chương trình gỡ lỗi trong Visual Studio trên card đồ họa NVIDIA?

Tôi đã thử thay đổi thẻ đồ họa mặc định cho chương trình của mình trong cài đặt NVIDIA, nhưng có vẻ như sau khi cài đặt biên dịch lại chương trình được đặt lại.

Vì vậy, có cách nào khác đơn giản để chạy chương trình trên card đồ họa NVIDIA không? Có lẽ có các tham số dòng lệnh đặc biệt hoặc một cái gì đó như thế?

Trả lời

5

Cách đơn giản nhất là chỉ cần thêm đoạn mã này ở đâu đó trong chương trình của bạn:

extern "C" { 
    _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; 
} 

Mọi chi tiết, hãy xem ở đây: http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf

+1

Nhưng chương trình của tôi được viết bằng .NET, vì vậy tôi không thể xuất các biến. Ít nhất là không có một số hacking lắp ráp biên dịch. – Omich

+0

Một giải pháp khác có thể là đặt card đồ họa mặc định thành nvidia trong bảng điều khiển nvidia. Nhưng có lẽ một thủ thuật để xuất biến này trong .Net. – Jerem

1

dễ nhất có lẽ là để biên dịch chương trình của bạn thành một .NET DLL và gọi hàm Main của bạn từ một tệp thực thi được viết bằng C++/CLI xuất khẩu biến số NvOptimusEnablement như Jerem đã đề cập trong câu trả lời khác.

+0

Điều gì về việc liên kết một DLL được viết bằng C++ để xuất biến này. Liệu điều đó có hiệu quả? – Jerem

+0

@ Jerem: Tôi đã nghĩ về điều đó, nhưng tôi không chắc liệu nó có hiệu quả hay không. – Mehrdad

Các vấn đề liên quan