effectcraft/crates/gpu/src/shaders
bflatastic 492fa6de0a Effects: OCIO custom configs read Blender's v2 transforms and warn (#410)
Cause: the config reader didn't know ColorSpaceTransform or
ExponentWithLinearTransform and passed colours through them silently.
Blender's Linear Rec.709 -> sRGB therefore stayed in its E-white XYZ
reference space (the blue cast) without the sRGB curve. Display
colorspaces, view transforms, v2 views, looks, AllocationTransform,
BuiltinTransform and .spi1d / .spimtx files were missing too, and
nothing told the user.

Fix (from the OCIO v2 documentation and the CLF "moncurve", not OCIO's
source): ExponentWithLinear, ColorSpace, Look, DisplayView, Allocation
and Builtin transforms (identity, ACES AP0/AP1 matrices, ACEScct /
ACEScc, the sRGB / P3 / Rec.1886 / gamma / PQ displays). RangeTransform
now clamps and takes one-sided ranges. Display colorspaces meet the
scene reference through the default view transform. Added v2 views,
view looks, the looks section and .spi1d / .spi3d / .spimtx files. A
conversion is built once as a flat list of steps (Config::path /
display_path) for both the CPU effect and the GPU colour program (new
moncurve and clamp ops and the ACEScc curve; a program over the
kernel's 255 ops renders on the CPU). Named-transform resolution is
limited to 16 levels and 4096 steps, and YAML nesting to 64 levels, so
hostile or looping configs stop. Transforms that are still unsupported
(Grading Primary / Tone, ACES output, HLG…), unreadable configs and
unknown spaces are now reported: a warning under the effect in Effect
Controls, and the new effect.warning query.

Tests: ocio_config::blender_like_config_converts_linear_rec709_to_srgb
(CST, display colorspaces, v1 / v2 views, allocation, looks, builtin,
range, loops), moncurve_matches_srgb_and_inverts, builtin_styles,
yaml_nesting_is_bounded, ocio::spi_files_parse,
tests_effects::ocio_effect_warns_about_unsupported_config_transforms,
gpu tests_fx_lut::ocio_custom_config_v2 (GPU = CPU).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:57:12 +07:00
..
adv3d.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
advanced3d.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
classic3d.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
common.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
display.wgsl Viewer: Auto resolution follows the magnification; minified frames are averaged (#417) 2026-10-09 23:17:33 +07:00
fx_color.wgsl M13.23: GPU colour management (LUTs, OCIO, Color Profile Converter, Lumetri LUT/look) 2026-10-03 17:43:24 -04:00
fx_depth.wgsl M13.23: GPU 3D Channel effects (aux channels as textures) 2026-10-03 17:33:41 -04:00
fx_distort.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
fx_extra.wgsl M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy) 2026-10-03 10:53:00 -04:00
fx_gen2.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
fx_generate.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
fx_key.wgsl G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
fx_light.wgsl M13.22: GPU CC light family (CC Light Rays, CC Light Burst 2.5, CC Light Sweep, CC Light Wipe) 2026-10-03 17:31:26 -04:00
fx_lut.wgsl Effects: OCIO custom configs read Blender's v2 transforms and warn (#410) 2026-10-09 23:57:12 +07:00
fx_noise.wgsl Fix NVIDIA Dust & Scratches threshold rounding (#211) 2026-10-09 00:22:05 -04:00
fx_particles.wgsl M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_pixel2.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
fx_sim.wgsl M13.23: GPU simulation render passes 2026-10-03 18:35:22 -04:00
fx_stylize.wgsl GPU: note why Posterize's division correction is an fma (#405 follow-up) 2026-10-09 10:22:01 -04:00
fx_text.wgsl M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
fx_time.wgsl M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_tone.wgsl M13.9: gpu Color Stabilizer apply pass 2026-10-03 08:28:27 -04:00
fx_transition.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
fx_vr.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
fx_warp.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
kernels.wgsl Effects: Fractal Noise's Soft Linear has no lattice creases (#259) 2026-10-08 21:00:42 +07:00
particles.wgsl M12.7: GPU particles (CC Particle World, CC Particle Systems II, Particle Playground cannon): compute-shader simulation with GPU checkpoints, CPU as the oracle 2026-10-03 02:44:36 -04:00
sky.wgsl GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00