Correct CIContext setup for wide gamut processing

What is the correct way to set up Core Image for processing (and preserving) wide gamut images?

I understand that there are four options for the workingColorSpace:
displayP3, extendedLinearDisplayP3, extendedSRGB, and extendedLinearSRGB.

While I understand the implications of all of them (linear vs. sRGB gamma curve and Display P3 vs. sRGB primaries), I don't know which is recommended or best practice to use. Also, might there be compatibility issues with the built-in CI filters? Do they make assumptions about the working color space?

Further, what's the recommended color space to use for the rendering destination? I assume Display P3 since it's also the color space of photos taken with the iPhone camera...

Considering the workingFormat: While I understand that it makes sense to use a 16-bit float type format (RGBAh) for extended range, it also seems very costly.
Would it be somehow possible (and advisable) set up the CIContext to use an 8-bit format while still preserving wide gamut?

Are there differences or special considerations for the different platforms for both, color space and format?

(Sorry for the many questions, but they seem all related…)
Correct CIContext setup for wide gamut processing
 
 
Q