Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: OpenColorIO 2.3.2
To:
Pascal Stumpf <pascal@stumpf.co>, ports@openbsd.org
Date:
Sat, 13 Apr 2024 13:02:28 -0400

Download raw body.

Thread
On 2024-04-13 12:47 p.m., Stuart Henderson wrote:
> On 2024/04/13 14:30, Stuart Henderson wrote:
>> i386 doesn't like that one,
>>
>> /pobj/opencolorio-2.3.2/OpenColorIO-2.3.2/src/OpenColorIO/ops/cdl/CDLOpCPU.cpp:339:18: error: always_inline function '_mm_loadu_ps' requires target feature 'sse', but would be inlined into function 'LoadRenderParams' that is compiled without support for 'sse'
>>      slope      = _mm_loadu_ps(renderParams.getSlope());
>>                   ^
>> /pobj/opencolorio-2.3.2/OpenColorIO-2.3.2/src/OpenColorIO/ops/cdl/CDLOpCPU.cpp:340:18: error: always_inline function '_mm_loadu_ps' requires target feature 'sse', but would be inlined into function 'LoadRenderParams' that is compiled without support for 'sse'
>>      offset     = _mm_loadu_ps(renderParams.getOffset());
>>                   ^
>> /pobj/opencolorio-2.3.2/OpenColorIO-2.3.2/src/OpenColorIO/ops/cdl/CDLOpCPU.cpp:341:18: error: always_inline function '_mm_loadu_ps' requires target feature 'sse', but would be inlined into function 'LoadRenderParams' that is compiled without support for 'sse'
>>      power      = _mm_loadu_ps(renderParams.getPower());
>>                   ^
>> /pobj/opencolorio-2.3.2/OpenColorIO-2.3.2/src/OpenColorIO/ops/cdl/CDLOpCPU.cpp:342:18: error: always_inline function '_mm_set1_ps' requires target feature 'sse', but would be inlined into function 'LoadRenderParams' that is compiled without support for 'sse'
>>      saturation = _mm_set1_ps(renderParams.getSaturation());
>>                   ^
>> 4 errors generated.
>> ninja: build stopped: subcommand failed.
>>
>> There is also
>>
>> CMake Warning:
>>    Manually-specified variables were not used by the project:
>> ...
>>      OCIO_USE_SSE
>>
>> I'll try this for starters..
>>
>> Index: Makefile
>> ===================================================================
>> RCS file: /cvs/ports/graphics/opencolorio/Makefile,v
>> diff -u -p -r1.32 Makefile
>> --- Makefile	10 Apr 2024 10:38:06 -0000	1.32
>> +++ Makefile	13 Apr 2024 13:27:34 -0000
>> @@ -40,9 +40,9 @@ CONFIGURE_ARGS +=	-DPYTHON="${MODPY_BIN}
>>   			-Dminizip-ng_INCLUDE_DIR="${LOCALBASE}/include/minizip"
>>   
>>   .if ${MACHINE_ARCH} == "amd64"
>> -CONFIGURE_ARGS +=	-DOCIO_USE_SSE=ON
>> +CONFIGURE_ARGS +=	-DOCIO_USE_SIMD=ON
>>   .else
>> -CONFIGURE_ARGS +=	-DOCIO_USE_SSE=OFF
>> +CONFIGURE_ARGS +=	-DOCIO_USE_SIMD=OFF
>>   .endif
>>   
>>   # everything except tests
>>
> So that fixes i386, but testing on arm64 the SIMD build there is happy
> anyway, and I don't think there's a problem with other archs,  so
> I propose this:


https://github.com/AcademySoftwareFoundation/OpenColorIO/commit/9cc24865599579f02fa07c09880518bef2058a03
https://github.com/AcademySoftwareFoundation/OpenColorIO/commit/caa20dd1962f0d659a9214ac28815a1b904d4118

Thanks. That looks reasonable. It appears to be AArch64 only NEON.


> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/opencolorio/Makefile,v
> diff -u -p -r1.32 Makefile
> --- Makefile	10 Apr 2024 10:38:06 -0000	1.32
> +++ Makefile	13 Apr 2024 16:46:53 -0000
> @@ -4,6 +4,7 @@ GH_ACCOUNT =		AcademySoftwareFoundation
>   GH_PROJECT =		OpenColorIO
>   GH_TAGNAME =		v2.3.2
>   PKGNAME =		${DISTNAME:L}
> +REVISION =		0
>   EPOCH =			2
>   
>   SHARED_LIBS +=  OpenColorIO               4.0 # 1.1.1
> @@ -39,10 +40,10 @@ CONFIGURE_ARGS +=	-DPYTHON="${MODPY_BIN}
>   			-DOCIO_BUILD_GPU_TESTS=OFF \
>   			-Dminizip-ng_INCLUDE_DIR="${LOCALBASE}/include/minizip"
>   
> -.if ${MACHINE_ARCH} == "amd64"
> -CONFIGURE_ARGS +=	-DOCIO_USE_SSE=ON
> +.if ${MACHINE_ARCH} == "i386"
> +CONFIGURE_ARGS +=	-DOCIO_USE_SIMD=OFF
>   .else
> -CONFIGURE_ARGS +=	-DOCIO_USE_SSE=OFF
> +CONFIGURE_ARGS +=	-DOCIO_USE_SIMD=ON
>   .endif
>   
>   # everything except tests