[Nouveau] Discrete card is always off even if it is used

Peter Wu peter at lekensteyn.nl
Fri Jan 27 14:56:14 UTC 2017


Have you checked your Xorg.log? It should load the modesetting or nouveau driver for the dGPU.

Kind regards,
Peter
https://lekensteyn.nl
(pardon my brevity, top-posting and formatting, sent from my phone)


On 17 January 2017 17:56:47 CET, michele at nectarine.it wrote:
>Hi,
>I have a computer with an integrated graphic card and a discrete
>graphic 
>card, namely:
>
># lspci | grep -E "VGA|3D"
>00:02.0 VGA compatible controller: Intel Corporation Broadwell-U 
>Integrated Graphics (rev 09)
>03:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 840M] (rev
>a2)
>
>This is confirmed by vgaswitcheroo:
>
>xray:/ # cat /sys/kernel/debug/vgaswitcheroo/switch
>0:IGD:+:Pwr:0000:00:02.0
>1:DIS: :DynOff:0000:03:00.0
>
>Some info:
>
>xray:/ # uname -a
>Linux xray 4.9.4-1.gd9de2ec-default #1 SMP PREEMPT Sun Jan 15 16:51:00 
>UTC 2017 (d9de2ec) x86_64 x86_64 x86_64 GNU/Linux
>
>xray:/var/log # rpm -qa | grep -i nouveau
>libdrm_nouveau2-2.4.68-1.4.x86_64
>libvdpau_nouveau-11.2.2-166.1.x86_64
>xf86-video-nouveau-1.0.12-1.5.x86_64
>Mesa-dri-nouveau-11.2.2-166.1.x86_64
>
>No NVIDIA drivers are used.
>
># lsmod | egrep "i915|nvidia"
>i915                 1241088  4
>video                  40960  5 
>dell_wmi,dell_laptop,int3406_thermal,nouveau,i915
>button                 16384  2 nouveau,i915
>i2c_algo_bit           16384  2 nouveau,i915
>drm_kms_helper        159744  2 nouveau,i915
>drm                   360448  7 nouveau,i915,ttm,drm_kms_helper
>
>Now begins the strangeness
>
>xray:~> xrandr --listproviders
>Providers: number : 1
>Provider 0: id: 0x49 cap: 0xb, Source Output, Sink Output, Sink Offload
>
>crtcs: 4 outputs: 6 associated providers: 0 name:Intel
>
>Why just one provider? Should be also listed NVIDIA with nouveau.
>
>And now for some strangeness again:
>xray:~> glxgears -info
>Running synchronized to the vertical refresh.  The framerate should be
>approximately the same as the monitor refresh rate.
>GL_RENDERER   = Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2)
>GL_VERSION    = 3.0 Mesa 11.2.2
>GL_VENDOR     = Intel Open Source Technology Center
>GL_EXTENSIONS = GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra 
>GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract 
>GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture 
>GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array 
>GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip 
>GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels
>
>GL_EXT_point_parameters GL_EXT_rescale_normal 
>GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp 
>GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp 
>GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB 
>GL_ARB_multitexture GL_EXT_framebuffer_sRGB
>GL_IBM_multimode_draw_arrays 
>GL_IBM_texture_mirrored_repeat GL_3DFX_texture_compression_FXT1 
>GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix 
>GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays 
>GL_EXT_secondary_color GL_EXT_texture_env_add 
>GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias 
>GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent
>
>GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc 
>GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp 
>GL_ARB_texture_compression GL_EXT_framebuffer_object 
>GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine 
>GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil 
>GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query 
>GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar 
>GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat
>GL_ARB_window_pos 
>GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp 
>GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers
>
>GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects 
>GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers 
>GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs 
>GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart 
>GL_ARB_depth_clamp GL_ARB_fragment_program_shadow 
>GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite 
>GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two
>
>GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate 
>GL_EXT_blend_equation_separate GL_OES_read_format 
>GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object 
>GL_ARB_texture_compression_rgtc GL_ARB_texture_float 
>GL_ARB_texture_rectangle GL_EXT_packed_float GL_EXT_pixel_buffer_object
>
>GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc 
>GL_EXT_texture_rectangle GL_EXT_texture_sRGB 
>GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object 
>GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample 
>GL_EXT_packed_depth_stencil GL_APPLE_object_purgeable 
>GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_EXT_draw_buffers2
>
>GL_EXT_draw_instanced GL_EXT_gpu_program_parameters
>GL_EXT_texture_array 
>GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query 
>GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_depth_buffer_float 
>GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays 
>GL_ARB_map_buffer_range GL_ARB_texture_rg GL_ARB_texture_swizzle 
>GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle
>GL_EXT_vertex_array_bgra 
>GL_NV_conditional_render GL_AMD_conservative_depth 
>GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture 
>GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_debug_output
>
>GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex 
>GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions 
>GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects 
>GL_ARB_seamless_cube_map GL_ARB_shader_texture_lod 
>GL_ARB_texture_cube_map_array GL_ARB_texture_gather 
>GL_ARB_texture_multisample GL_ARB_texture_query_lod 
>GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object 
>GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex 
>GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_NV_texture_barrier 
>GL_ARB_get_program_binary GL_ARB_robustness 
>GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding 
>GL_ARB_texture_compression_bptc GL_ARB_timer_query 
>GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 
>GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 
>GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth 
>GL_ARB_internalformat_query GL_ARB_map_buffer_alignment 
>GL_ARB_shader_atomic_counters GL_ARB_shader_image_load_store 
>GL_ARB_shading_language_420pack GL_ARB_shading_language_packing 
>GL_ARB_texture_storage GL_ARB_transform_feedback_instanced 
>GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback 
>GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility 
>GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_copy_image 
>GL_ARB_explicit_uniform_location GL_ARB_framebuffer_no_attachments 
>GL_ARB_invalidate_subdata GL_ARB_program_interface_query 
>GL_ARB_shader_image_size GL_ARB_shader_storage_buffer_object 
>GL_ARB_stencil_texturing GL_ARB_texture_query_levels 
>GL_ARB_texture_storage_multisample GL_ARB_texture_view 
>GL_ARB_vertex_attrib_binding GL_KHR_debug GL_ARB_buffer_storage 
>GL_ARB_clear_texture GL_ARB_multi_bind 
>GL_ARB_seamless_cubemap_per_texture GL_ARB_shader_draw_parameters 
>GL_ARB_texture_mirror_clamp_to_edge GL_ARB_vertex_type_10f_11f_11f_rev 
>GL_EXT_shader_integer_mix GL_ARB_clip_control 
>GL_ARB_conditional_render_inverted GL_ARB_derivative_control 
>GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query 
>GL_ARB_shader_texture_image_samples GL_ARB_texture_barrier 
>GL_EXT_polygon_offset_clamp GL_KHR_context_flush_control 
>GL_ARB_shader_clock GL_EXT_shader_samples_identical
>304 frames in 5.0 seconds = 60.621 FPS
>301 frames in 5.0 seconds = 60.016 FPS
>301 frames in 5.0 seconds = 60.016 FPS
>301 frames in 5.0 seconds = 60.021 FPS
>301 frames in 5.0 seconds = 60.018 FPS
>301 frames in 5.0 seconds = 60.017 FPS
>301 frames in 5.0 seconds = 60.016 FPS
>301 frames in 5.0 seconds = 60.015 FPS
>
>and look what happens:
>
>xray:~> DRI_PRIME=1 glxgears -info
>Running synchronized to the vertical refresh.  The framerate should be
>approximately the same as the monitor refresh rate.
>GL_RENDERER   = Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2)
>GL_VERSION    = 3.0 Mesa 11.2.2
>GL_VENDOR     = Intel Open Source Technology Center
>GL_EXTENSIONS = GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra 
>GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract 
>GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture 
>GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array 
>GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip 
>GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels
>
>GL_EXT_point_parameters GL_EXT_rescale_normal 
>GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp 
>GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp 
>GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB 
>GL_ARB_multitexture GL_EXT_framebuffer_sRGB
>GL_IBM_multimode_draw_arrays 
>GL_IBM_texture_mirrored_repeat GL_3DFX_texture_compression_FXT1 
>GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix 
>GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays 
>GL_EXT_secondary_color GL_EXT_texture_env_add 
>GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias 
>GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent
>
>GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc 
>GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp 
>GL_ARB_texture_compression GL_EXT_framebuffer_object 
>GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine 
>GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil 
>GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query 
>GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar 
>GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat
>GL_ARB_window_pos 
>GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp 
>GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers
>
>GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects 
>GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers 
>GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs 
>GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart 
>GL_ARB_depth_clamp GL_ARB_fragment_program_shadow 
>GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite 
>GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two
>
>GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate 
>GL_EXT_blend_equation_separate GL_OES_read_format 
>GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object 
>GL_ARB_texture_compression_rgtc GL_ARB_texture_float 
>GL_ARB_texture_rectangle GL_EXT_packed_float GL_EXT_pixel_buffer_object
>
>GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc 
>GL_EXT_texture_rectangle GL_EXT_texture_sRGB 
>GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object 
>GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample 
>GL_EXT_packed_depth_stencil GL_APPLE_object_purgeable 
>GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_EXT_draw_buffers2
>
>GL_EXT_draw_instanced GL_EXT_gpu_program_parameters
>GL_EXT_texture_array 
>GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query 
>GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_depth_buffer_float 
>GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays 
>GL_ARB_map_buffer_range GL_ARB_texture_rg GL_ARB_texture_swizzle 
>GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle
>GL_EXT_vertex_array_bgra 
>GL_NV_conditional_render GL_AMD_conservative_depth 
>GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture 
>GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_debug_output
>
>GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex 
>GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions 
>GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects 
>GL_ARB_seamless_cube_map GL_ARB_shader_texture_lod 
>GL_ARB_texture_cube_map_array GL_ARB_texture_gather 
>GL_ARB_texture_multisample GL_ARB_texture_query_lod 
>GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object 
>GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex 
>GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_NV_texture_barrier 
>GL_ARB_get_program_binary GL_ARB_robustness 
>GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding 
>GL_ARB_texture_compression_bptc GL_ARB_timer_query 
>GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 
>GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 
>GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth 
>GL_ARB_internalformat_query GL_ARB_map_buffer_alignment 
>GL_ARB_shader_atomic_counters GL_ARB_shader_image_load_store 
>GL_ARB_shading_language_420pack GL_ARB_shading_language_packing 
>GL_ARB_texture_storage GL_ARB_transform_feedback_instanced 
>GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback 
>GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility 
>GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_copy_image 
>GL_ARB_explicit_uniform_location GL_ARB_framebuffer_no_attachments 
>GL_ARB_invalidate_subdata GL_ARB_program_interface_query 
>GL_ARB_shader_image_size GL_ARB_shader_storage_buffer_object 
>GL_ARB_stencil_texturing GL_ARB_texture_query_levels 
>GL_ARB_texture_storage_multisample GL_ARB_texture_view 
>GL_ARB_vertex_attrib_binding GL_KHR_debug GL_ARB_buffer_storage 
>GL_ARB_clear_texture GL_ARB_multi_bind 
>GL_ARB_seamless_cubemap_per_texture GL_ARB_shader_draw_parameters 
>GL_ARB_texture_mirror_clamp_to_edge GL_ARB_vertex_type_10f_11f_11f_rev 
>GL_EXT_shader_integer_mix GL_ARB_clip_control 
>GL_ARB_conditional_render_inverted GL_ARB_derivative_control 
>GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query 
>GL_ARB_shader_texture_image_samples GL_ARB_texture_barrier 
>GL_EXT_polygon_offset_clamp GL_KHR_context_flush_control 
>GL_ARB_shader_clock GL_EXT_shader_samples_identical
>VisualID 213, 0xd5
>40831 frames in 5.0 seconds = 8166.156 FPS
>41501 frames in 5.0 seconds = 8300.200 FPS
>40438 frames in 5.0 seconds = 8087.575 FPS
>
>Obviously it is using the discrete card, even if it shows Intel
>Graphics 
>as GL_RENDERER. Anyway, discrete card was still powered off even when 
>during the last command:
>
># cat /sys/kernel/debug/vgaswitcheroo/switch
>0:IGD:+:Pwr:0000:00:02.0
>1:DIS: :DynOff:0000:03:00.0
>
>Question is: is everything ok with my setup?
>_______________________________________________
>Nouveau mailing list
>Nouveau at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/nouveau


More information about the Nouveau mailing list