From: Chris Taylor (cht_at_imipolex-g.com)
Date: Tue Feb 14 2023 - 22:41:23 CST

Thanks for this, how do you download the VC++12 DLLs?
Chris

> On 02/14/2023 2:12 PM PST Mortimer Hemmit <mortimer.hemmit_at_gmail.com> wrote:
>
>
> Hi,
>
> Recently VMD 1.9.4a53 for 64-bit Windows has been crashing on startup
> with an OSPRay error for me. There seem to be lots of threads about
> this already (e.g.
> <https://www.ks.uiuc.edu/Research/vmd/mailing_list/vmd-l/34017.html>,
> <https://www.ks.uiuc.edu/Research/vmd/mailing_list/vmd-l/33943.html>,
> <https://www.ks.uiuc.edu/Research/vmd/mailing_list/vmd-l/32557.html>)
> so I won't repeat the error here.
>
> I think I've found the cause of the error (or at least one part of it).
>
> Quick summary: The embree3.dll library that ships with VMD 1.9.4a53
> depends on the VC++12 redistributable. This is old and some newer
> machines (like mine) might not have it installed.
> Two possible solutions:
> 1) Recompile embree3.dll to depend on the more modern VC++14
> redistributable (I tested this by copying it over the dll from more
> recent embree releases, and they let VMD start out of the box)
> 2) Include the VC++12 DLLs with VMD or convince end users to install
> it themselves
>
> More details:
> One can check the dependencies with "dumpbin /dependents embree3.dll"
> in developer command prompt:
>
> Dump of file embree3.dll
>
> File Type: DLL
>
> Image has the following dependencies:
>
> tbb.dll
> MSVCP120.dll
> MSVCR120.dll
> KERNEL32.dll
> ADVAPI32.dll
>
> and when I went to my library directories, I actually did not have
> MSVCR120.dll installed. Installing it from Microsoft docs did the
> trick and VMD started up normally.
>
> Is embree3.dll the ONLY file that poses a problem? It seems so. I
> replaced VMD's embree3.dll with various releases of embree (namely
> 3.2.2, 3.2.3, 3.2.4, 3.3.0, 3.5.0) and only the ones compiled with
> VC++14 let VMD start properly, which imply that nothing else in the
> VMD startup chain requires MSVCR120.dll and friends.
>
> One could probably dig further to look for other odd library
> dependencies and prove that what's here is the real problem, or test
> whether OSPRay actually works once VMD starts, but hopefully this
> provides a good starting point.
>
> Mortimer