blender/intern/cycles/test
Brecht Van Lommel 110de4f488 Cycles: Half float denormals and optimizations
* Switch to more accurate half and float conversion supporting denormals
  to match native instructions. This makes CPU and GPU match more
  closely in some tests and avoids clipping some low values.
* Inf and NaN are not supported still, as we already filter these out
  and there is no reason to have the overhead.
* Change avx2 kernel to require f16c. For all physical CPUs avx2 implies
  f16c, and it's only for emulation and virtual machines that this would
  not be the case. So it's fine to fall back to the sse4.1 kernel then.
* Assume half instructions are available with ARM NEON. There is no
  defined minimum architecture, but Blender assumes the same and ARMv8.2-A
  is relatively old.
* For everything else there are SIMD optimized fallbacks.
* New unit tests were added, coverting both native instructions and
  fallback implementations, and half/half3/half4.

Fix #152763: Half float image low values are clipped

Pull Request: https://projects.blender.org/blender/blender/pulls/154042
2026-02-09 13:01:08 +01:00
..
CMakeLists.txt Cycles: Half float denormals and optimizations 2026-02-09 13:01:08 +01:00
integrator_adaptive_sampling_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
integrator_render_scheduler_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
integrator_tile_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
kernel_camera_projection_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
render_graph_finalize_test.cpp Refactor: Cycles: Colorspace changes to prepare for texture cache 2026-01-14 17:57:45 +01:00
util_aligned_malloc_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_boundbox_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_float8_avx2_test.cpp
util_float8_avx_test.cpp
util_float8_sse2_test.cpp
util_float8_test.h Cycles: Half float denormals and optimizations 2026-02-09 13:01:08 +01:00
util_half_avx2_test.cpp Cycles: Half float denormals and optimizations 2026-02-09 13:01:08 +01:00
util_half_test.cpp Cycles: Half float denormals and optimizations 2026-02-09 13:01:08 +01:00
util_half_test.h Cycles: Half float denormals and optimizations 2026-02-09 13:01:08 +01:00
util_ies_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_math_fast_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_math_float3_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_math_float4_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_math_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_md5_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_path_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_rgbe_test.cpp Cleanup: spelling in comments (make check_spelling_*) 2025-08-24 06:26:08 +00:00
util_string_test.cpp Cycles: Show CPU only name under Cycles devices for CPU 2025-12-05 20:14:19 +01:00
util_task_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_time_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00
util_transform_test.cpp Cleanup: Cycles: Use gtest header instead of Blender test header 2025-07-31 19:46:54 +02:00