[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Please review packaging of clanlib2



On 21/03/12 10:50, Mark Page wrote:
> All AMD64 builds should have SSE2 enabled. (Since AMD64 has always supported SSE2)

Filling in the missing case: all builds for non-x86 (powerpc etc.) will
necessarily have SSE2 disabled (gcc -msse2 will not compile anything on
such platforms - the -msse2 option just doesn't exist).

> For the i386 platform the options are:
> A) Disable SSE2 totally
> Option A:
>   clanSWRender is not available.
>   There will not be any difference to games without sound running OpenGL.
>   With sound, the speed difference depends on the CPU speed.

Is clanSWRender a separate shared library or what? How do ClanLib games
select the software renderer?

> B) Create 2 versions of the library ( something like /usr/lib and
> /usr/lib/sse2 - http://wiki.debian.org/Multiarch/LibraryPathOverview )
> Option B:
>   This adds extra complexity for little gain
>   Application developers have to be aware that SSE2 may or may not be available

Why would game developers have to be aware of it? Are the only reasons
"the software renderer might not be available, and things might not be
fast enough" or are there others?

It's already the case that the software renderer might not be available
(all non-x86 platforms), so game developers have to be aware of that
anyway; it's already the case that things might not be fast enough (slow
CPUs), so users have to be aware of that anyway (don't run it if it's
unplayably slow).

This solution is only suitable if the versions built with/without SSE2
have the same ABI.

>   A non-SSE2 clanSWRender would have to be implemented that throws a "not available" exception

What do ClanLib games currently do on non-x86 platforms like powerpc,
where SSE2 doesn't exist?

>   In the future ClanLib 2.4 may contains inline SSE2 intrinsic in the API.

How does this work on non-x86 platforms like powerpc, where SSE2 doesn't
exist?

    S


Reply to: