Installed beignet to use OpenCL on Intel, but OpenCL programs only work when run as root
Question: I have an Intel HD graphics 4000 3rd Gen Processor, and my OS is Linux Mint
17.1 64 bit. I installed `beignet` to be able to use `OpenCL` and thus run
programs on the GPU. I had been having lots of problems using the `pyOpenCL`
bindings, so I just decided to uninstall my current `beignet` version and
install the latest one (You can see the previous question I asked and answered
myself about it [here](http://stackoverflow.com/questions/31900363/pyopencl-
returns-errors-the-first-run-then-only-invalid-program-errors-examp)).

Upgrading `beignet` worked and I can now run `OpenCL` code on my GPU through
`python` and `C/C++` bindings. However, I can only run the programs as root,
otherwise they don't detect my GPU as a valid device.

The programs _work_ , which is great, but now I'm trying to solve the
annoyance of having to run everything as root.

When I don't run them as root, I get the following error:

    
    
    /dev/dri/card0 not authenticated
    Device open failed, aborting...
    /dev/dri/card0 not authenticated
    Device open failed, aborting...
    cl_get_gt_device(): error, unknown device: ffffffff
    

When I run them as root, they _work_ , but first they show the following
message:

    
    
    modprobe: FATAL: Module nvidia not found.
    

I tried `sudo apt-get purge nvidia*` but for some reason that also uninstalled
`pyOpenCL` and of course my python programs stopped working. I also found an
answer here suggesting to check the permissions of the `/dev/nvidia*/` folder,
but it doesn't exist in my computer.

Thanks in advance.

**EDIT:** adding some requested outputs.

Output from `lspci | grep -i vga`:
    
    
    00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
    

