Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Gentoo Desktop (http://www.linux-archive.org/gentoo-desktop/)
-   -   OpenGL Issue -- "failed to create drawable" (pyglet, python) (http://www.linux-archive.org/gentoo-desktop/518088-opengl-issue-failed-create-drawable-pyglet-python.html)

Duncan 04-25-2011 03:34 AM

OpenGL Issue -- "failed to create drawable" (pyglet, python)
 
Corey Richardson posted on Sun, 24 Apr 2011 21:03:06 -0400 as excerpted:

> (I was directed to this mailing list from someone in #gentoo. Redirect
> me if this is the wrong place. Thank you!)

FWIW, this list seems as good as any. The topic is reasonably desktop
related. The down side is that this is a relatively low-traffic list so
you might not get anyone that can be of much help. The general user list
is FAR higher traffic. You may or may not get better results there.

> I'm trying to use pyglet, a python library for multimedia (commonly used
> as a game library) using OpenGL. When running any sort of script
> utilizing pyglet, the following happens:
>
> "failed to create drawable" is printed to the shell twice The window
> pyglet opens is completely black, and hangs. To close the window I need
> to kill the python process.
>
> I've chatted with the Pyglet devs and determined that the error is in
> OpenGL and not pyglet. After googling around for this error, the only
> other instance I saw was someone using nouveau that needed some sort of
> driver upgrade.
>
> The output of glxinfo is attached, as well as the output from "eix
> media-libs/mesa", the implementation of OpenGL on my system.
>
> I tried reemerging mesa with -gallium in the USE, which had the same
> result as before except instead of a hang a Segmentation Fault was
> generated. When I emerged mesa back with gallium, it emitted an
> informational blurb that gallium only worked with i915 and another intel
> card, among the intels (with some other vendor's cards, but they didn't
> pertain to me). I am using an intel i915, and I believe my system is
> properly configured for that card. I would love to see the output of
> glxinfo from someone who has a working OpenGL for the i915.
>
> A simple test case (if you would like to test on your own system) is:
>
> python -c "import pyglet as p;w=p.window.Window();p.app.run();"
>
> This requires dev-python/pyglet to be emerged. It's a small library and
> is pure-python, so it should only take ~30 seconds.

Eh... not so here. The library itself might only take that, but portage
says I have USE flag conflicts, which will certainly require > 30s to
resolve.

As most desktop users I expect, I have USE=alsa set. That's a pyglet USE
flag that according to the portage error, triggers a dependency on alsa-
lib with USE=alisp. USE=alisp is certainly going to be rather less
commonly enabled, either in general or for alsa-libs itself, and it's not
enabled here, thus thus the conflict.

Of course, I might be able to set that, but I haven't checked, perhaps
that'll cascade into another dependency.

The point is, for most users, it's going to be a rather larger job than
the 30-second trivial emerge you suggested it might be. I might still do
it, tho; haven't decided yet.

> I am using AwesomeWM, if that is of consequence.

It shouldn't be in and of itself. Only if you are using a WM that uses
OpenGL for various effects (as does, say kwin, I'm a kde guy), and you
have those and thus the OpenGL requirment enabled, might it be
interesting, and I'm not familiar with AwesomeWM so don't know if that
applies or not.

> So, how can I further debug this error, and hopefully fix it? Request
> more information if you need it. Thank you for your time

> OpenGL vendor string: Mesa Project
> OpenGL renderer string: Software Rasterizer

This is highly suspect. I'm running a Radeon here, with the native
kernel/mesa/X freedomware drivers not the proprietary stuff, but I've seen
others point to this bit of glxinfo output to see if the system's properly
running hardware OpenGL or is relying on Mesa's software renderer only, as
well, so I believe it's a reliable indicator, regardless of hardware.

Here's what my Radeon system (with hardware OpenGL active) says, for
comparison:

OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: Mesa DRI R600 (RV730 9495) 20090101 TCL DRI2

Those should specify the hardware maker (Intel in your case) and possibly
driver specific hardware and driver details. (Here, it's using the r600
sub-driver from the radeon driver, that subdriver supports the r6xx/r7xx
class chips, including the rv730 chip that's in my hardware, a Radeon
hd4650 based card. The Intel driver may report different details, but it
should definitely **NOT** say "Software Rasterizer", which indicates that
it's falling back to the mesa in-CPU software emulation code.)

*BUT*, that's with the "classic" driver (tho in kms mode). The gallium
driver for the r6xx/r7xx class radeons isn't as mature as for the earlier
r3xx-r5xx class radeons and intel hardware, and I've not experimented much
with it and know relatively little about it at this point. Gallium's on
my list to investigate further, but meanwhile, it's /possible/ (not likely
as it'd cause confusion, but possible) that the gallium glxinfo results
print software rasterizer here as well. When I get a chance to screw with
it some more I guess I'll know for sure, but meanwhile, I *SUSPECT* that
your posted strings indicate mesa fallback emulation rendering, NOT real
hardware OpenGL.

If that's the case as I suspect, I believe we have your problem. Many
OpenGL apps simply refuse to run with only the mesa software fallback, or,
in your case, appear to run, but simply black-background.

Back to the glxinfo output. Note that *other* bits of the output, like
the OpenGL version string just below the above, still correspond to the
mesa version. Again, here's mine, next mesa version but very similar to
yours, and can't be used to see whether hardware or software OpenGL is
enabled:

OpenGL version string: 2.1 Mesa 7.10.2

My netbook has Intel graphics, but I'm not as familiar with them as I am
the Radeons and am a bit fuzzy on which model it is (gma450, i915, i945, I
think I've seen all three numbers in different places but don't know how
they relate to each other), except that it's from the pre-poulsbo era.
I'll try to post its output as a followup, since that'll be at least
somewhat more directly comparable to what yours should be.

> [i] media-libs/mesa
> Installed versions: 7.10.1(11:58:19 PM 04/23/2011)(classic gallium
> nptl video_cards_intel -debug -gles -hardened -kernel_FreeBSD -llvm
> -motif -pic -selinux -video_cards_mach64 -video_cards_mga
> -video_cards_nouveau -video_cards_r128 -video_cards_radeon(tho I
don't believe likely due to the confusion it'd create because of the
previous use of those lines to check for it
> -video_cards_savage -video_cards_sis -video_cards_tdfx
> -video_cards_via -video_cards_vmware)


OK, looks like you have intel hardware configured here. And you have
classic and gallium USE flags enabled too. Good.

One thing I don't see you mention, is switching between the classic and
gallium OpenGL implementations. Again, I've not played with gallium much,
and it may be that this doesn't apply to intel at all, but at least for
radeons, eselect mesa is used to list and switch between the classic and
gallium drivers. You mention trying with gallium, but not specifically
switching to the classic drivers and trying that. Perhaps that's why you
got the segfault with mesa emerged -gallium, as if you hadn't eselect mesa
switched to the classic drivers, it could have tried to load libraries
that didn't exist in that case, thus triggering a segfault.

Maybe gallium's not working correctly on your hardware (at least with your
current software, kernel/xorg-server/mesa/ddx versions, ddx refers to the
x-driver, xf86-video-intel in your case) and you need to switch to the
classic implementation?

I'll do a followup with the netbook's glxinfo if I remember, but the above
should give you some pointers to investigate, meanwhile.

--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman

Corey Richardson 04-25-2011 04:29 AM

OpenGL Issue -- "failed to create drawable" (pyglet, python)
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 04/24/2011 11:34 PM, Duncan wrote:
> [snip]
> One thing I don't see you mention, is switching between the classic and
> gallium OpenGL implementations. Again, I've not played with gallium much,
> and it may be that this doesn't apply to intel at all, but at least for
> radeons, eselect mesa is used to list and switch between the classic and
> gallium drivers. You mention trying with gallium, but not specifically
> switching to the classic drivers and trying that. Perhaps that's why you
> got the segfault with mesa emerged -gallium, as if you hadn't eselect mesa
> switched to the classic drivers, it could have tried to load libraries
> that didn't exist in that case, thus triggering a segfault.

I think that was definitely a portion of the puzzle. I had never
selected gallium before, so it never wasn't using the classic driver.
Which makes the segfault even more mysterious. I selected gallium for
all the options and I now have a hang again (it went away when using
- -gallium, forgot to mention that). My updated glxinfo is attached. I
think it's odd that glxgears works but not pyglet. It may be like you
mentioned, not accepting the software fallback. Oh, and selecting
gallium didn't move OpenGL onto hardware, it's still running in software.

Could it possibly be a kernel option somewhere? KMS is on and I compiled
in Intel DRM support. Just flailing around wildly for causes.

- --
Corey Richardson
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNtPiVAAoJEAFAbo/KNFvpg/gH/RtKgBOThCz9hAIdPUeSgz9r
QYHp3+FhlJZOp6qgY2u9IddXV5zVZgVL3Jh4YtQjmj1Fjq0m/cN5kQXhUhKwr6bh
aUswUla6Yg5Jy3XH6OjpLqVhkQ2cHkpJNpgae3gH/nki0DpFthEULoxLl24I1bHR
oBm6DkQM7iEayB5ZAd7tpQm0lVY5/gClUYoFFDpiUyKlAg4CXtv527Rormu+lyM3
NsFk6Efu873moIrLIgBDbCPhUujUXRLmPm93gQZTqt8YYMTxhe bAtv0YLa9Y2Mf1
9QLKRZY0sW0cpk7JGz86p/cJirS/GojnfnMxcbWoYN2mdCqH/6+cbsg2l1CSSfE=
=mgUV
-----END PGP SIGNATURE-----
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
GLX_INTEL_swap_event
GLX version: 1.4
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on softpipe
OpenGL version string: 2.1 Mesa 7.10.1
OpenGL shading language version string: 1.20
OpenGL extensions:
GL_ARB_copy_buffer, GL_ARB_depth_texture, GL_ARB_draw_buffers,
GL_ARB_draw_elements_base_vertex, 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_half_float_vertex,
GL_ARB_map_buffer_range, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_provoking_vertex,
GL_ARB_shader_objects, GL_ARB_shader_stencil_export,
GL_ARB_shading_language_100, GL_ARB_shadow, GL_ARB_texture_border_clamp,
GL_ARB_texture_compression, GL_ARB_texture_cube_map,
GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_swizzle,
GL_ARB_transpose_matrix, GL_ARB_vertex_array_bgra,
GL_ARB_vertex_array_object, GL_ARB_vertex_buffer_object,
GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos,
GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_compiled_vertex_array, GL_EXT_copy_texture, GL_EXT_draw_buffers2,
GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit,
GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object,
GL_EXT_gpu_program_parameters, GL_EXT_multi_draw_arrays,
GL_EXT_packed_depth_stencil, 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_shadow_funcs,
GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture,
GL_EXT_texture3D, 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_lod_bias,
GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture,
GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_swizzle,
GL_EXT_timer_query, GL_EXT_vertex_array_bgra, GL_EXT_vertex_array,
GL_OES_EGL_image, GL_OES_read_format, GL_APPLE_packed_pixels,
GL_APPLE_vertex_array_object, GL_ATI_blend_equation_separate,
GL_ATI_separate_stencil, GL_ATI_texture_env_combine3,
GL_ATI_texture_mirror_once, GL_IBM_multimode_draw_arrays,
GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat,
GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_window_pos,
GL_MESA_ycbcr_texture, GL_NV_blend_square, GL_NV_conditional_render,
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_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays

32 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
----------------------------------------------------------------------------
0x021 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x022 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x08f 24 tc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x090 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x091 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x092 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x093 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x094 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x095 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x096 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x097 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x098 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x099 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x09a 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
0x09b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x09c 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
0x09d 24 dc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x09e 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x09f 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x0a0 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x0a1 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x0a2 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x0a3 24 dc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x0a4 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x0a5 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x0a6 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x0a7 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x0a8 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x0a9 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
0x0aa 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x0ab 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
0x05e 32 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None

48 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 . . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
0x060 0 tc 0 16 0 r y . 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 0 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 16 0 0 0 0 0 0 0 None
0x064 0 tc 0 16 0 r y . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
0x065 24 tc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x066 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x067 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x068 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x069 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x06a 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x06b 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x06c 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x06d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x06e 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x06f 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x070 32 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x071 0 tc 0 16 0 r y . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
0x072 0 tc 0 16 0 r y . 5 6 5 0 . . 0 16 0 16 16 16 0 0 0 Slow
0x073 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x074 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
0x075 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x076 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
0x077 0 dc 0 16 0 r . . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
0x078 0 dc 0 16 0 r y . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
0x079 0 dc 0 16 0 r y . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
0x07a 0 dc 0 16 0 r . . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
0x07b 0 dc 0 16 0 r y . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
0x07c 0 dc 0 16 0 r y . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
0x07d 24 dc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x07e 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x07f 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
0x080 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x081 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x082 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x083 24 dc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x084 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x085 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
0x086 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x087 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x088 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x089 0 dc 0 16 0 r y . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
0x08a 0 dc 0 16 0 r y . 5 6 5 0 . . 0 16 0 16 16 16 0 0 0 Slow
0x08b 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
0x08c 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
0x08d 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
0x08e 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow

Duncan 04-25-2011 12:18 PM

OpenGL Issue -- "failed to create drawable" (pyglet, python)
 
Duncan posted on Mon, 25 Apr 2011 03:34:38 +0000 as excerpted:

> I'll do a followup with the netbook's glxinfo if I remember, but the
> above should give you some pointers to investigate, meanwhile.

OK, on the netbook...

lspc reports Intel 945GME

The xorg log (Xorg.0.log) first reports "Driver for Intel Integrated
Graphics Chipsets: i810", THEN reports the Intel driver detecting chipset
945GME (as lspci listed), BUT THEN the Intel driver DRI2 driver is
reported as the i915.

Talking about the xorg log... check it too. If you're running hardware
OpenGL, it'll report something like this (FWIW, xorg-server 1.10.1):

LoadModule: "dri"
Loading /usr/lib/xorg/modules/extensions/libdri.so
Module dri: vendor="X.Org Foundation"
compiled for 1.10.1, module version = 1.0.0
ABI class: X.org Server Extension, version 5.0
Loading extension XFree86-DRI
LoadModule: "dri2"
Loading /usr/lib/xorg/modules/extensions/libdri2.so
Module dri2: vendor="X.Org Foundation"
compiled for 1.10.1, module version = 1.2.0
ABI class: X.Org Server Extension, version 5.0
Loading extension DRI2

Then later...

drmOpenDevice: node name is /dev/dri/card0

... followed by open result 8, (OK), another open, drmOpenMinor, busID,
etc.

Then later

intel(0): [DRI2] Setup complete
intel(0): [DRI2] DRI driver: i915

later...

intel(0): direct rendering: DRI2 Enabled

later...

GLX: Initialized DRI2 GL provider for screen 0


If instead it's saying DRI disabled, or doesn't mention it, you're
software-fallback rendered, for sure, as it's straight from the log.

FWIW, here's those lines as mentioned up-thread from the netbooks glxinfo:

OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) 945GME x86/MMX/SSE2

Kernel config:

Here I do a custom config, building everything I need directly into the
kernel, so I can disable module loading. It's easier that way as I don't
have to ensure that the modules subdirs stay in sync with the kernel.

For graphics, you'll want and/or I have:

DRM/DRI (CONFIG_DRM)

Intel 8xx/9xx/63x/64x/HD Graphics (CONFIG_DRM_I915)

I have modesetting on by default (CONFIG_DRM_I915_KMS)

Support for frame buffer devices (CONFIG_FB)

Inside that option:

Enable Video Mode Handling Helpers (CONFIG_FB_MODE_HELPERS)
(may not be necessary but can help with EDID detection and doesn't hurt)

Enable Tile Blitting Support (CONFIG_FB_TILEBLITTING)

**DO**NOT** enable the Intel framebuffer device options here as they
interfere with KMS.

Back out under graphics again, go into Console display driver support:

Framebuffer Console support (CONFIG_FRAMEBUFFER_CONSOLE)

You want that for KMS.

It's recommended to enable VGA text console (CONFIG_VGA_CONSOLE) as well,
for a fallback in case the kms drivers fail for some reason, or if you
wish to use UMS. (In the removable graphics card case, VGA text console
is also a backup in case you switch to a different card, but as Intel
graphics are normally integrated, it's not like that's a real option. But
it's still worthwhile in case there's a problem with the KMS framebuffer
or for trying UMS.)

Back out at the main graphics menu again, I have VGA Arbitration off as
it's only useful with multiple graphics cards, lowlevel video output
switch controls is on to support the key that controls that on my netbook,
and backlight and LCD device support is enabled, with both lowlevel LCD
and backlight controls enabled inside, but no specific drivers, as that's
what my hardware takes.

More interesting is the /dev/agpgart (AGP Support) option, with the Intel
chipset option checked inside it. My system's PCIE, so I'm not sure
that's actually necessary, but it's enabled and X including OpenGL works.
Maybe I'll experiment with it at some point, but that point isn't now.

And if you do still have AGP, and the BIOS has the fastwrite option, make
sure it's off. While it works on some systems, it's unsupported and the
xorg folks consider it unsupportable, because it's so crazy-buggy on so
many systems. Similarly, any fast-write options you might have in your
xorg.conf. Ensure they're off.

FWIW, on the netbook the only bit of xorg.conf config I have here is the
synaptics touchpad config file located in /etc/X11/xorg.conf.d/ . The
rest of the X config is entirely internal xorg defaults and auto-
detection. (The main system is a bit more complex as it has dual
monitors, and an xorg config that sets orientation, etc. But it too is
way smaller than it used to be.)

--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman

Brent Busby 04-25-2011 07:23 PM

OpenGL Issue -- "failed to create drawable" (pyglet, python)
 
On Mon, 25 Apr 2011, Corey Richardson wrote:


On 04/24/2011 11:34 PM, Duncan wrote:

[snip]
One thing I don't see you mention, is switching between the classic and
gallium OpenGL implementations. Again, I've not played with gallium much,
and it may be that this doesn't apply to intel at all, but at least for
radeons, eselect mesa is used to list and switch between the classic and
gallium drivers. You mention trying with gallium, but not specifically
switching to the classic drivers and trying that. Perhaps that's why you
got the segfault with mesa emerged -gallium, as if you hadn't eselect mesa
switched to the classic drivers, it could have tried to load libraries
that didn't exist in that case, thus triggering a segfault.


I think that was definitely a portion of the puzzle. I had never
selected gallium before, so it never wasn't using the classic driver.
Which makes the segfault even more mysterious. I selected gallium for
all the options and I now have a hang again (it went away when using
- -gallium, forgot to mention that). My updated glxinfo is attached. I
think it's odd that glxgears works but not pyglet. It may be like you
mentioned, not accepting the software fallback. Oh, and selecting
gallium didn't move OpenGL onto hardware, it's still running in software.

Could it possibly be a kernel option somewhere? KMS is on and I compiled
in Intel DRM support. Just flailing around wildly for causes.


You might want to prepare for the possibility that your card just
doesn't work with KMS, even different cards from the same brand.


At home, I have a Radeon FireGL V3400 that just refuses to work with any
kind of KMS, and I finally gave up. You can disable it either by
building a kernel that defaults to not having it on, or by passing a
kernel parameter from Grub ("nomodeset").


At work, I have a Radeon HD4350 which works great with KMS on console
VTY's and in X11, and hardware 3D works fine also. Both machines are
running Gentoo with the 1.9 Radeon drivers and the 2.6.38.2 kernel.


KMS is just going to have to be something that works when it works for
now.


--
+ Brent A. Busby +
+ Sr. UNIX Systems Admin + Vote for Cthulhu.
+ University of Chicago +
+ James Franck Institute + Why settle for the lesser evil?


All times are GMT. The time now is 12:37 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.