شما هنوز به سیستم وارد نشده اید.

#1 2018-03-31 09:35:48

Programmer
عضو
از : تهران
ثبت شده: 2015-10-01
ارسال ها: 441
وب سایت

استفاده از کارت گرافیک ATI

درود و شاد باش به همه دوستان گرانقدر
برمیگیردیم به موضوع کارت های گرافیک و switch کردن بین کارت ها . من از لپ تاپ G510 لنوو استفاده می کنم که دوتا کارت گرافیک داره . Intel و ati . می خوام زمانی که کارهای سنگین و گرافیکی انجام میدم از کارت گرافیک ati استفاده کنم  . برای این موضوع ی سرچی گرفتم و دیدم برای این منظور میشه از PRIME استفاده کرد . توی Prime یک دستوری هست که provider ها رو نمایش میده وقتی که من از کد زیر برای این منظور استفاده کردم :

xrandr --listproviders

خروجی زیر رو بهم نمایش داد :

Providers: number : 2
Provider 0: id: 0x69 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 4 associated providers: 1 name:Intel
Provider 1: id: 0x41 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 0 associated providers: 1 name:OLAND @ pci:0000:01:00.0

طبق ویکی , زمانی که ما از دستور بالا استفاده می کنیم باید یک کارت radeon و یک intel نمایش داده بشه (البته با توجه به موجود بودن این کارت ها) اما provider دوم برای من اصلا نمی دونم چی هستش . حالا زمانی که می خوام با دستور زیر بگم بیاد و از همون provider دوم استفاده کنه :

xrandr --setprovideroffloadsink OLAND @ pci:0000:01:00.0 Intel

خروجی :

[mehrdad@mehrdad ~]$ xrandr --setprovideroffloadsink OLAND @ pci:0000:01:00.0 Intel
xrandr: unrecognized option 'pci:0000:01:00.0'
Try 'xrandr --help' for more information.

و یا این دستور :

xrandr --setprovideroffloadsink OLAND  Intel

خروجی :

[mehrdad@mehrdad ~]$ xrandr --setprovideroffloadsink OLAND  Intel
Could not find provider with name OLAND

اما خب یک دستور جایگزین هم برای این مشکل من درست شده بود smile

 xrandr --setprovideroffloadsink 1 0

و با دستور بالا مشکل اکی شد . اما سوال برام پیش امده چرا اسم provider 1 به اون شکل بودش . اگر دوستان محبت کنند در این خصوص راهنماییم کنند ممنون میشم .


در مرحله بعد برای اجرای اون برنامه گرافیکی (که خب در مثال من steam > dota2 هستش big_smile ) باید از دستور زیر استفاده بشه :

DRI_PRIME=1 steam

و DOTA 2 با همون حالتی که روی ویندوز با نصب کارت گرافیک ati اجرا میشد اجرا شد smile (خیلی عالی شد ) . حالا سوال دوم . می خوام به جای اینکه هر وقت steam باز هستش بیام بگم هر وقت DOTA 2 باز شد بیا و switch کن . چون کار steam با خود intel هم راه میوفته . و یا مثلا یک لیستی از برنامه هام درست کنم مثل Game Engine ها و یا برنامه های مدل سازی و گیم ها بگم هر وقت هر یکی از این ها استفاده شد مثلا بیا از دستور زیر خودت توی پشت صحنه استفاده کن و switch کن .

DRI_PRIME=1 NAME_OF_YOUR_PROGRAM

ممنون میشم راهنماییم کنید .


Impossible Impossible
Imagination is more important than science
به سایت ما سر بزنید smile
مهرداد دولت خواه - Mehrdad Dolatkhah

آفلاین

#2 2018-03-31 11:31:04

LinArcX
عضو
ثبت شده: 2015-09-18
ارسال ها: 823

پاسخ: استفاده از کارت گرافیک ATI

سلام بر مهرداد گل. عیدت مبارک.
راجع به سوال اولت که چرا اسم provider ها رو اونجوری نشون میده والا منم همچین مشکلی داشتم. دقیق نمیدونم چکار کردم که اوکی شد. ولی حدس میزنم با اضافه کردن فایل های:

 /etc/X11/xorg.conf.d/20-intel.conf

یا

 /etc/X11/xorg.conf.d/20-nouveau.conf 

بود که درست شد یا شاید یه بار دیگه بسته های xf86-video-nouveau,  xf86-video-intel رو نصب کردم. واقعا یادم نمیاد. D:
برای اینکه به برنامه ها بگی با چه گرافیکی بیان بالا یه راه شیکش اینه دسکتاپ انتری هاشونو ادیت کنی و به جای متغیر Exec که معمولا این شکلیه:

Exec=steam

یه هم چین دستوری قرار بدی:

Exec=env DRI_PRIME=1 steam steam://rungameid/227300

دستور بالا به برنامه میگه با فلان متغیر محیطی بیا بالا. الان به ذهنم زد یه ماژول به گنولیوم اضافه کنم مخصوص prime و اضافه کردن این دسکتاپ انتری ها و نمایش fps و این داستان ها. فک کنم دردسرش از بامبل بی کمتر باشه و نتیجه هم همونجوری که میگی راضی کننده ست.
پ.ن: دسکتاپ انتری ها هم در این مسیر ها قرار دارند:

/usr/share/applications/ 
~/.local/share/applications/

آخرین ویرایش توسط LinArcX (2018-03-31 12:08:55)

آفلاین

#3 2018-03-31 13:43:12

Programmer
عضو
از : تهران
ثبت شده: 2015-10-01
ارسال ها: 441
وب سایت

پاسخ: استفاده از کارت گرافیک ATI

سپاس از سعید عزیز . کاری باید صورت بگیره اینه که برای ساخت برنامه هایی که با گرافیک اصلی و PRIME بیاد بالا و نیازی هم به ترمینال نباشه این هست که به داخل desktop entery برنامه مورد نظر بریم و در قسمت Exec تیکه زیر رو که خودت در بالا اشاره کردی قرار بدیم :

Exec=env DRI_PRIME=1 steam steam://rungameid/570

که 570 برای بازی دوتا ۲ هستش روی استیم حالا شما اگر مثلا برنامه دیگه ای رو خواستید براحتی می تونید به جای steam اسم اون برنامه رو قرار بدید .
نکته ای که هست اینه که برای اینکه اون برنامه رو از داخل panel و یا menu و ... بخوایید اجرا کنید باید اون desktop entery رو در مسیر زیر قرار بدید تا بدون مشکل زمان اجرای اون برنامه بصورت خودکار از گرافیک اصلی شما استفاده بشه :

~/.local/share/applications/

به همین راحتی می تونید حالا از نهایت قدرت کارت گرافیکتون در اون برنامه استفاده کنید . بازم ممنون از سعید عزیز


Impossible Impossible
Imagination is more important than science
به سایت ما سر بزنید smile
مهرداد دولت خواه - Mehrdad Dolatkhah

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB