Bon, je continue.
La mise à jour du serveur Xorg que l'on trouve ici officiellement:
https://bodhi.fedoraproject.org/updates/FEDORA-2019-6c6582bafc
permet de prendre en charge optimus sous F31 (portage des ajouts du 1.21 sous 1.20.5).
Effectivement les deux cartes sont reconnues
INTEL
glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.2.0
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 19.2.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.2.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
NVIDIA
__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1050 Ti/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 435.21
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 435.21
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 435.21
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x1df cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 4 associated providers: 0 name:modesetting
Provider 1: id: 0x1b8 cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0
Donc effectivement, les deux cartes sont reconnues
Ici avec le test glxspheres64.
[*]Le premier avec la carte nvidia
Le deuxième avec la carte INTEL[/*]
NVIDIA
__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 __GLX_VENDOR_LIBRARY_NAME=nvidia glxspheres64
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
Visual ID of window: 0x2e4
Context is Direct
OpenGL Renderer: GeForce GTX 1050 Ti/PCIe/SSE2
61.242789 frames/sec - 68.346952 Mpixels/sec
59.994028 frames/sec - 66.953335 Mpixels/sec
60.012275 frames/sec - 66.973699 Mpixels/sec
59.941285 frames/sec - 66.894474 Mpixels/sec
60.007308 frames/sec - 66.968155 Mpixels/sec
INTEL
glxspheres64
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
Visual ID of window: 0x2e8
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2)
61.512278 frames/sec - 68.647703 Mpixels/sec
59.957380 frames/sec - 66.912436 Mpixels/sec
59.981538 frames/sec - 66.939396 Mpixels/sec
59.997683 frames/sec - 66.957414 Mpixels/sec
Les résultats sont identiques, ce qui n'est pas normale, il me semble. L'accélération de la carte nvidia ne semble pas être prise en compte, pourtant le drm semble actif
INTEL
glxinfo | grep rendering
direct rendering: Yes
NVIDIA
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep rendering
direct rendering: Yes
GL_NV_parameter_buffer_object2, GL_NV_path_rendering,
GL_NV_path_rendering_shared_edge, GL_NV_pixel_data_range,
GL_NV_stereo_view_rendering, GL_NV_texgen_reflection,
GL_NV_parameter_buffer_object2, GL_NV_path_rendering,
GL_NV_path_rendering_shared_edge, GL_NV_pixel_data_range,
GL_NV_stereo_view_rendering, GL_NV_texgen_reflection,
GL_NV_path_rendering, GL_NV_path_rendering_shared_edge,
GL_NV_shadow_samplers_cube, GL_NV_stereo_view_rendering,
J'avais déjà eu ce phénomène sous la F30, au début j'avais une nette différence (de l'odre de 1 à 5) avec le test glxsphere64, puis après des mises à jour, je n'avais plus de différence comme maintenant. Je bloque..