Nikolay Sivov (@nsivov) commented about dlls/d2d1/effect.c:
+ return transform->input_count; +} + +static HRESULT STDMETHODCALLTYPE d2d_blend_transform_SetOutputBuffer(ID2D1BlendTransform *iface, + D2D1_BUFFER_PRECISION precision, D2D1_CHANNEL_DEPTH depth) +{ + struct d2d_transform *transform = impl_from_ID2D1BlendTransform(iface); + + TRACE("iface %p, precision %#x, depth %#x.\n", iface, precision, depth); + + if ((precision != D2D1_BUFFER_PRECISION_UNKNOWN + && precision != D2D1_BUFFER_PRECISION_8BPC_UNORM + && precision != D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB + && precision != D2D1_BUFFER_PRECISION_16BPC_UNORM + && precision != D2D1_BUFFER_PRECISION_16BPC_FLOAT + && precision != D2D1_BUFFER_PRECISION_32BPC_FLOAT) These values are sequential, you could just check if it's within valid range.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/388#note_3937