I'm in the process of writing a quick paper on codec choice for a team I work with.
In the process of doing this, I dug into measured performance of H.264 vs HAP vs DXV3.
Now, I know the standard line is that DXV3 and HAP use the GPU to reduce the workload on the CPU, hence allowing more clips to be played, but at the cost of much greater file sizes.
What I'm finding is that H.264 on Macs is, in fact, hardware accelerated and has been since 2008. As such, straight up playback can be very lightweight (and obviously, uses up a lot less storage bandwidth).
The main difference between H.264 and DXV3 is in seeking (ie moving to a different position on a clip timeline). H.264 uses interframe (as well as intraframe) compression, so going to a specific frame means finding the nearest keyframe, and then decoding the intermediate frames until you get to the one you need. HAP and DXV3 just use intraframe compression, so they are quicker to find a frame.
As far as I can tell, Resolume has playback issues with H.264 because it tries to manage playback timing by itself, and is basically seeking to frames constantly, so DXV3 helps here. (As does MJPEG or any other codec that stores complete frames).
We found that in the tradeoff between playback performance and file size, we were starting to be more constrained by the latter. Since many times we are just playing back media, without a lot of seeking back and forth, a more compact codec would work best for us.
I'm wondering if there couldn't be a mode in Resolume where it just relies on the built-in timing in a file, and uses the system hardware acceleration to play H.264. I notice that people are finding that they can play a file in VLC and use Spout/Syphon to feed it to Resolume, with not a huge performance problem. Perhaps we can simulate this by having the option to use system playback features, at the cost of control over the timeline.