https://bugs.winehq.org/show_bug.cgi?id=53629
--- Comment #1 from Rafał Mużyło galtgendo@o2.pl --- On further examination it seems the need for native d3dx9_31 is due to vkd3d-shader being utter crap at parsing the shaders (pretty basic vs_3_0/ps_3_0 stuff).
Upon failure to parse a NULL is returned (well, most likely one of shader's return parameters is set to NULL) and the game is unable to deal with that.
I wonder if some of resources not being released are like that due to being bound to shaders and those in d3d9_device_Reset should be left alone.