Transitions and fades operate differently depending on whether GPU effects are enabled, and that leads me to think that there’s an opportunity for an enhancement here. I have made a short video illustrating what I mention below which should clearly illustrate the behaviours I’m suggesting could be adjustable.
Transitions such as horizontal bar or barn doors proceed at a constant rate if done on the CPU, but a very non-constant rate if done on the GPU. For instance, a horizontal bar on the GPU comes in rapidly from the left side and decelerates as it moves right; if you turn on the check box to reverse it, it comes in slowly from the right side and accelerates as it moves left. On the CPU, it moves at the same speed the entire way. I don’t know the rationale for this, and either behaviour could be useful, but I suspect I’m not the only user who finds the difference in behaviour to be unexpected.
And both dissolve transitions and video fades behave differently. On the CPU, it happens at what visually appears to be a fairly constant rate; on the GPU, again, it definitely doesn’t appear constant. My guess is that this results from linear vs. gamma, but again, it’s something that could be useful either way but the difference would likely be unexpected to a user.
So here’s my suggestion. The addition of easing a while ago gave users control over the rate of changes related to keyframes. Audio fades recently gained a control to give the user some choice over the shape of the fade. Those changes were very useful, and I would like to suggest similar controls for transitions and video fades. It may not need to offer as many options as easing does; most use cases could probably be satisfied by a small number of options such as constant, S-curve, accelerating, and decelerating.