NVIDIA R358.16 Graphics Drivers for Linux


GeeXLab OpenGL extensions viewer - Linux - GTX 680
Simple OpenGL extensions viewer with GeeXLab

NVIDIA has released a set of graphics drivers for Linux, Solaris and FreeBSD. R358.16 brings a lot of OpenGL bug fixes and improves support for large GPU memory allocations.

1 – R358.16 Desktop/Notebook Downloads

If you are on Linux Mint and need some help to install this driver, you can read this howto.

2 – R358.16 Changelog

  • Fixed a regression, introduced in 358.09, that caused incorrect rendering of OpenGL stereo applications in combination with Quadro Sync on certain GPUs.
  • Fixed a regression, introduced in 358.09, that caused OpenGL stereo applications to hang when SLI AFR, SFR, or SLIAA modes were enabled.
  • Fixed a regression, introduced in 358.09, that caused the system to hang while launching OpenGL applications when some SLI Mosaic topologies were in use.
  • Fixed a bug that could cause some G-SYNC monitors to flicker on Kepler-based GPUs when running at low frame rates.
  • Fixed a regression that could cause OpenGL or VDPAU applications to hang in Xinerama layouts which include multiple X screens that are driven by the same GPU.
  • Added a fallback to allow GLX to function when UNIX domain socket communication is blocked between NVIDIA client-side GLX and NVIDIA server-side GLX. For example, the default SELinux policy on Fedora 22 prevents the NVIDIA 358.09 GLX driver from working in GDM3:

    https://bugzilla.redhat.com/show_bug.cgi?id=1271401

  • Fixed a bug that could cause nvidia-installer to crash when installing from a driver package that has had precompiled kernel interfaces added to it (e.g., by using the "–add-this-kernel" option).
  • Fixed a regression from 358.09 that caused G-SYNC monitors configured to use 3D Vision stereo to go blank and report an unsupported signal.
  • Fixed a regression from 358.09 that caused OpenGL applications that failed to negotiate permission to perform glXSwapBuffers via flipping to stop updating the screen.  This was triggered on Fedora 22 where the SELinux system policy prevents gnome-shell from communicating with the X server.

    Now, OpenGL applications that fail to negotiate flipping will fall back to glXSwapBuffers via blitting.

    See https://bugzilla.redhat.com/show_bug.cgi?id=1271401 for more details.

  • Fixed a regression that reduced OpenGL performance on headless X server configurations.
  • Fixed a memory leak that occurred after destroying a GLXWindow which still has the current context attached to it.
  • Fixed a bug which caused EGL pbuffers to be created with both a front and back buffer, instead of a back buffer only, as is required for EGL.
  • Added a new kernel module, nvidia-modeset.ko.  This new driver component works in conjunction with the nvidia.ko kernel module to program the display engine of the GPU.

    nvidia-modeset.ko does not provide any new user-visible functionality or interfaces to third party applications.  However, in a later release, nvidia-modeset.ko will be used as a basis for the modesetting interface provided by the kernel’s direct rendering manager (DRM).

  • Reduced flickering and delays when transitioning into or out of G-SYNC mode.  As part of this change, monitors that have G-SYNC indicators in their on-screen displays will now always report that they are in G-SYNC mode.  The OpenGL G-SYNC visual indicator can be enabled in nvidia-settings to determine when G-SYNC is actually being used.
  • GLX protocol for the following OpenGL extension from OpenGL 3.0 has been promoted from unofficial to ARB approved official status:

    GL_EXT_draw_buffers2

  • GLX protocol for the following OpenGL 3.0 commands:

    BindBufferRangeNV
    BindBufferBaseNV
    BeginTransformFeedbackNV
    EndTransformFeedbackNV
    GetTransformFeedbackVaryingEXT
    TransformFeedbackVaryingsEXT
    which are part of the following extensions:

    GL_NV_transform_feedback
    GL_EXT_transform_feedback

    has been promoted from unofficial to ARB approved official status.

    With the above changes, GLX protocol for OpenGL 3.0 has been promoted from unofficial to ARB approved official status.

  • Added a new system memory allocation mechanism for large allocations in the OpenGL driver.  This mechanism allows unmapping the allocation from the process when it is not in use, making more virtual address space available to the application.  It is enabled by default on 32 bit OpenGL applications with Linux 3.11+ and glibc 2.19+.  Memory allocated this way will consume space in /dev/shm. Setting the environment variable __GL_DevShmPageableAllocations to 2 will disable this feature
  • Added support for OpenGL 4.3.
  • Added support for X.Org xserver ABI 20 (xorg-server 1.18).

