Putting aside that I think it should be possible for you to create a user-specific profile, similarly to nvidia, by tinkering/playing/figuring out the meanings of PXSwitchSafe/PXGPUAffinity/PowerSavGPUAffinity/HighPerfState/DisableHighPerfState blb proprieties I'm not sure you really should make these kinds of broad assumptions (also, I thought once it was just about declaring AmdPowerXpressRequestHighPerformance?)
You want to avoid whatever problems in WMF?
Then find whatever it's the minimum common denominator to them, and just then starts to think to a solution.
It's nuts to make it always run in "always disregard dedicated card" mode, when 9999 years in the future.. whatever will happen
I'm doubtful it's just the fact of not-being an IGP..
And it seems strange for Windows not to already prefer integrated for video decoding (if required bits are available of course)
Well it doesn't seem possible with the ADL SDK, so apparently I have to do something else. "PXSwitchSafe/PXGPUAffinity/PowerSavGPUAffinity/HighPerfState/DisableHighPerfStat" are nowhere to be found there. Googling them brings literally a dozen results each, I'm not sure how you expected me to know about them. So apparently there are XML files and I have to run some AMD utility to register a profile? That's entirely different from NVidia.
"AmdPowerXpressRequestHighPerformance"? No. As the name implies, this is for the dGPU. I need the iGPU. Setting it to 0 instead of 1 is also ignored which is defined in the specs.
This solution is the lowest common denominator. Using other APIs like Dx9, Dx11 or OpenGL on the very same HWND works perfectly fine with the dGPU. Using Microsofts official MF player example does not. I don't have time to question weird MF bugs. Some of my users complain how UVD usage bugs out their clock rates - that's also a (very well known) bug completely out of my control which just exists on some hardware and probably won't ever be fixed.
Well, and once you realize the same UVD blocks (thus bugs) can also be shared by some APUs.. your idea of just brutally assuming integrated=>safe shatters.
Anyway, I get the idea that code-wise there's no "force low". That already being the default, I'd guess un-enforcing should be equal to that.
On another note, iirc you are free to choose whatever hw decoder available on your system in LAV filters, so you may want to check their code.