Making the discrete AMD GPU the default GPU in a Mux-less setup with an integrated Intel GPU in Mint 18 (Xenial)

Ryan Ross lightknight.rr at gmail.com
Fri Jul 22 08:31:05 UTC 2016


Ok, now you need to teach me how you did that magic trick. Mind you, the 
fan is running non-stop, but I don't care.

Output:

ryan at ryan-Satellite-P55t-B ~ $ glxinfo
name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
     GLX_ARB_create_context, GLX_ARB_create_context_profile,
     GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
     GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample,
     GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,
     GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
     GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
GLX_EXT_visual_info,
     GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
     GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
     GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
     GLX_ARB_create_context, GLX_ARB_create_context_profile,
     GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
     GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, 
GLX_ARB_multisample,
     GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
     GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
     GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
     GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, 
GLX_EXT_visual_rating,
     GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
     GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
     GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
     GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
     GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
     GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
     GLX_ARB_create_context, GLX_ARB_create_context_profile,
     GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
     GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, 
GLX_ARB_multisample,
     GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
     GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
     GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
     GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, 
GLX_EXT_visual_rating,
     GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
     GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
     GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
     GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
     GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
     GLX_SGI_swap_control, GLX_SGI_video_sync
Extended renderer info (GLX_MESA_query_renderer):
     Vendor: X.Org (0x1002)
     Device: AMD CAPE VERDE (DRM 2.43.0 / 4.4.0-31-generic, LLVM 3.8.1) 
(0x6823)
     Version: 12.1.0
     Accelerated: yes
     Video memory: 2048MB
     Unified memory: no
     Preferred profile: core (0x1)
     Max core profile version: 4.1
     Max compat profile version: 3.0
     Max GLES1 profile version: 1.1
     Max GLES[23] profile version: 3.0
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD CAPE VERDE (DRM 2.43.0 / 
4.4.0-31-generic, LLVM 3.8.1)
OpenGL core profile version string: 4.1 (Core Profile) Mesa 12.1.0-devel
OpenGL core profile shading language version string: 4.10
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:

That does indeed work.

Regards,
Ryan


