Hey all, and particularly any Unity employees reading this,
Writing custom Post-Processing in Unity (talking HDRP specifically here) needs to be looked at.
Recently, I submitted a bug report (IN-82937) after finding a Custom Post Process Effect shader behaved differently in two projects on the same Unity version. On the original project, it works perfectly - sampling the scene mip pyramid for bloom using Shader Graph, doing all sorts of cool stuff. Performance is incredibly good too, faster than builtin bloom for HDRP.
The relevant parts of the reply to that bug report was as follows:
CustomPostProcessEffect, on the other hand, is designed to make it easy for users to add post process effects.
Do not use HDSceneColor nodes when using CustomPostProcessEffects. If you want to use the HDSceneColor node’s mip pyramid, we recommend using the CustomPass side of things
I find this frankly, insane. There is a perfectly good scene mip pyramid that clearly already ‘works’ in some instances/projects, but the ‘official’ way to write any serious custom post process effect (bloom, lens flare, DoF, etc, etc) is to not use ‘CustomPostProcessEffect’.