Pierre Ossman wrote:
> Handling 32-bit and 64-bit in the same .asm might not be realistic.
> Having two versions, one per arch, is fine with me.
>   
Well, that's not really the crux of the problem.  The crux of the
problem is getting the function call stuff right for the 64-bit
version.  What I'm saying is that,  if you want accelerated 64-bit and
are going to constrain me to using the existing libjpeg/SIMD code, then
I need help sorting out the function call semantics.  But I really think
you should consider using OML for 64-bit, for the many reasons I
enumerated in my previous message.

> As for OML, I take it you want to replace the existing SSE2 code as
> well?
>   
We wouldn't necessarily have to.  We could use OML only for 64-bit, for now.

>> -- well-proven and well-tested code base
>> -- builds and runs cleanly as a 64-bit library
>> -- works on a variety of platforms, including Windows, Linux, Mac, and
>> Solaris/x86.
>> -- written in C using SSE intrinsics, thus easier to maintain
>>     
>
> I'm a bit sceptical about intrinsics. Those have been riddled with bugs,
> primarily with regard to alignment. Do you have any information on
> which compilers have implemented these properly?
>   
I've successfully used OML on Linux and Mac and Cygwin with GCC 4 and on
Win32 with MSVC 2008.  It's a lot less of a requirement than requiring
NASM v2.00 or later.

>> We'd still use the MMX code for 32-bit, for the time being (although I
>> think I'd like to try porting the MMX code to C as well in the long term
>> -- after 1.0.0.)
>>     
>
> What do you mean by porting to C?
>   
I mean using intrinsics to do the MMX code paths as well.  I really
don't like the idea of requiring NASM to build our code.  But, as I
said, that's a long-term desire.

>> Essentially, I think it would take me less time to introduce the Open
>> mediaLib routines into libjpeg/SIMD than it would to modify the assembly
>> code to support multiple pixel formats.
>>     
>
> Bringing in another complex lib into the build right now makes me a bit
> uneasy. I'd prefer if we could wait until after the release to start
> looking at OML and if the benefits outweigh the costs.
>
> The number of combinations for pixel formats aren't that many. Can't we
> just automatically generate one function per combination? That design
> should fit with how the code is written right now.
>   
There's a lot of risk in releasing a 64-bit port of libjpeg/SIMD as
well.  I understand the desire to constrain that risk to only the 64-bit
code path, which we could easily do by using OML only for 64-bit.  I
think that doing that is, in fact, less risky than a 64-bit libjpeg/SIMD
port.  The only other option is to not have acceleration for 64-bit, and
I don't like that idea.

Also, irrespective of 64-bit, I still need help figuring out the problem
below.

> Odd. I guess RGB_PIXELSIZE must have been defined to something strange.
> Have you checked that jsimdcfg.inc looks sane?
>   
Yes, it's completely sane.  Could you please try setting RGB_PIXELSIZE=4
on your system and see if you can reproduce the problem?


------------------------------------------------------------------------------
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to