Recent mesa commit

Pierre Willenbrock pierre at pirsoft.de
Fri Apr 4 13:49:36 PDT 2008


Pierre Willenbrock schrieb:
> Pierre Willenbrock schrieb:
>> Ben Gamari schrieb:
>>> Kristian,
>>>
>>> Is it possible that your recent commit
>>> (dc836edf49a08a7fd77fc1f127818b0550558581: Initialize
>>> GLX_EXT_texture_from_pixmap attributes correctly.) broke GLX? Since
>>> today, all GL applications fail to find any visuals. For instance, take
>>> glxinfo,
>>>
>>> ben at mercury /opt/exp/mesa $ glxinfo
>>> name of display: :0.0
>>> Error: couldn't find RGB GLX visual
>>>
>>>    visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
>>>  id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
>>> ----------------------------------------------------------------------
>>> 0x21 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
>>> 0x22 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
>>> 0x56 32 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
>>>
>>> I have bisected the problem down to the commit listed above. The problem
>>> in particular seems to be triggered by the first chunk of the diff
>>> (enabling some entries in the attribute map). I'm not too familiar with
>>> the plumbing for glx visuals, but I'll take a quick look at it tonight.
>>> Otherwise, is it possible that your change could have lead to some
>>> unexpected (or perhaps expected ;-) ) breakage? Thanks,
>>>
>>> - Ben
>>
>> i have been suffering from this, too, but recompiling everything from 
>> scratch did not fix this. Searching further, i found that the 
>> attribute __DRI_ATTRIB_YINVERTED has been enabled in the attribute 
>> offset list used to compare with attributes in the DRIconfig struct, 
>> although the needed infrastructure for that attribute is not in place, 
>> leading to failure in all compares.
> 
> That was a bit too early. Removing that attribute makes only 
> progs/xdemos/glxinfo work. The rest still fails.. Back to the debugger.
> 

The xserver sends no GLX_BIND_TO_TEXTURE_RGB_EXT-tag(and others) for 
visuals, therefore the comparison in driConfigEqual always fails for 
visuals. I think there are two ways to deal with this: either teach 
__glXDisp_GetVisualConfigs to send the missing tags, or teach 
driConfigEqual to ignore variables set to GLX_DONT_CARE.

Indirect rendering mode seems to be unaffected, possibly because the 
visual structs are passed in server as-is(just speculating). Some 
distros seem to always set LIBGL_ALWAYS_INDIRECT.

Regards,
   Pierre



More information about the xorg mailing list