3 – R358.16 OpenGL and GLX Extensions

Here are all extensions (GLX and OpenGL) exposed for a GeForce GTX 970 on Linux Mint 17 64-bit.

GL_RENDERER: GeForce GTX 970/PCIe/SSE2
GL_VENDOR: NVIDIA Corporation
GL_VERSION: 4.5.0 NVIDIA 358.16
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA

GLX client extensions: 32

  1. GLX_ARB_get_proc_address
  2. GLX_ARB_multisample
  3. GLX_EXT_visual_info
  4. GLX_EXT_visual_rating
  5. GLX_EXT_import_context
  6. GLX_SGI_video_sync
  7. GLX_NV_swap_group
  8. GLX_NV_video_out
  9. GLX_SGIX_fbconfig
  10. GLX_SGIX_pbuffer
  11. GLX_SGI_swap_control
  12. GLX_EXT_swap_control
  13. GLX_EXT_swap_control_tear
  14. GLX_EXT_buffer_age
  15. GLX_ARB_create_context
  16. GLX_ARB_create_context_profile
  17. GLX_NV_float_buffer
  18. GLX_ARB_fbconfig_float
  19. GLX_EXT_fbconfig_packed_float
  20. GLX_EXT_texture_from_pixmap
  21. GLX_EXT_framebuffer_sRGB
  22. GLX_NV_present_video
  23. GLX_NV_copy_image
  24. GLX_NV_copy_buffer
  25. GLX_NV_multisample_coverage
  26. GLX_NV_video_capture
  27. GLX_EXT_create_context_es_profile
  28. GLX_EXT_create_context_es2_profile
  29. GLX_ARB_create_context_robustness
  30. GLX_NV_delay_before_swap
  31. GLX_EXT_stereo_tree
  32. GLX_ARB_context_flush_control

