mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-06-20 15:28:32 +02:00
The previous version used div() to separate the column and row of the current element, but that function is implemented as a libc call, which prevented the compiler from vectorising the loop and made matrix multiplication appear quite high in profiles. With div() removed, we are down from 64 calls to vfmadd132ss acting on one float at a time, to just 8 calls to vfmadd132ps when compiled with AVX2 support (or 16 mulps, 16 addps with SSE2 support only), and the function isn’t a hot spot any more. Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
||
|---|---|---|
| .. | ||
| cairo-util.c | ||
| cairo-util.h | ||
| config-parser.c | ||
| fd-util.h | ||
| file-util.c | ||
| file-util.h | ||
| frame.c | ||
| helpers.h | ||
| image-loader.c | ||
| image-loader.h | ||
| matrix.c | ||
| meson.build | ||
| option-parser.c | ||
| os-compatibility.c | ||
| os-compatibility.h | ||
| platform.h | ||
| process-util.c | ||
| process-util.h | ||
| signal.c | ||
| signal.h | ||
| string-helpers.h | ||
| timespec-util.h | ||
| weston-drm-fourcc.h | ||
| weston-egl-ext.h | ||
| xalloc.h | ||
| xcb-xwayland.c | ||
| xcb-xwayland.h | ||