[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