[Mesa-dev] Wrong colors in 3D apps on big-endian systems

Richard Sandiford rsandifo at linux.vnet.ibm.com
Tue Mar 11 04:08:09 PDT 2014


Michel Dänzer <michel at daenzer.net> writes:
> On Mon, 2014-03-10 at 10:11 +0100, Christian Zigotzky wrote:
>> On 10.03.2014 02:49, Michel Dänzer wrote:
>> >
>> > Congratulations, you just broke llvmpipe again on big endian systems. ;)
>> I'm sorry but Mesa classic works very well on Debian Sid and Lubuntu 
>> 14.04 with these changes. ;) Why does Mesa classic work with the 
>> little-endian defines?
>
> What do you mean by 'Mesa classic'? The r600g driver works with the
> little endian defines because r600g assumes st/mesa uses the formats the
> way it did before the llvmpipe big endian fixes.
>
>> > Did you even look at the commits introducing those defines? Did you
>> > really think those defines, with explicit endianness checks, were
>> > introduced for no reason but to break drivers on big endian systems?
>> >
>> >
>> > I explained the problem in r600g and how it could be solved. Please
>> > explore that.
>> I'll try to explore that but I don't have any knowledge about the Mesa 
>> source code. The Fedora guys have solved the problem with the patch 
>> "mesa-9.2-llvmpipe-on-big-endian.patch". What do you think of this patch?
>
> It sounds like an older downstream attempt at fixing llvmpipe on big
> endian hosts, which was superseded by the upstream fixes, which were
> incidentally pushed by the 'Fedora guy' Adam Jackson. Adding him and
> Richard Sandiford (the author of the fixes) to CC, maybe they can help
> you fix up r600g.

I don't know the r600 code at all, sorry.  But like you say, if the code
is treating the x8y8z8w8 formats as low-to-high integers (x in lsb, z in msb)
then the right fix should be to use PIPE_FORMAT_xyzw8888_* instead of
PIPE_FORMAT_x8y8z8w8_*.

Thanks,
Richard



More information about the mesa-dev mailing list