cancel
Showing results for 
Search instead for 
Did you mean: 

Drivers & Software

numinari
Adept I

Backwards Compatability issue with Shadows Rendering in directx 9

Full backwards compatability for directx 9 api on R7 chips, or radeon 5700.

Here is the issue, shadows don't work in Everquest and I noticed some people have been having other problems with blender and maya.

Shadow Rendering Shadows Not Rendering | EverQuest Forums 

here's a link to the discussion

Well I tried https://fdossena.com/?p=wined3d/index.frag

the 64 bit version maybe didn't load?

but with the 32 bit version the launcher will not work

So I guess I am out of luck unless I compile my own wine or run this under linux with wine there. I don't really feel like pestering anyone, its just sad there is no built in backwards compatibility to the AMD Radeon drivers.

Going to chalk it up to Microsoft wanting to sell more dx 12 dev kits, as this could be easily fixed with a native update to the d3d libraries to call the newer vulkan spec, but its also not Microsoft responsibilityto make sure AMD is fully supported... ugh. I feel like a rube with just enough knowledge to know what is broken but not enough ability to fix it. I would voluntarily create a solution and give it to DBG/Darkpaw if I had the skills. There are a lot of options available without putting the calls in the eqgame engine or modifying the game itself in any way.

I don't blame anyone at all for no longer wishing to support old graphics APIs from a decade ago. It is what it is. Thank you so much to those who have worked on this over at DBG, AMD, and MS, for getting this to work at all on my modern computer!

[IMG]

There are ways of running wine builds natively under windows with cgywin but i am not very tech savvy not sure i want to go through all that effort over broken shadows... they are sooo cool though!

Also the Vega 8 is a great card. It is running different firmware than the R7 (RX 5700 + series). So your card supports native dx3d9 calls.

Is essentially my thoughts on the issue.

These games work great under linux and wine but run poorly on native windows 10. I don't know what to say other than, I wish, either microsoft would implement an update to their API or AMD would support direct3d shadow rendering.

As it is the drivers run smoothly and the game does not crash. This I am sure affects many users more than just me.

Thanks for taking the time to consider this issue. I hope it helps provide a perspective that allows you to provide a better product to your loyal customers!

1 Solution

Windows 10 doesn't even run Direct X 9 natively it uses an emulation type wrapper to process it. 

My guess is that with the architectural changes in Navi AMD cards who truly used to have the best support of older games IMHO now have the worst. No idea if AMD ever plans to address this.

You can contact AMD with your thoughts here: https://www.amd.com/en/support/contact-email-form 

View solution in original post

12 Replies
numinari
Adept I

I would also just like to add, I cant seem to find the edit for my original post. Directx 9 was a really great API once. It is something a lot of newbie developers can get ahold of and get into, theres a ton of documentation on it, and a lot of the hardware existing in the world today supports it. I feel like it would be foolish to abandon it as a legacy API as many new studios should be using it for its straightforwardness and accessibility. The proliferation of DX9 capable hardware is pretty thorough internationally.

Windows 10 doesn't even run Direct X 9 natively it uses an emulation type wrapper to process it. 

My guess is that with the architectural changes in Navi AMD cards who truly used to have the best support of older games IMHO now have the worst. No idea if AMD ever plans to address this.

You can contact AMD with your thoughts here: https://www.amd.com/en/support/contact-email-form 

Out of curiosity do you think downgrading the GPU would help? Or is this maybe a gamble. I noticed someone with a Vega GPU doesn't have the same problem as seen in that thread. Or is this more of a windows 10 issue? I am considering buying a much cheaper card just for this game and benching or re-selling this 5700. I am not really interested in spending $400 for a new card, but I could be convinced to buy a card specifically for this game for $99 or so.

On the upside. WoW looks incredible on this card going into the future, it is a pretty good deal still, and I haven't tried any newer games like the Dues ex reboots. I'm a little worried something like Skyrim would run into the same problems. Thank you for your thoughts and feedback.

0 Likes

Figured I would update with this informatin:

[IMG]

LOL I got it to load thru the dxvk wrapper but i dont think it supports vertex shader 3.0 i've tried disabling some settings i havent figured out how to get the engine to run shader 2.0? I am guessing maybe my card will not support shader 2.0 and I am totally guessing thats what I got going on because I have no idea I am not a guru... hence the totally black ground

But, I did get it to load shadows. They are pretty narly lookin i like them.

sigh... i may post something over at the dxvk forums see if they care to look into it any