Output from `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_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_create_context_es2_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_create_context_es2_profile, 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
    
    OpenGL vendor string: Intel Open Source Technology Center
    OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile 
    OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.3
    OpenGL core profile shading language version string: 3.30
    OpenGL core profile context flags: (none)
    OpenGL core profile profile mask: core profile
    OpenGL core profile extensions:
        GL_3DFX_texture_compression_FXT1, GL_AMD_conservative_depth, 
        GL_AMD_draw_buffers_blend, GL_AMD_performance_monitor, 
        GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_trinary_minmax, 
        GL_AMD_vertex_shader_layer, GL_ANGLE_texture_compression_dxt3, 
        GL_ANGLE_texture_compression_dxt5, GL_APPLE_object_purgeable, 
        GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, GL_ARB_base_instance, 
        GL_ARB_blend_func_extended, GL_ARB_clear_buffer_object, 
        GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_debug_output, 
        GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_draw_buffers, 
        GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex, 
        GL_ARB_draw_indirect, GL_ARB_draw_instanced, 
        GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions, 
        GL_ARB_fragment_shader, GL_ARB_framebuffer_object, 
        GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary, 
        GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, 
        GL_ARB_instanced_arrays, GL_ARB_internalformat_query, 
        GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment, 
        GL_ARB_map_buffer_range, GL_ARB_multi_draw_indirect, 
        GL_ARB_occlusion_query2, GL_ARB_pixel_buffer_object, GL_ARB_point_sprite, 
        GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sample_shading, 
        GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, 
        GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding, 
        GL_ARB_shader_objects, GL_ARB_shader_texture_lod, 
        GL_ARB_shading_language_420pack, GL_ARB_shading_language_packing, 
        GL_ARB_sync, GL_ARB_texture_buffer_object, 
        GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range, 
        GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map_array, 
        GL_ARB_texture_float, GL_ARB_texture_gather, 
        GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_multisample, 
        GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_levels, 
        GL_ARB_texture_query_lod, GL_ARB_texture_rectangle, GL_ARB_texture_rg, 
        GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_storage, 
        GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle, 
        GL_ARB_timer_query, GL_ARB_transform_feedback2, 
        GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced, 
        GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, 
        GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, 
        GL_ARB_vertex_shader, GL_ARB_vertex_type_10f_11f_11f_rev, 
        GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array, 
        GL_ATI_blend_equation_separate, GL_ATI_texture_float, GL_EXT_abgr, 
        GL_EXT_blend_equation_separate, GL_EXT_draw_buffers2, 
        GL_EXT_draw_instanced, GL_EXT_framebuffer_blit, 
        GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled, 
        GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float, 
        GL_EXT_pixel_buffer_object, GL_EXT_provoking_vertex, 
        GL_EXT_shader_integer_mix, GL_EXT_texture_array, 
        GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc, 
        GL_EXT_texture_filter_anisotropic, GL_EXT_texture_integer, 
        GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, 
        GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm, 
        GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback, 
        GL_EXT_vertex_array_bgra, GL_IBM_multimode_draw_arrays, GL_KHR_debug, 
        GL_MESA_pack_invert, GL_MESA_texture_signed_rgba, 
        GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_packed_depth_stencil, 
        GL_OES_EGL_image, GL_OES_read_format, GL_S3_s3tc
    
    OpenGL version string: 3.0 Mesa 10.1.3
    OpenGL shading language version string: 1.30
    OpenGL context flags: (none)
    OpenGL extensions:
        GL_3DFX_texture_compression_FXT1, GL_AMD_conservative_depth, 
        GL_AMD_draw_buffers_blend, GL_AMD_performance_monitor, 
        GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_trinary_minmax, 
        GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, 
        GL_APPLE_object_purgeable, GL_APPLE_packed_pixels, 
        GL_APPLE_vertex_array_object, GL_ARB_ES2_compatibility, 
        GL_ARB_ES3_compatibility, GL_ARB_blend_func_extended, 
        GL_ARB_clear_buffer_object, GL_ARB_color_buffer_float, 
        GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_debug_output, 
        GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, 
        GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, 
        GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced, 
        GL_ARB_explicit_attrib_location, GL_ARB_fragment_coord_conventions, 
        GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, 
        GL_ARB_fragment_shader, GL_ARB_framebuffer_object, 
        GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary, 
        GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, 
        GL_ARB_instanced_arrays, GL_ARB_internalformat_query, 
        GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment, 
        GL_ARB_map_buffer_range, GL_ARB_multisample, GL_ARB_multitexture, 
        GL_ARB_occlusion_query, GL_ARB_occlusion_query2, 
        GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, 
        GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sample_shading, 
        GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, 
        GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding, 
        GL_ARB_shader_objects, GL_ARB_shader_texture_lod, 
        GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, 
        GL_ARB_shading_language_packing, GL_ARB_shadow, GL_ARB_sync, 
        GL_ARB_texture_border_clamp, GL_ARB_texture_compression, 
        GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, 
        GL_ARB_texture_cube_map_array, GL_ARB_texture_env_add, 
        GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, 
        GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather, 
        GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat, 
        GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, 
        GL_ARB_texture_query_levels, GL_ARB_texture_query_lod, 
        GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui, 
        GL_ARB_texture_storage, GL_ARB_texture_storage_multisample, 
        GL_ARB_texture_swizzle, GL_ARB_timer_query, GL_ARB_transform_feedback2, 
        GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced, 
        GL_ARB_transpose_matrix, GL_ARB_uniform_buffer_object, 
        GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object, 
        GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object, 
        GL_ARB_vertex_program, GL_ARB_vertex_shader, 
        GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev, 
        GL_ARB_window_pos, GL_ATI_blend_equation_separate, GL_ATI_draw_buffers, 
        GL_ATI_envmap_bumpmap, GL_ATI_separate_stencil, 
        GL_ATI_texture_env_combine3, GL_ATI_texture_float, GL_EXT_abgr, 
        GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, 
        GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, 
        GL_EXT_compiled_vertex_array, GL_EXT_copy_texture, GL_EXT_draw_buffers2, 
        GL_EXT_draw_instanced, GL_EXT_draw_range_elements, GL_EXT_fog_coord, 
        GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, 
        GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, 
        GL_EXT_framebuffer_sRGB, GL_EXT_gpu_program_parameters, 
        GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil, 
        GL_EXT_packed_float, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, 
        GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_provoking_vertex, 
        GL_EXT_rescale_normal, GL_EXT_secondary_color, 
        GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color, 
        GL_EXT_shader_integer_mix, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, 
        GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, 
        GL_EXT_texture_array, GL_EXT_texture_compression_dxt1, 
        GL_EXT_texture_compression_rgtc, GL_EXT_texture_cube_map, 
        GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
        GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
        GL_EXT_texture_filter_anisotropic, GL_EXT_texture_integer, 
        GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle, 
        GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, 
        GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm, 
        GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback, 
        GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, 
        GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip, 
        GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, GL_KHR_debug, 
        GL_MESA_pack_invert, GL_MESA_texture_signed_rgba, GL_MESA_window_pos, 
        GL_NV_blend_square, GL_NV_conditional_render, GL_NV_depth_clamp, 
        GL_NV_light_max_exponent, GL_NV_packed_depth_stencil, 
        GL_NV_primitive_restart, GL_NV_texgen_reflection, 
        GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_OES_EGL_image, 
        GL_OES_read_format, GL_S3_s3tc, GL_SGIS_generate_mipmap, 
        GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, 
        GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays
    
    20 GLX Visuals
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
    id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
    ----------------------------------------------------------------------------
    0x020 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x021 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x08b 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x08c 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x08d 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x08e 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
    0x08f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  4 1 None
    0x090 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
    0x091 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
    0x092 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
    0x093 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x094 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x095 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x096 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x097 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
    0x098 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  4 1 None
    0x099 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
    0x09a 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
    0x09b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
    0x05e 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    
    44 GLXFBConfigs:
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
    id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
    ----------------------------------------------------------------------------
    0x05f  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
    0x060  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
    0x061  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
    0x062  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
    0x063  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
    0x064  0 tc  0  16  0 r  . .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
    0x065 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x066 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x067 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x068 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x069  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
    0x06a  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
    0x06b 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x06c 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
    0x06d  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  4 1 None
    0x06e  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  8 1 None
    0x06f  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  4 1 None
    0x070  0 tc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  8 1 None
    0x071 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  4 1 None
    0x072 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
    0x073 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
    0x074 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
    0x075  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
    0x076  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0  0  0  0  0  0  0  0 0 None
    0x077  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
    0x078  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
    0x079  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
    0x07a  0 dc  0  16  0 r  . .   5  6  5  0 .  .  0 24  8  0  0  0  0  0 0 None
    0x07b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x07c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
    0x07d 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x07e 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x07f  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  0 0 None
    0x080  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0 16 16 16  0  0 0 Slow
    0x081 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
    0x082 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 Slow
    0x083  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  4 1 None
    0x084  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0  0  0  0  0  0  0  8 1 None
    0x085  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  4 1 None
    0x086  0 dc  0  16  0 r  y .   5  6  5  0 .  .  0 16  0  0  0  0  0  8 1 None
    0x087 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  4 1 None
    0x088 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
    0x089 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
    0x08a 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
    


Answer: I'm no expert on beignet, but I know a thing or two about direct rendering, so
this is what I could extract of reading some of the documentation.

beignet supports three modes:

  1. connect directly to the device with root (_this is what you are doing_)
  2. use dri2 to connect via the X server as a normal user
  3. use the device directly over a direct render node as a normal user

**Before going any further** , you need to check if direct rendering is
enabled in your video card driver and in the environment you're running your
scripts on. This is done with the following command in the same terminal
you're running your scripts:

    
    
    glxinfo | grep render
    

It should output something like `Direct rendering: yes`, which is great. The
glxinfo gives you all sort of other info that could be useful on helping find
the source of your problem, so be sure to _update your question_ with the
complete output of the command (without the `| grep direct` part).

**Method 2** is the easiest method of using direct rendering, but requires the
environment that is running the script to have a `DISPLAY` variable setting.
If you're running it on a terminal emulator (like the Terminal app in Mint) it
should be already set. You can check this by entering the following command:

    
    
    echo $DISPLAY
    

it should print `:0` or something like that. If it doesn't show anything, then
your script doesn't know which screen (or video card) to render to. This could
happen if you're working on a remote machine via SSH, or using the terminal
screen directly without a desktop environment. You can of course set this
variable with this command:

    
    
    export DISPLAY=:0
    

You just have to be sure that's the correct display to render to (the one
running your X server), you can check in the output of glxinfo.

**Method 3** requires that your video card supports KVM (which apparently it
does) and to enable rendering nodes. This is done when the system is booting
up, so you need to modify your boot loader parameters to enable it. If you're
booting using GRUB2, this is fairly simple (but, you know, back up any
important thing in case anything goes wrong):

**As root** , you must edit the file `/etc/defaults/grub` and look for the
following line (the … is because it can contain more parameters than just
those two):

    
    
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash …"
    

Then, you must add the parameter that enables the rendering nodes at the end
of that variable:

    
    
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash … drm.rnodes=1"
    

After that, you save the file and execute the following command as root:

    
    
    sudo update-grub
    

Then reboot the computer, and your scripts should run as a normal user.

**UPDATE:** About the NVIDIA error that you're getting running as root, could
it be possible that your laptop (because it's a laptop, right?) has hybrid
graphic cards? if so, then you should be running OpenCL on the right card.
Please update your question with the output of the following command:

    
    
    lspci | grep -i vga
    

That should tell us exactly what hardware are you dealing with.

