|
From: iluvlinux <ilu...@gm...> - 2008-06-16 06:11:53
|
hi Brian
I found that clutter library calls glTexImage2D only once, the very first
time when application asks clutter to create a gl texture. And then it calls
glTexSubImage2D.
The difference is clutter calls glTexImage2D with last parameter as NULL
(always).
and glTexSubImage2D with actual pixel pointer.
I kept a breakpoint at glTexSubImage2D, and inspected pixel values. The
pixel values were same.
FYI:: Hexdump in clutter code (row 1) (Image contains vertical strips of
black, white, red, green and blue)
output in format >> r_g_b_a |
0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|0_0_0_ff|
0_0_0_ff|0_0_0_ff|60_60_60_ff|f2_f2_f2_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|
ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|
ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_ff_ff_ff|ff_46_46_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|
ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|ff_0_0_ff|
ff_0_0_ff|ff_0_0_ff|ff_0_0_98|0_ff_0_6e|0_ff_0_f1|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|
0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|0_ff_0_ff|
0_80_7f_ff|0_1_fe_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|
0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|
0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff|0_0_ff_ff
gdb output
Breakpoint 2 at 0x40731f98: file ../../src/mesa/glapi/glapitemp.h, line
1828.
Pending breakpoint "glTexSubImage2D" resolved
[New Thread 673]
[Switching to Thread 673]
Breakpoint 2, glTexSubImage2D (target=34037, level=0, xoffset=0, yoffset=0,
width=100, height=100, format=6408, type=5121, pixels=0x30bc60)
at ../../src/mesa/glapi/glapitemp.h:1828
1828 DISPATCH(TexSubImage2D, (target, level, xoffset, yoffset, width,
height, format, type, pixels), (F, "glTexSubImage2D(0x%x, %d, %d, %d, %d,
%d, 0x%x, 0x%x, %p);\n", target, level, xoffset, yoffset, width, height,
format, type, (const void *) pixels));
(gdb) p *(char *)(pixel + 24)
No symbol "pixel" in current context.
(gdb) p *(char *)(pixels + 24)
$1 = 0 '\0'
(gdb) p *(char *)(pixels + 25)
$2 = 0 '\0'
(gdb) p *(char *)(pixels + 26)
$3 = 0 '\0'
(gdb) p *(char *)(pixels + 27)
$4 = 255 '�'
(gdb) p *(char *)(pixels + 52)
$5 = 96 '`'
(gdb) p /x *(char *)(pixels + 52)
$6 = 0x60
(gdb) p /x *(char *)(pixels + 53)
$7 = 0x60
(gdb) p /x *(char *)(pixels + 54)
$8 = 0x60
(gdb) p /x *(char *)(pixels + 55)
$9 = 0xff
(gdb) p /x *(char *)(pixels + 56)
$10 = 0xf2
(gdb) p /x *(char *)(pixels + 57)
$11 = 0xf2
(gdb) p /x *(char *)(pixels + 58)
$12 = 0xf2
(gdb) p /x *(char *)(pixels + 59)
$13 = 0xff
(gdb) p /x *(char *)(pixels + 60)
$14 = 0xff
(gdb) p /x *(char *)(pixels + 61)
$15 = 0xff
(gdb) p /x *(char *)(pixels + 62)
$16 = 0xff
(gdb) p /x *(char *)(pixels + 63)
$17 = 0xff
As you can see in clutter hexdump row2 column 3 contains 60_60_60_ff which
is same as (pixels +52)
pixels +53, pixels +54, pixels +55
Cna you provide some comments over this?
Also i am not able to find the definition of glTexSubImage2D function, all
i can find some .h and .xml file for the same. Can you please tell me where
i can find its definition, if any?
thanks
varun
Brian Paul wrote:
>
> iluvlinux wrote:
>> EABI toolchain is new toolchain provided by ARM
>> http://wiki.debian.org/ArmEabiPort http://wiki.debian.org/ArmEabiPort
>>
>> and clutter is a library that provides simple apis to users who don't
>> know
>> about opengl and related stuff
>> http://clutter-project.org/ http://clutter-project.org/
>>
>>
>> I did a hexdump of some test images in totally red, or green or blue
>> color,
>> and i found that the pixel values were accurate according to the images.
>> I
>> have no idea were to look into mesa code. i did hexdump in clutter code
>> just
>> before it calls glTexImage2D.
>>
>>
>> Here are some information related to EABI todo list
>> http://wiki.debian.org/ArmEabiTodo http://wiki.debian.org/ArmEabiTodo
>>
>>
>> i have no idea about how to compile mesa with some different options ,all
>> i
>> did to compile mesa is to type "make linux" and it builds cleanly.
>>
>> if you could just help me out by providing some compile options if needed
>> with the new tool chain, i would be highly thankful to you. I know i am
>> asking something that is very difficult.
>
> I kind of doubt the bug is in Mesa at this point. Mesa's glTexImage
> functions are used a _lot_ so they should be pretty solid.
>
> If you suspect that image data is corrupt, you could set a breakpoint at
> glTexImage2D() and examine the image buffer at that point. For simple
> formats like GL_RGBA/GL_UNSIGNED_BYTE, it's pretty easy to inspect the
> hexadecimal image values.
>
> -Brian
>
>
>> kindly help
>>
>>
>> thanks for your reply
>> varun
>>
>>
>>
>>
>>
>> Brian Paul wrote:
>>> iluvlinux wrote:
>>>> hi
>>>>
>>>> i compiled mesa with new Linux EABI toolchain
>>>> i am using mesa as a libclutter backend
>>> I've never heard of those things.
>>>
>>>
>>>> But when I try to run a application which contains some images (.jpg
>>>> and
>>>> .pngs)
>>>> i can only view some colored rectangles instead of images
>>>>
>>>> earlier with gnuhash toolchain, the application runs fine, i just
>>>> switched
>>>> to new EABI toolchain and every thing messed up.
>>>>
>>>> Also i want to know how mesa loads image file, it has its own
>>>> architecture
>>>> or it uses some other library as libjpeg etc.
>>> Mesa is an implementation of OpenGL and has no functions for
>>> reading/writing image files whatsoever.
>>>
>>> Typically, a utility library is used to read/decompress an image file
>>> into a malloc'd block of memory. That memory/image can then be handed
>>> to OpenGL via glTexImage, or glDrawPixels, etc. for rendering/drawing.
>>>
>>> If you're working with jpegs, I suspect libjpeg is being used.
>>>
>>> -Brian
>>>
>>> -------------------------------------------------------------------------
>>> Check out the new SourceForge.net Marketplace.
>>> It's the best place to buy or sell services for
>>> just about anything Open Source.
>>> http://sourceforge.net/services/buy/index.php
>>> _______________________________________________
>>> Mesa3d-users mailing list
>>> Mes...@li...
>>> https://lists.sourceforge.net/lists/listinfo/mesa3d-users
>>>
>>>
>>
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> Mesa3d-users mailing list
> Mes...@li...
> https://lists.sourceforge.net/lists/listinfo/mesa3d-users
>
>
--
View this message in context: http://www.nabble.com/Mesa-compilation-using-EABI-toolchain-tp17799971p17858438.html
Sent from the mesa3d-users mailing list archive at Nabble.com.
|