OpenGL extensions: 383

  1. GL_AMD_multi_draw_indirect
  2. GL_AMD_seamless_cubemap_per_texture
  3. GL_AMD_vertex_shader_viewport_index
  4. GL_AMD_vertex_shader_layer
  5. GL_ARB_arrays_of_arrays
  6. GL_ARB_base_instance
  7. GL_ARB_bindless_texture
  8. GL_ARB_blend_func_extended
  9. GL_ARB_buffer_storage
  10. GL_ARB_clear_buffer_object
  11. GL_ARB_clear_texture
  12. GL_ARB_clip_control
  13. GL_ARB_color_buffer_float
  14. GL_ARB_compatibility
  15. GL_ARB_compressed_texture_pixel_storage
  16. GL_ARB_conservative_depth
  17. GL_ARB_compute_shader
  18. GL_ARB_compute_variable_group_size
  19. GL_ARB_conditional_render_inverted
  20. GL_ARB_copy_buffer
  21. GL_ARB_copy_image
  22. GL_ARB_cull_distance
  23. GL_ARB_debug_output
  24. GL_ARB_depth_buffer_float
  25. GL_ARB_depth_clamp
  26. GL_ARB_depth_texture
  27. GL_ARB_derivative_control
  28. GL_ARB_direct_state_access
  29. GL_ARB_draw_buffers
  30. GL_ARB_draw_buffers_blend
  31. GL_ARB_draw_indirect
  32. GL_ARB_draw_elements_base_vertex
  33. GL_ARB_draw_instanced
  34. GL_ARB_enhanced_layouts
  35. GL_ARB_ES2_compatibility
  36. GL_ARB_ES3_compatibility
  37. GL_ARB_ES3_1_compatibility
  38. GL_ARB_ES3_2_compatibility
  39. GL_ARB_explicit_attrib_location
  40. GL_ARB_explicit_uniform_location
  41. GL_ARB_fragment_coord_conventions
  42. GL_ARB_fragment_layer_viewport
  43. GL_ARB_fragment_program
  44. GL_ARB_fragment_program_shadow
  45. GL_ARB_fragment_shader
  46. GL_ARB_fragment_shader_interlock
  47. GL_ARB_framebuffer_no_attachments
  48. GL_ARB_framebuffer_object
  49. GL_ARB_framebuffer_sRGB
  50. GL_ARB_geometry_shader4
  51. GL_ARB_get_program_binary
  52. GL_ARB_get_texture_sub_image
  53. GL_ARB_gpu_shader5
  54. GL_ARB_gpu_shader_fp64
  55. GL_ARB_gpu_shader_int64
  56. GL_ARB_half_float_pixel
  57. GL_ARB_half_float_vertex
  58. GL_ARB_imaging
  59. GL_ARB_indirect_parameters
  60. GL_ARB_instanced_arrays
  61. GL_ARB_internalformat_query
  62. GL_ARB_internalformat_query2
  63. GL_ARB_invalidate_subdata
  64. GL_ARB_map_buffer_alignment
  65. GL_ARB_map_buffer_range
  66. GL_ARB_multi_bind
  67. GL_ARB_multi_draw_indirect
  68. GL_ARB_multisample
  69. GL_ARB_multitexture
  70. GL_ARB_occlusion_query
  71. GL_ARB_occlusion_query2
  72. GL_ARB_parallel_shader_compile
  73. GL_ARB_pipeline_statistics_query
  74. GL_ARB_pixel_buffer_object
  75. GL_ARB_point_parameters
  76. GL_ARB_point_sprite
  77. GL_ARB_post_depth_coverage
  78. GL_ARB_program_interface_query
  79. GL_ARB_provoking_vertex
  80. GL_ARB_query_buffer_object
  81. GL_ARB_robust_buffer_access_behavior
  82. GL_ARB_robustness
  83. GL_ARB_sample_locations
  84. GL_ARB_sample_shading
  85. GL_ARB_sampler_objects
  86. GL_ARB_seamless_cube_map
  87. GL_ARB_seamless_cubemap_per_texture
  88. GL_ARB_separate_shader_objects
  89. GL_ARB_shader_atomic_counter_ops
  90. GL_ARB_shader_atomic_counters
  91. GL_ARB_shader_ballot
  92. GL_ARB_shader_bit_encoding
  93. GL_ARB_shader_clock
  94. GL_ARB_shader_draw_parameters
  95. GL_ARB_shader_group_vote
  96. GL_ARB_shader_image_load_store
  97. GL_ARB_shader_image_size
  98. GL_ARB_shader_objects
  99. GL_ARB_shader_precision
  100. GL_ARB_shader_storage_buffer_object
  101. GL_ARB_shader_subroutine
  102. GL_ARB_shader_texture_image_samples
  103. GL_ARB_shader_texture_lod
  104. GL_ARB_shading_language_100
  105. GL_ARB_shader_viewport_layer_array
  106. GL_ARB_shading_language_420pack
  107. GL_ARB_shading_language_include
  108. GL_ARB_shading_language_packing
  109. GL_ARB_shadow
  110. GL_ARB_sparse_buffer
  111. GL_ARB_sparse_texture
  112. GL_ARB_sparse_texture2
  113. GL_ARB_sparse_texture_clamp
  114. GL_ARB_stencil_texturing
  115. GL_ARB_sync
  116. GL_ARB_tessellation_shader
  117. GL_ARB_texture_barrier
  118. GL_ARB_texture_border_clamp
  119. GL_ARB_texture_buffer_object
  120. GL_ARB_texture_buffer_object_rgb32
  121. GL_ARB_texture_buffer_range
  122. GL_ARB_texture_compression
  123. GL_ARB_texture_compression_bptc
  124. GL_ARB_texture_compression_rgtc
  125. GL_ARB_texture_cube_map
  126. GL_ARB_texture_cube_map_array
  127. GL_ARB_texture_env_add
  128. GL_ARB_texture_env_combine
  129. GL_ARB_texture_env_crossbar
  130. GL_ARB_texture_env_dot3
  131. GL_ARB_texture_filter_minmax
  132. GL_ARB_texture_float
  133. GL_ARB_texture_gather
  134. GL_ARB_texture_mirror_clamp_to_edge
  135. GL_ARB_texture_mirrored_repeat
  136. GL_ARB_texture_multisample
  137. GL_ARB_texture_non_power_of_two
  138. GL_ARB_texture_query_levels
  139. GL_ARB_texture_query_lod
  140. GL_ARB_texture_rectangle
  141. GL_ARB_texture_rg
  142. GL_ARB_texture_rgb10_a2ui
  143. GL_ARB_texture_stencil8
  144. GL_ARB_texture_storage
  145. GL_ARB_texture_storage_multisample
  146. GL_ARB_texture_swizzle
  147. GL_ARB_texture_view
  148. GL_ARB_timer_query
  149. GL_ARB_transform_feedback2
  150. GL_ARB_transform_feedback3
  151. GL_ARB_transform_feedback_instanced
  152. GL_ARB_transform_feedback_overflow_query
  153. GL_ARB_transpose_matrix
  154. GL_ARB_uniform_buffer_object
  155. GL_ARB_vertex_array_bgra
  156. GL_ARB_vertex_array_object
  157. GL_ARB_vertex_attrib_64bit
  158. GL_ARB_vertex_attrib_binding
  159. GL_ARB_vertex_buffer_object
  160. GL_ARB_vertex_program
  161. GL_ARB_vertex_shader
  162. GL_ARB_vertex_type_10f_11f_11f_rev
  163. GL_ARB_vertex_type_2_10_10_10_rev
  164. GL_ARB_viewport_array
  165. GL_ARB_window_pos
  166. GL_ATI_draw_buffers
  167. GL_ATI_texture_float
  168. GL_ATI_texture_mirror_once
  169. GL_S3_s3tc
  170. GL_EXT_texture_env_add
  171. GL_EXT_abgr
  172. GL_EXT_bgra
  173. GL_EXT_bindable_uniform
  174. GL_EXT_blend_color
  175. GL_EXT_blend_equation_separate
  176. GL_EXT_blend_func_separate
  177. GL_EXT_blend_minmax
  178. GL_EXT_blend_subtract
  179. GL_EXT_compiled_vertex_array
  180. GL_EXT_Cg_shader
  181. GL_EXT_depth_bounds_test
  182. GL_EXT_direct_state_access
  183. GL_EXT_draw_buffers2
  184. GL_EXT_draw_instanced
  185. GL_EXT_draw_range_elements
  186. GL_EXT_fog_coord
  187. GL_EXT_framebuffer_blit
  188. GL_EXT_framebuffer_multisample
  189. GL_EXTX_framebuffer_mixed_formats
  190. GL_EXT_framebuffer_multisample_blit_scaled
  191. GL_EXT_framebuffer_object
  192. GL_EXT_framebuffer_sRGB
  193. GL_EXT_geometry_shader4
  194. GL_EXT_gpu_program_parameters
  195. GL_EXT_gpu_shader4
  196. GL_EXT_multi_draw_arrays
  197. GL_EXT_packed_depth_stencil
  198. GL_EXT_packed_float
  199. GL_EXT_packed_pixels
  200. GL_EXT_pixel_buffer_object
  201. GL_EXT_point_parameters
  202. GL_EXT_polygon_offset_clamp
  203. GL_EXT_post_depth_coverage
  204. GL_EXT_provoking_vertex
  205. GL_EXT_raster_multisample
  206. GL_EXT_rescale_normal
  207. GL_EXT_secondary_color
  208. GL_EXT_separate_shader_objects
  209. GL_EXT_separate_specular_color
  210. GL_EXT_shader_image_load_formatted
  211. GL_EXT_shader_image_load_store
  212. GL_EXT_shader_integer_mix
  213. GL_EXT_shadow_funcs
  214. GL_EXT_sparse_texture2
  215. GL_EXT_stencil_two_side
  216. GL_EXT_stencil_wrap
  217. GL_EXT_texture3D
  218. GL_EXT_texture_array
  219. GL_EXT_texture_buffer_object
  220. GL_EXT_texture_compression_dxt1
  221. GL_EXT_texture_compression_latc
  222. GL_EXT_texture_compression_rgtc
  223. GL_EXT_texture_compression_s3tc
  224. GL_EXT_texture_cube_map
  225. GL_EXT_texture_edge_clamp
  226. GL_EXT_texture_env_combine
  227. GL_EXT_texture_env_dot3
  228. GL_EXT_texture_filter_anisotropic
  229. GL_EXT_texture_filter_minmax
  230. GL_EXT_texture_integer
  231. GL_EXT_texture_lod
  232. GL_EXT_texture_lod_bias
  233. GL_EXT_texture_mirror_clamp
  234. GL_EXT_texture_object
  235. GL_EXT_texture_shared_exponent
  236. GL_EXT_texture_sRGB
  237. GL_EXT_texture_sRGB_decode
  238. GL_EXT_texture_storage
  239. GL_EXT_texture_swizzle
  240. GL_EXT_timer_query
  241. GL_EXT_transform_feedback2
  242. GL_EXT_vertex_array
  243. GL_EXT_vertex_array_bgra
  244. GL_EXT_vertex_attrib_64bit
  245. GL_EXT_x11_sync_object
  246. GL_EXT_import_sync_object
  247. GL_IBM_rasterpos_clip
  248. GL_IBM_texture_mirrored_repeat
  249. GL_KHR_context_flush_control
  250. GL_KHR_debug
  251. GL_KHR_no_error
  252. GL_KHR_robust_buffer_access_behavior
  253. GL_KHR_robustness
  254. GL_KTX_buffer_region
  255. GL_NV_bindless_multi_draw_indirect
  256. GL_NV_bindless_multi_draw_indirect_count
  257. GL_NV_bindless_texture
  258. GL_NV_blend_equation_advanced
  259. GL_NV_blend_equation_advanced_coherent
  260. GL_NV_blend_square
  261. GL_NV_command_list
  262. GL_NV_compute_program5
  263. GL_NV_conditional_render
  264. GL_NV_conservative_raster
  265. GL_NV_conservative_raster_dilate
  266. GL_NV_copy_depth_to_color
  267. GL_NV_copy_image
  268. GL_NV_depth_buffer_float
  269. GL_NV_depth_clamp
  270. GL_NV_draw_texture
  271. GL_NV_ES1_1_compatibility
  272. GL_NV_ES3_1_compatibility
  273. GL_NV_explicit_multisample
  274. GL_NV_fence
  275. GL_NV_fill_rectangle
  276. GL_NV_float_buffer
  277. GL_NV_fog_distance
  278. GL_NV_fragment_coverage_to_color
  279. GL_NV_fragment_program
  280. GL_NV_fragment_program_option
  281. GL_NV_fragment_program2
  282. GL_NV_fragment_shader_interlock
  283. GL_NV_framebuffer_mixed_samples
  284. GL_NV_framebuffer_multisample_coverage
  285. GL_NV_geometry_shader4
  286. GL_NV_geometry_shader_passthrough
  287. GL_NV_gpu_program4
  288. GL_NV_internalformat_sample_query
  289. GL_NV_gpu_program4_1
  290. GL_NV_gpu_program5
  291. GL_NV_gpu_program5_mem_extended
  292. GL_NV_gpu_program_fp64
  293. GL_NV_gpu_shader5
  294. GL_NV_half_float
  295. GL_NV_light_max_exponent
  296. GL_NV_multisample_coverage
  297. GL_NV_multisample_filter_hint
  298. GL_NV_occlusion_query
  299. GL_NV_packed_depth_stencil
  300. GL_NV_parameter_buffer_object
  301. GL_NV_parameter_buffer_object2
  302. GL_NV_path_rendering
  303. GL_NV_path_rendering_shared_edge
  304. GL_NV_pixel_data_range
  305. GL_NV_point_sprite
  306. GL_NV_primitive_restart
  307. GL_NV_register_combiners
  308. GL_NV_register_combiners2
  309. GL_NV_sample_locations
  310. GL_NV_sample_mask_override_coverage
  311. GL_NV_shader_atomic_counters
  312. GL_NV_shader_atomic_float
  313. GL_NV_shader_atomic_fp16_vector
  314. GL_NV_shader_atomic_int64
  315. GL_NV_shader_buffer_load
  316. GL_NV_shader_storage_buffer_object
  317. GL_NV_texgen_reflection
  318. GL_NV_texture_barrier
  319. GL_NV_texture_compression_vtc
  320. GL_NV_texture_env_combine4
  321. GL_NV_texture_multisample
  322. GL_NV_texture_rectangle
  323. GL_NV_texture_shader
  324. GL_NV_texture_shader2
  325. GL_NV_texture_shader3
  326. GL_NV_transform_feedback
  327. GL_NV_transform_feedback2
  328. GL_NV_uniform_buffer_unified_memory
  329. GL_NV_vdpau_interop
  330. GL_NV_vertex_array_range
  331. GL_NV_vertex_array_range2
  332. GL_NV_vertex_attrib_integer_64bit
  333. GL_NV_vertex_buffer_unified_memory
  334. GL_NV_vertex_program
  335. GL_NV_vertex_program1_1
  336. GL_NV_vertex_program2
  337. GL_NV_vertex_program2_option
  338. GL_NV_vertex_program3
  339. GL_NV_viewport_array2
  340. GL_NVX_conditional_render
  341. GL_NVX_gpu_memory_info
  342. GL_NVX_nvenc_interop
  343. GL_NV_shader_thread_group
  344. GL_NV_shader_thread_shuffle
  345. GL_KHR_blend_equation_advanced
  346. GL_KHR_blend_equation_advanced_coherent
  347. GL_SGIS_generate_mipmap
  348. GL_SGIS_texture_lod
  349. GL_SGIX_depth_texture
  350. GL_SGIX_shadow
  351. GL_SUN_slice_accum
  352. GLX_ARB_get_proc_address
  353. GLX_ARB_multisample
  354. GLX_EXT_visual_info
  355. GLX_EXT_visual_rating
  356. GLX_EXT_import_context
  357. GLX_SGI_video_sync
  358. GLX_NV_swap_group
  359. GLX_NV_video_out
  360. GLX_SGIX_fbconfig
  361. GLX_SGIX_pbuffer
  362. GLX_SGI_swap_control
  363. GLX_EXT_swap_control
  364. GLX_EXT_swap_control_tear
  365. GLX_EXT_buffer_age
  366. GLX_ARB_create_context
  367. GLX_ARB_create_context_profile
  368. GLX_NV_float_buffer
  369. GLX_ARB_fbconfig_float
  370. GLX_EXT_fbconfig_packed_float
  371. GLX_EXT_texture_from_pixmap
  372. GLX_EXT_framebuffer_sRGB
  373. GLX_NV_present_video
  374. GLX_NV_copy_image
  375. GLX_NV_copy_buffer
  376. GLX_NV_multisample_coverage
  377. GLX_NV_video_capture
  378. GLX_EXT_create_context_es_profile
  379. GLX_EXT_create_context_es2_profile
  380. GLX_ARB_create_context_robustness
  381. GLX_NV_delay_before_swap
  382. GLX_EXT_stereo_tree
  383. GLX_ARB_context_flush_control

(via) | (via)