397 Commits

Author SHA1 Message Date
akallabeth
fd13e9b919 [primitives,sse] unify load/store
* Use LOAD_SI128 to load __m128i values
* Use STORE_SI128 to store __m128i values
2025-02-12 14:24:10 +01:00
akallabeth
76012aac42 [primitives,sse] split headers
Split out all SSL inline functions and defines from prim_internal.h. The
header is included in files build without -msse and on some platforms
compilation will fail due to that.
2025-02-12 14:24:07 +01:00
akallabeth
00e61074b2 [unused] eliminate unused functions 2025-02-10 09:32:19 +01:00
akallabeth
44f5b6c409 [warnings] fix various clang warnings 2025-02-04 11:22:00 +01:00
Armin Novak
664321dd04 [clang,tidy] fix cast warnings 2025-01-15 15:35:09 +01:00
Armin Novak
f52801e8e0 [primitives,yuv] inline functions 2025-01-15 14:34:12 +01:00
Armin Novak
b07d850774 [primitives,yuv] allow odd height for YUV
rails mode often submits odd resolution heights, so support these in
RGB2YUV and YUV2RGB conversions.
2025-01-15 11:51:32 +01:00
akallabeth
f1d1864e3c [primitives,yuv] allow odd lines for YUV444 to RGB 2025-01-14 20:51:23 +01:00
akallabeth
d938f978a8 [primitives] fix benchmark
if no primitives benchmark is run use optimized implementation instead
of generic if one is available.
2025-01-14 09:11:55 +01:00
akallabeth
2da7b8c606 [primitives,opencl] do not fail on opencl not supported 2025-01-12 15:13:17 +01:00
akallabeth
db278ec457 [primitives] only run benchmark if opencl enabled
there is no need to compare implementation performance if only one
optimized version is available.
2025-01-12 09:26:44 +01:00
akallabeth
b358175872 [primitives,yuv] fix possible NULL dereference 2025-01-11 12:36:51 +01:00
akallabeth
4a7de1360a [primitives] update benchmark
test all available primitives types now
2025-01-10 12:51:00 +01:00
akallabeth
3a6994cd38 [primitives] expose primitives_get_by_type 2025-01-10 12:50:58 +01:00
akallabeth
cf392cdfe1 [primitives] add primtives_hint_str 2025-01-10 12:50:55 +01:00
akallabeth
a9d2c5330c [primitives,yuv] fix opencl conversion routines 2025-01-10 12:50:52 +01:00
akallabeth
7b0489e0ce [primitives,yuv] fix opencl conversion routines 2025-01-10 12:09:37 +01:00
akallabeth
6f8a852a7b [primitives,yuv] fix compiler warnings 2025-01-10 10:45:44 +01:00
akallabeth
61c049b2e6 [primitives,benchmark] add benchmark tool for primitives 2025-01-10 10:17:13 +01:00
akallabeth
e2cdcd8a18 [primitives,yuv] fix issues with SSE
* fix unaligned memory access
* fix width not a multiple of 16
2025-01-09 23:44:50 +01:00
akallabeth
6e8ab6241b [primitives,yuv] improve YUV unit test
* allow YUV offsets of up to 2 (rounding effect for YUV420 int16
  calculation size)
* better logging
2025-01-09 23:44:33 +01:00
akallabeth
3c65e5a703 [primitives,yuv] fix neon chroma filter 2025-01-09 23:41:39 +01:00
akallabeth
e93cd60352 [primitives,yuv] improve unit test
* add comparison tests between generic and SIMD optimized RGB <-> YUV
  routines
