[Mesa-dev] [Bug 89068] glTexImage2D regression by texstore_rgba switch to _mesa_format_convert

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Feb 11 01:19:01 PST 2015


https://bugs.freedesktop.org/show_bug.cgi?id=89068

--- Comment #5 from Iago Toral <itoral at igalia.com> ---
(In reply to Iago Toral from comment #4)
> (In reply to Brad King from comment #0)
> (...)
> > After the change, _mesa_format_convert is called but none of the coe paths
> > invoking _mesa_pack_ubyte_rgba_row is taken.  Instead the path using
> > compute_src2dst_component_mapping is taken and the result is different.

The kind of effect you get looks as if you were getting alpha values < 1.0
after the texture upload and then blending against the background. If the
texture has a solid alpha channel that should not happen..., however, I wrote a
small program to do this same kind of texture upload and it works fine for me,
it only blends against the background if I pass alpha values < 65535 in the
input, otherwise it won't blend, which is the expected behavior... so I am not
sure about what is going on in your case.

For reference, this is the output I get in a GDB session for that texture
upload (on an Intel GPU):

> Brad, it would be super helpful for me to understand what is going on if you
> could run a gdb session and print:
> 
> a) the values of the parameters passed to compute_src2dst_component_mapping
> _after_ it has been called (they all are 4-element arrays, the last one is
> an out parameter so that is why I need the values after the call has been
> done)

(gdb) p src2rgba
$1 = "\000\001\002\003"
(gdb) p rgba2dst
$2 = "\000\001\002\003"
(gdb) p rebase_swizzle
$3 = (uint8_t *) 0x0
(gdb) p src2dst
$4 = "\000\001\002\003"

These are the expected values for my Intel hardware.

> b) The following input parameters for the call to _mesa_swizzle_and_convert
> right after: src_type, dst_type, dst_num_channels, src_num_channels,
> normalized, width.

(gdb) p src_type
$5 = MESA_ARRAY_FORMAT_TYPE_USHORT
(gdb) p src_num_channels
$6 = 4
(gdb) p dst_type
$7 = MESA_ARRAY_FORMAT_TYPE_UBYTE
(gdb) p dst_num_channels
$8 = 4
(gdb) p normalized
$9 = true

Again, these are the expected values.

> Could you do this?

And also, what GPU are you running on?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150211/d8d8d7d4/attachment-0001.html>


More information about the mesa-dev mailing list