I have two sprout8 devices, one on unrooted stock and another running the
latest CyanogenMod 12.1 build.I am a student and sometimes I give presentations, so I use Miracast a lot as it is tedious to bring a laptop.
It works just fine on stock, as seen here (I'm using
Mirror to cast my screen to Google Chrome on my laptop):

However, it does not work on non-stock ROMs (I've tried ResurrectionRemix and CyanogenMod).
I took logs for both devices:
stock and
CyanogenModI noticed that on custom ROM (broken screencast), this happens when I disconnect from a wireless display:
These do not appear on stock, where everything else works perfectly fine.
If it makes any difference, I'm using the
Zeus Kernel with CyanogenMod.
I
can go back to stock if it is really needed, but I also use features such as blue-light blockers and custom themes
which are built into CyanogenMod (as LiveDisplay and Theme Engine, respectively) but require third-party apps on stock, most
likely through the Xposed Framework - which I'd rather avoid, due to its instability on Lollipop.
Any ideas?