On 07/22/2016 02:52 AM, Yu, Qiang wrote:
> Yes, I tested on Ubuntu 16.04 and it's OK. But I haven't tried to build
> the whole Xserver to get the modesetting_drv.so, instead I build it separately.
>
> Attach my modesetting DDX and you can copy it to
> /usr/lib/xorg/extra-modules/drivers/
> for a try.
>
> Regards,
> Qiang
> ________________________________________
> From: Ryan Ross <lightknight.rr at gmail.com>
> Sent: Friday, July 22, 2016 2:25:46 PM
> To: Yu, Qiang
> Cc: xorg-driver-ati at lists.x.org
> Subject: Re: Making the discrete AMD GPU the default GPU in a Mux-less setup with an integrated Intel GPU in Mint 18 (Xenial)
>
> Ah, and your configuration works? I'll have to look closer into the
> difference between Ubuntu and Mint.
>
> As promised, here are the files:
> The log file (again):
> https://www.dropbox.com/s/cqklcqjn18aer3m/Xorg.0.log?dl=0
> And the build-source files:
> https://www.dropbox.com/s/itt8nbh7rs9lmz6/xorg-build.tar.bz2?dl=0
>
> Thanks,
> Ryan
>
> On 07/22/2016 02:15 AM, Yu, Qiang wrote:
>> 1.18.3 is OK. And I use Ubuntu 16.04.
>>
>> The RenderPath and RenderDriver are necessary for modesetting
>> to select a different render GPU than the display GPU.
>>
>> Regards,
>> Qiang
>> ________________________________________
>> From: Ryan Ross <lightknight.rr at gmail.com>
>> Sent: Friday, July 22, 2016 1:43:01 PM
>> To: Yu, Qiang; xorg-driver-ati at lists.x.org
>> Subject: Re: Making the discrete AMD GPU the default GPU in a Mux-less setup with an integrated Intel GPU in Mint 18 (Xenial)
>>
>> Greetings Qiang,
>>
>> What version of X are you using? I've built my own with what Mint
>> currently is offering, which is apparently 1.18.3, but it seems to be
>> behind whatever you are using. I'll have the full source (with the
>> modifications) available for you as soon as DropBox finishes synching
>> everything with my laptop (went with a clean install, it may be a few
>> hours...). Until then, I've attached the Xorg.log, if you're interested.
>>
>> For whatever reason it did not care for the "RenderPath" and
>> "RenderDriver" sections.
>>
>> Ah, and one line needed to be added 'driver.c' to get it to compile:
>> "#include <gbm.h>". Aside from that, once all dependencies were
>> satisfied, it compiled well.
>>
>> Many Thanks,
>> Ryan
>>
>>
>>
>> On 07/21/2016 05:02 AM, Yu, Qiang wrote:
>>> Hi Ryan,
>>>
>>> That's interesting. I also want to do this but in another way:
>>> one modesetting DDX display on iGPU and render on dGPU
>>>
>>> Attach the prototype patch and the xorg.conf should be
>>>
>>> Section "ServerFlags"
>>>            Option  "AutoAddGPU" "off"
>>> EndSection
>>>
>>> Section "Device"
>>>            Identifier "Intel"
>>>            Driver "modesetting"
>>>            Option "RenderPath" "radeon"
>>>            Option "RenderDriver" "radeonsi"
>>> EndSection
>>>
>>> Regards,
>>> Qiang
>>>
>>> ________________________________________
>>> From: xorg-driver-ati <xorg-driver-ati-bounces at lists.x.org> on behalf of Ryan Ross <lightknight.rr at gmail.com>
>>> Sent: Thursday, July 21, 2016 11:49:32 AM
>>> To: xorg-driver-ati at lists.x.org
>>> Subject: Making the discrete AMD GPU the default GPU in a Mux-less setup with an integrated Intel GPU in Mint 18 (Xenial)
>>>
>>> Greetings,
>>>
>>> I have a Toshiba Satellite P55T-B5340 that I am attempting to persuade
>>> to boot X using the discrete GPU, and only the discrete GPU. It's been a
>>> lot of fun, because it's muxless (no hardware switch, vgaswitcharoo
>>> seems only to crash it), and the GPU I want to use has no dedicated
>>> outputs (and so, somehow, has to steal them from the integrated GPU,
>>> using magic from what I can tell...). I've attempted to adapt the Nvidia
>>> approach, which sadly only appears to work for glxinfo; attempts to use
>>> "modesetting", screens, and AllowEmptyInitialConfiguration appear to
>>> have no (positive) effect on X, as it really wants this GPU to be hooked
>>> up to some form of output (or it will unload the module). On the upside,
>>> the discrete GPU is quite happy with the 'radeon' driver.
>>>
>>> Additional Information:
>>>
>>> The iGPU is an Intel HD 4600 Graphics (CPU is a i7-4710HQ).
>>> The dGPU is an AMD/ATI Venus Pro (Radeon HD 8850M / R9 M265X).
>>>
>>> Output from xrandr --listproviders is as follows:
>>> Providers: number : 3
>>> Provider 0: id: 0x6d cap: 0x9, Source Output, Sink Offload crtcs: 4
>>> outputs: 4 associated providers: 2 name:Intel
>>> Provider 1: id: 0x45 cap: 0x6, Sink Output, Source Offload crtcs: 6
>>> outputs: 0 associated providers: 2 name:VERDE @ pci:0000:01:00.0
>>> Provider 2: id: 0x45 cap: 0x6, Sink Output, Source Offload crtcs: 6
>>> outputs: 0 associated providers: 2 name:VERDE @ pci:0000:01:00.0
>>>
>>> Pages I've  looked at, solutions I've tried:
>>>
>>> https://wiki.archlinux.org/index.php/PRIME
>>> https://www.mankier.com/5/xorg.conf#Outputclass_Section
>>> http://us.download.nvidia.com/XFree86/Linux-x86/364.15/README/randr14.html
>>>
>>> and a search through both Google and this greater mailing list for
>>> 'discrete gpu', finding some interesting stuff, but nothing applicable.
>>>
>>> Has anyone some magic glitter to spare, or perhaps some working
>>> knowledge of how I might get this beast into the proper configuration?
>>>
>>> Many Thanks,
>>> Ryan
>>>
>>>
>>> _______________________________________________
>>> xorg-driver-ati mailing list
>>> xorg-driver-ati at lists.x.org
>>> https://lists.x.org/mailman/listinfo/xorg-driver-ati



More information about the xorg-driver-ati mailing list