If you ever want an exercise in frustration, try adding shaders to your 100% Linux Developed MonoGame project. I’m learning stuff by leaps and bounds… in the same manner Evel Kneivel learned stuff at Snake Canyon.
2MGFX doesn’t appear to work natively on Linux. Protobuild doesn’t even make a Linux solution for it on Linux. FNA includes a solution file, but it obviously targets Windows, based on the defines and included items. You can get it to build if you update the solution, and It will run. But… It will do nothing other than print out the name of a Windows DLL (even if you put the DLL in the directory) and a message saying it failed to parse the file.
I was able to build/run 2MGFX in a Windows VM, and actually convert a .fx shader into a monogame fx binary! But, only if I use the DirectX_11 profile (meaning that it builds a mgfx file that targets Windows… which I don’t want). Changing the code to target SM2 and using the OpenGL profile *always* ends in a failure to parse the file – and I tried with the simplest of shaders.
I’ll tackle it again this weekend and document the results so that I can open a proper bug report.