Compiling via mgfxc Libmojoshader_64.dll can not be found

Hi Guys,

Probably a stupid question but I am using the mgfxc dotnet tool to compile my .fx files, when I am targeting the DirectX_11 platform my shaders compile fine and I am able to use them in my project. When I target OpenGL I am getting the following error.

Unable to load DLL ‘libmojoshader_64.dll’ or one of its dependencies: The specified module could not be found.

My question is, can I get the source and .dll directly from libmojo and add it somewhere where the mgfxc tool can find it? If so what is the path on a windows machine where this would be located. (assuming the dll isnt already there and something else is going on)

Edit: The libmojo dll is is included on the mgfxc dotnet tools store with the other required dlls, any ideas why the .dll is unable to load?

Also just to note, my monogame source is from visual studio extensions and is on the latest version, just installed it and VS2022 on a fresh windows install about a week ago.

I resolved this issue by running the command
dumpbin /DEPENDENTS libmojoshader_64.dll from a terminal within VS2022 from inside of the the folder where the libmojoshader_64.dll was located in the mgfxc dotnet tools folder.

This command showed me the 2 dependencies of libmojoshader_64.dll;
kernel32.dll and msvcr120.dll

I checked my C:\Windows\System32\ folder for these dlls and was missing msvcr120.dll. By installing the MS VS C++ Redistributable for 2013, I was able to get the msvcr120.dll and I am now able to compile the .fx files for the OpenGL target using mojoshader!

3 Likes