Hi,

(gdb) bt
#0  PictureMatchVisual (pScreen=0x2aa0038dd10, depth=24, pVisual=0x2aa00434610) 
at ../render/picture.c:501
#1  0x000002aa001491e2 in PictureWindowFormat (pWindow=0x2aa00772520) at 
../render/picture.c:62
#2  0x000002aa0010f490 in compNewPixmap (pWin=0x2aa00772520, x=3, y=37, w=1274, 
h=984) at ../composite/compalloc.c:576
#3  0x000002aa0010f6f4 in compAllocPixmap (pWin=0x2aa00772520) at 
../composite/compalloc.c:617
#4  0x000002aa0010b2d2 in compCheckRedirect (pWin=0x2aa00772520) at 
../composite/compwindow.c:174
#5  0x000002aa0010b7ee in compRealizeWindow (pWin=0x2aa00772520) at 
../composite/compwindow.c:274
#6  0x000002aa000ff074 in RealizeTree (pWin=0x2aa00798df0) at 
../dix/window.c:2606
#7  0x000002aa000ff438 in MapWindow (pWin=0x2aa00798df0, client=0x2aa00386600) 
at ../dix/window.c:2683
#8  0x000002aa00098116 in ProcMapWindow (client=0x2aa00386600) at 
../dix/dispatch.c:915
#9  0x000002aa00096ca0 in Dispatch () at ../dix/dispatch.c:553
#10 0x000002aa000aa016 in dix_main (argc=2, argv=0x3ffffff82c8, 
envp=0x3ffffff82e0) at ../dix/main.c:274
#11 0x000002aa00032aa0 in main (argc=2, argv=0x3ffffff82c8, envp=0x3ffffff82e0) 
at ../dix/stubmain.c:34

In this backtrace when the execution is at PictureMatchVisual, the visuals in 
pScreen (pScreen->visuals) is loaded from miInitVisuals (whereas the red, blue 
and green masks which is getting set in this function is getting set through 
the miSetVisualTypesAndMasks). As for pVisual, which is fetched through the 
WindowGetVisual function which in turn loops through configs loaded from mesa 
(are actually taken from pGlxScreen->fbconfigs which are filled up in 
__glXDRIscreenProbe which is eventually received from the drilIndexConfigAttrib 
API) After spending some time reading u_format_table.c, u_format.h and 
dril_target.c fbconfigs loaded from the mesa library(using 
drilIndexConfigAttrib) looks very much fine. From what I read and understood, 
this part seems wrong. And in that case, from what I can understand, 
miSetVisualTypesAndMasks should not be setting hard coded values (which could 
be different for big endian machines).
I am pretty new to the code base as well as to the entire concept of graphics. 
These are the things that I understood by going through the code and running 
the debugger a few times. I am kind of stuck in this and some feedback will be 
of immense value.

Thanks,
Pranav

Reply via email to