https://github.com/doitsujin/dxvk as this is the mainly maintained branch, hopefully as the project matures it will get better support for these old games

I am going to go hound the dxvk developers and see if they can help a bit! Just to prove the card can render shadows just fine using the Vulkan API, which I am hopeful will become a big thing soon!

0 Likes

That's not true at all. The only part that is emulated is the fixed function pipeline which just uses shaders now.

0 Likes

Really prove where Direct X9 is installed in Windows 10. It's not. Yes only the calls that can't be directly translated through the later versions of DX are emulated. Regardless as I said it is using later versions of DX, exactly like I said, not DX9. 

0 Likes

It literally is not, it's the same vendors implement the same DDI they have always implemented for D3D9.

D3D9On12 exists but that's only used if the vendor does not implement D3D9 themselves -- which AMD does.

0 Likes
leyvin
Miniboss

By Default Windows Vista, 7, 8 and 10 will run DirectX 9 Runtimes via the DXGI Emulation Layer.

This means your Driver will think it's running DirectX 10/11/12., and the Application will think it's running DirectX 9.0c... and this is where Feature Support runs into a little problem.

Now NVIDIA tends to have a better track records with "Legacy Support" because, well their Drivers pick and chose what to run Emulated under Modern Direct3D and which to run Native DirectX 9. 

This is because they have a habit of doing A LOT of game specific patches for either performance or compatibility reasons (especially for older CUDA Architecture).

AMD however since they dropped support for TeraScale Architecture, also dropped all of their DirectX 9/10/11 "Optimisations" for said Architecture (some of which were useful for GCN and remain a frustration that they have no intention to bring them back). As such Drivers 17.9.2 on-ward no longer switch to Native DirectX 9.

(I mean a plus side of this is that you're not installing almost 500MB of Display Drivers...)

This however doesn't mean the Drivers and Hardware don't support Native DirectX 9 however. 

Still a problem you might run into is that the DirectX 9 Runtimes won't install... either they'll claim a Newer Version is Installed *or* just Crash.

Well a way around this is to manually unpack the CAB Files.

Now a "Safe" Approach to enabling Native DirectX 9 is to copy all of the DirectX 9 Files into the Game Runtime Directory (i.e. where the Game Executable is)... as Runtimes will ALWAYS use Local Libraries over System Libraries. 

Another approach is of course to manually "Install" to the Windows/System32 Directory... but keep in mind this will force ALL Games to run Native, which if there are issues that require a Driver Patch; yeah you're not going to get them, as you can't do the same trick with Driver Libraries / Runtimes to use a specific Driver Release. 

Typically you don't actually NEED all of the Files Mind... just d3d9.dll and d3d9x.dll will typically do. 

Just like for DirectX 8.1 you want d3drm.dll. 

I'm fairly sure there are Reddit Posts and such that will walk you through the process fully, as it's been sometime since I've come across a game that really needed to run Natively. 

Yes moving those old .dll files helps a few games I have that just don't work right otherwise. Always nice when you can figure out a way to make things work when Microsoft removes old DX versions and the new way doesn't work. 

A lot of the time a great place beyond reddit to find the information on how to get the games working is in the Steam Discussion Page for the game. Tons of advice on getting old games working well. 

> By Default Windows Vista, 7, 8 and 10 will run DirectX 9 Runtimes via the DXGI Emulation Layer.

It literally is not, it's the same vendors implement the same DDI they have always implemented for D3D9.

 

D3D9On12 exists but that's only used if the vendor does not implement D3D9 themselves -- which AMD does.

As for the DXGI inter-op, that's just something that comes hand-in-hand with the D3DDDI with OpenResource etc.

Please do not go messing with your runtime like this, all you will do is break things and achieve nothing. The game is already running natively on D3D9 and nothing is going to change.

So to be clear here, what you are saying is my card no longer supports hardware shadows, and there's no software implementation of it in the directx june2010 redistrutable from MS? Or that my directx 9 calls are being wrapped by microsofts june 2010 version, here: Download DirectX End-User Runtimes (June 2010) from Official Microsoft Download Center into directx 12 calls because that is just how microsoft handles it and nothing is native anymroe?

I guess my major concern is if I am going to ask for features or fixing from MS I really would love to know what exactly is going on here. I don't see any reason my card or the driver my card has can't load the older extension and draw the shadows, it works in all the other APIs my card will do. So this seems like a Microsoft windows 10 directx only issue.

0 Likes