SSE2 optimized compositing functions
Some time ago I wrote versions of a (small) number of compositing functions (from libnr/nr-compose.cpp) using SSE2 (with intrinsics), but I'm not sure how I should integrate them with Inkscape code (separate file? compile settings? ...?).
Also, if there is anyone who has some experience with SSE2 I wouldn't mind if they took a look (I don't have very much experience with writing SSE2 and it's quite possible that I'm not achieving optimal performance).
BTW, I have code for: nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_A8 nr_R8G8B8A8_P_EMPTY_R8G8B8A8_N_A8 nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_P And it could probably be adapted to variants of those functions. The SSE2 versions are approximately 2 times as fast as the normal versions (on my machine, a P4).
On Wed, 2006-11-15 at 12:49 +0100, Jasper van de Gronde wrote:
Some time ago I wrote versions of a (small) number of compositing functions (from libnr/nr-compose.cpp) using SSE2 (with intrinsics), but I'm not sure how I should integrate them with Inkscape code (separate file? compile settings? ...?).
Also, if there is anyone who has some experience with SSE2 I wouldn't mind if they took a look (I don't have very much experience with writing SSE2 and it's quite possible that I'm not achieving optimal performance).
BTW, I have code for: nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_A8 nr_R8G8B8A8_P_EMPTY_R8G8B8A8_N_A8 nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_P And it could probably be adapted to variants of those functions. The SSE2 versions are approximately 2 times as fast as the normal versions (on my machine, a P4).
Cool...aren't we hoping to use liboil for our SSE/SSE2 code?
Jon Phillips wrote:
On Wed, 2006-11-15 at 12:49 +0100, Jasper van de Gronde wrote:
...
Cool...aren't we hoping to use liboil for our SSE/SSE2 code?
It's definitely interesting, perhaps I should try getting that working instead? (can't promise anything, as usual I am kind of low on time, but if I have a moment I wouldn't mind having a look)
On Thu, 2006-11-16 at 00:41 +0100, Jasper van de Gronde wrote:
Jon Phillips wrote:
On Wed, 2006-11-15 at 12:49 +0100, Jasper van de Gronde wrote:
...
Cool...aren't we hoping to use liboil for our SSE/SSE2 code?
It's definitely interesting, perhaps I should try getting that working instead? (can't promise anything, as usual I am kind of low on time, but if I have a moment I wouldn't mind having a look)
Yes, I would highly encourage this approach. Also, if there is anything that is not implemented in liboil we need, we should work with that project to move it upstream...
sse/ss2/mmx is a mess in OSS and liboil is helping...plus, I'm friends with the founder :)
Jon
On Wed, 2006-11-15 at 12:49 +0100, Jasper van de Gronde wrote:
Some time ago I wrote versions of a (small) number of compositing functions (from libnr/nr-compose.cpp) using SSE2 (with intrinsics), but I'm not sure how I should integrate them with Inkscape code (separate file? compile settings? ...?).
Also, if there is anyone who has some experience with SSE2 I wouldn't mind if they took a look (I don't have very much experience with writing SSE2 and it's quite possible that I'm not achieving optimal performance).
BTW, I have code for: nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_A8 nr_R8G8B8A8_P_EMPTY_R8G8B8A8_N_A8 nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_P And it could probably be adapted to variants of those functions. The SSE2 versions are approximately 2 times as fast as the normal versions (on my machine, a P4).
http://liboil.freedesktop.org/
participants (2)
-
Jasper van de Gronde
-
Jon Phillips