* fix inconsistencies due to chroma filter in RGB -> YUV444 -> RGB test
* enable primitives test on all platforms
2025-01-09 23:41:35 +01:00
akallabeth
19fb2b3f0a [primitives,yuv] fix chroma filter for SSE 2025-01-09 23:41:29 +01:00
akallabeth
41f06bec5f [primitives,yuv] local export RGB2Y and YUV2R 2025-01-09 23:41:25 +01:00
akallabeth
7e4d13374e [primitives,yuv] add chroma filter to YUV444 -> RGB 2025-01-09 23:41:23 +01:00
akallabeth
9a1c317876 [primitives,yuv] add chroma filter to RGB -> YUV444 2025-01-09 23:41:20 +01:00
akallabeth
ed5ac8e82e [primitives] add primitives_avc444_frame_type_str 2025-01-09 23:41:17 +01:00
akallabeth
901cf28d17 [primitives,yuv] remove broken chroma filter 2025-01-09 23:41:00 +01:00
akallabeth
f2794703b6 [primitives,colors] fix int narrowing cast 2025-01-07 21:28:11 +01:00
akallabeth
0969502541 [warnings] fix warnings detected by latest CI build 2025-01-03 09:53:48 +01:00
akallabeth
cc934795e4 [warnings] fix integer casting
* use asserting casts to detect overflows or sign conversions
* code cleanup for issues uncovered by casts
2025-01-01 12:58:34 +01:00
akallabeth
0f4b962745 [primitives,neon] fix yuv to rgb 2024-12-10 19:55:52 +01:00
akallabeth
83f2f21ad3 [warnigns] fix lots of bugprone warnings
* update-settings-tests: properly cast types in getter/setter
* wtypes: fix PHANDLE definition
* wStream: fix INT64 write function warnings
* Simplify HANDLE copy in channels, just assign after proper cast
2024-12-06 09:15:48 +01:00
akallabeth
b4976163cd [CMake,simd] unify WITH_SSE2, WITH_AVX2, WITH_NEON
* Add new CMake option WITH_SIMD to enable best available instruction
  type
* Unify simd related defines in single header
2024-12-03 11:54:36 +01:00
akallabeth
f7e5e6507b Merge pull request #10895 from akallabeth/cmake-format
Cmake format
2024-11-28 14:52:19 +01:00
Armin Novak
601249115f [codespell] fix spelling mistakes 2024-11-28 11:52:22 +01:00
akallabeth
faae38120c [cmake,format] reformat all cmake files 2024-11-27 20:41:48 +01:00
stephanebill
4f2afa8c47 spell check with codespell 2024-11-20 16:53:40 -05:00
akallabeth
db07add07a [deprecation] replace all usages of sprintf 2024-11-12 16:46:11 +01:00
akallabeth
78acedb40e [warnigns] fix Wshorten-64-to-32 2024-11-11 10:22:37 +01:00
Vic Lee
ce604a5a81 [core,primitive] fix rgb primitive copy without conversion. 2024-11-04 17:53:59 +08:00
Armin Novak
527db6783b [cmake] split tests
* Keep BUILD_TESTING, but only run tests compatible with API (for
  packaging)
* Add BUILD_TESTING_INTERNAL for all tests including internal function
  tests that modify API to be run on our CI
2024-10-24 09:45:44 +02:00
akallabeth
28037f100c [warnings] fix sign comparison issues 2024-10-22 10:11:38 +02:00
akallabeth
62e556f4d0 [warnings] fix integer narrowing 2024-10-14 10:31:43 +02:00
akallabeth
b4dbecd506 [primitives,copy] fix issues with SSE 4.1 and AVX2
* Deactivate optimized image_copy_bgr24_bgrx32
* Fall back to generic implementation instead of copying that code
2024-10-10 15:23:43 +02:00
akallabeth
7e28e0890c [primitives,copy] remove invalid optimized branch 2024-10-10 15:23:33 +02:00
akallabeth
3ddc0e7c73 [primitives,copy] use loop unroll pragma 2024-10-10 15:23:30 +02:00
akallabeth
f5171b6b47 [primitives,sse] skip optimized copy on wrong alignment 2024-10-10 15:23:28 +02:00
akallabeth
0fa9e73de6 [primitives,test] add new unittest for copy_no_overlap 2024-10-10 15:23:24 +02:00