@joevt:
This reddit post says dual monitors via an OWC TB3 dock connected to a (TB2) 2015 MBP aren't working (but were using two daisy-chained TB2 docks).
[If TB3 docks weren't so expensive I'd give it a try myself.]
Two 4K60 displays to Thunderbolt 2 is difficult. You need a third display that is limited to HBR link rate (1440p60). It's not enough for the display to be using 1440p60 timing - it has to have a max link rate of HBR (not HBR2) - it cannot have a 4K60 capability (or a 1440p120 mode, etc). Connect that first, then when you connect the first 4K60 display, it will also be limited to HBR link rate (because that's the max allowed by the remaining bandwidth of Thunderbolt 2). Then disconnect the 1440p display. The 4K60 display will still be using HBR link rate. Connect the second 4K60 display and it will also be limited to HBR link rate. Each 4K60 display will then be limited to HBR link rate (4K30 or 1440p60).
His dual Elgato setup worked because one of the displays was limited to 4K30.
https://help.elgato.com/hc/en-us/ar...at-ports-does-Elgato-Thunderbolt-2-Dock-have-
For this situation, it would be nice if macOS had a button to alter the DisplayPort link rate manually. I think you probably just need to poke some Thunderbolt registers which are documented in the Alpine Ridge document that appeared in the forums. Maybe you could enable two HBR2 connections over Thunderbolt 2. It should work as long as the combined pixel clock of both displays does not exceed 833 MHz @ 8bpc or 667 MHz @ 10bpc (multiply pixel clock and bpp and make sure the result is less than 20 Gbps).
For Titan Ridge, maybe you could enable two HBR3 connections like Apple does for the XDR in dual tile mode. Dual HBR3 should work as long as you don't exceed a combined pixel clock of 1667MHz @ 8bpc or 1333MHz for 10bpc. The XDR is 648.91MHz x2 = 1297.82MHz total. Apple doesn't enable dual HBR3 if there's a Thunderbolt device or optical cable between the XDR and the host. If we could change the link rate ourselves instead of relying on Apple's trick then we could add daisy chaining to XDR which some people need to separate the XDR from the Mac at a greater distance. Putting the Mac in a server room and connecting the XDR with a super long optical Thunderbolt cable currently only works for single tile mode up to 4K or dual tile up to 5K or requires a GPU that supports DSC for single tile 6K.
With the ability to change the link rate in code, you wouldn't have to do the connection gymnastics I described above to connect two high bandwidth displays (two displays that could exceed the max bandwidth of Thunderbolt).
It seems to me that all Thunderbolt DisplayPort connections should have the max link rate, then the OS should be able to monitor the bandwidth pool and disable display modes that the monitor supports but cannot be used because the bandwidth pool would be exceeded. This is similar to what is necessary to handle an MST Hub (why doesn't Apple support MST for multiple displays?). A method is needed to map GPU DisplayPort connections to Thunderbolt controllers so you can see the path of the DisplayPort signal and know where the bottlenecks are. I think this should be possible if you can match info from the DisplayPort input of the Thunderbolt controller to the output from the GPU.
For calculating the bandwidth pool: in the Thunderbolt chain, you have to consider the connections between all the Thunderbolt controllers in the chain (10 Gbps, 20 Gbps, 40 Gbps). Before and after the Thunderbolt chain could exist a chain of MST Hubs so you have to consider those as well (various DisplayPort link rates and link widths for each MST Hub in the chain). Another consideration for bandwidth pool is the max capabilities of the GPU. That one is a little more difficult to deal with.
Bonus points if the UI can show the modes that would be possible if the bandwidth used by another display was reduced. It should have options that can reduce the bandwidth of a display, other than reducing the resolution - this means pixel depth (8bpc, 10bpc, 12bpc, 16bpc; Apple, please add 6 bpc for fun!), chroma sub-sampling (4:2:0 and 4:2:2) and DSC.