d3d9.dll and why it works.

Post » Fri Nov 19, 2010 8:20 am

After much internet searching I have found the origin/creator of the original the one and only d3d9.dll and have also constructed a working theory based on the information that I have gathered. I hope this thread falls to Bethesda's attention so they can resolve these issues. First lets dispel some internet rumors, the performance issue in question does not involve the facial animations of npc's in the slightest and as such the .dll has no noteworthy effect upon these. And as such the ToggleEmotions(temo) will have no effect upon the very specific performance issues caused by this problem. (So please lets leave the tweakguides discussion out of here).

What it does do straight from the creator. who first posted the .dll here on oldblivion: http://www.oldblivion.com/sm/index.php?PHPSESSID=8f9479cf925711b61f80bdaac82699f9&action=profile;u=1068;sa=showPosts

Hi all,

I'm the lead developer of SwiftShader and I found out that the game can actually be run WITH heads when the 'adapter identifier' is spoofed so that the application thinks it's running on a different graphics card (that FaceGen does support).

So I created a DLL that will do this for you. You can download it here: links deleted

You can use it two ways:
1) Just place the d3d9.dll file in your Fallout3 folder. The game will use your graphics card, and hopefully it will support the actual rendering of the heads.
2) If not, you can use this in combination with SwiftShader. Rename SwiftShader's d3d9.dll file into swiftshader-d3d9.dll, and also place it into the Fallout3 folder.

Don't forget to set bUseFaceGenHeads back to 1! Cool


So as you can see this file was first uploaded August 03 2009. (How the community thought about using this to fix issues still sort of baffles me) This is also why there are calls in the .dll file to a swiftshader-d3d9.dll which does not come included and would force the game to use cpu rendering for shader support. Again there is no change to the quality of animations referenced anywhere in this post so this does not seem to be the cause of these performance issues.


What the issue does seem to be caused by however is the way FaceGen interprets videocards. More specifically it uses a http://msdn.microsoft.com/en-us/library/bb174317%28VS.85%29.aspx method and in the words of the original creator of the .dll file it
Basically tells the application the name of the graphics card. It's incorrect to use that information to determine the card's capabilities (there are separate methods for that), but that's what the FaceGen component of Fallout 3 is doing


So what I am proposing, in my theory, is that FaceGen is simply getting incorrect results from the IDirect3D9::GetAdapterIdentifier method and as such might be misjudging the videocards capabilities and will as a result use a shader that is badly optimized for the card in question. So the way the fix is most likely to operate is by, either, overriding the IDirect3D9::GetAdapterIdentifier and forcing a very specific shader path or it is interacting with FaceGen in a way that is forcing it to use some other form of card capability detection.

Furthermore the file is named d3d9.dll simply because that name allows it to
intercept Direct3D function calls
, it is not named d3d9.dll because it is forcing the game to render in directx9. Windows7/Vista are still emulating dx9 in dx10 as they should as it's been proven to be faster. It is also not named d3d9.dll because it shares similarities with the ones you already have installed on your system. The d3d9.dlls in your own system32 and sxs (forgot the full filepath sorry) folders are not suitable replacements. They will not increase performance and at worst might introduce other issues.

And thats about it folks (for now atleast)

In closing I do have to say this though: I believe that this issue requires urgent Bethesda investigation because it is absolutely crippling the performance of a great many people with high and low end systems. And it might very well be affecting virtually every user of this game. The downloads of these two fixes: http://www.newvegasnexus.com/downloads/file.php?id=34778 and http://www.newvegasnexus.com/downloads/file.php?id=34970 have reached a current high of 130000 downloads. This to me indicates that this is a very large issue that is affecting a large portion of the userbase and, as a result, they are currently using one of the most ghetto duct-tape style performance fixes I have ever seen in my life. This NEEDS to be adressed in an official patch soon.
User avatar
Sakura Haruno
 
Posts: 3446
Joined: Sat Aug 26, 2006 7:23 pm

Post » Fri Nov 19, 2010 5:44 pm

TL:DR In a nutshell.

d3d9.dll fixes frame rate lag caused by humanoid NPCs.

d3d9.dll does not lower graphics quality.

Oh I read the post obviously, as my statement in a nutshell matches the op's. Some of you must still read TL:DR in the [censored] WoW context.
User avatar
Brιonα Renae
 
Posts: 3430
Joined: Mon Oct 22, 2007 3:10 am

Post » Fri Nov 19, 2010 12:47 pm

Oh Jesus Christ please ignore the above post by "FNVFIxer". If you have nothing constructive to add to the discussion then please stay out of it.

Thank you, APB, for your information. I absolutely agree that Obsidian needs to fix this very serious (and, frankly, unbelievable) problem asap as the .dll wrapper fix is as you've described it: very cheap. It works, and makes the game playable for many, many people, yes, but it's still not acceptable.

For anyone wondering about quality of visuals lost when running the d3d9.dll fix, try temporarily removing it and load up a save game in some tunnels. The ones below the RETCONN facility, for instance. You will notice some great lighting effects all of a sudden show up, some neat steam effects that weren't there before, and so on. It's not only underground, as well. Many buildings have lights on their sides that don't show up with the fix in place, and I suspect there's a lot more we're not seeing by being forced to use this very band-aid like workaround.

OBSIDAN PLEASE FIX THIS NOW. HOW DID YOU EVEN GET THE GAME OUT THE DOOR LIKE THIS?
User avatar
Nick Jase Mason
 
Posts: 3432
Joined: Sun Jul 29, 2007 1:23 am

Post » Fri Nov 19, 2010 10:04 pm

For anyone wondering about quality of visuals lost when running the d3d9.dll fix, try temporarily removing it and load up a save game in some tunnels. The ones below the RETCONN facility, for instance. You will notice some great lighting effects all of a sudden show up, some neat steam effects that weren't there before, and so on. It's not only underground, as well. Many buildings have lights on their sides that don't show up with the fix in place, and I suspect there's a lot more we're not seeing by being forced to use this very band-aid like workaround.

OBSIDAN PLEASE FIX THIS NOW. HOW DID YOU EVEN GET THE GAME OUT THE DOOR LIKE THIS?

If you put your settings back to Ultra or High or whatever you were using after applying the fix, there are NO lighting effects or anything lost. I saw this claim made in one of the other DLL threads, so I did some extensive testing and took lots of screenshots with and without the DLL. I have found no visual differences, no missing lights, steam, or other effects.

I agree that it would be nice for Bethesda/Obsidian to fix the FaceGen code so the fix is not needed, but as far as I can tell, the DLL makes the game run as intended with no loss of visual fidelity.
User avatar
Stacyia
 
Posts: 3361
Joined: Mon Jul 24, 2006 12:48 am

Post » Fri Nov 19, 2010 3:59 pm

An interesting post but i'm sure the devs are on top of it already. The thing is, lots of people see this DLL fix and shout "Hey Beth, if this DLL can fix it so easy, why cant you?". But from a dev point of view, you're not going to take a hacked DLL and base your fix around that. If the DLL simply tricks the game into disabling graphical features due to old hardware, it doesnt help track down whats causing the slowdown.
User avatar
Eoh
 
Posts: 3378
Joined: Sun Mar 18, 2007 6:03 pm

Post » Fri Nov 19, 2010 11:09 pm

An interesting post but i'm sure the devs are on top of it already. The thing is, lots of people see this DLL fix and shout "Hey Beth, if this DLL can fix it so easy, why cant you?". But from a dev point of view, you're not going to take a hacked DLL and base your fix around that. If the DLL simply tricks the game into disabling graphical features due to old hardware, it doesnt help track down whats causing the slowdown.

It doesn't disable any graphical features. It does disable the glitch that causes terrible framerates, though.

People seem to have the impression that it downgrades the graphics because the hardware re-detection sets everything to Medium the first time you run the launcher after applying the fix. Just set it back to High or Ultra and you're ready to go.
User avatar
Saul C
 
Posts: 3405
Joined: Wed Oct 17, 2007 12:41 pm

Post » Fri Nov 19, 2010 1:51 pm

If you put your settings back to Ultra or High or whatever you were using after applying the fix, there are NO lighting effects or anything lost. I saw this claim made in one of the other DLL threads, so I did some extensive testing and took lots of screenshots with and without the DLL. I have found no visual differences, no missing lights, steam, or other effects.

I agree that it would be nice for Bethesda/Obsidian to fix the FaceGen code so the fix is not needed, but as far as I can tell, the DLL makes the game run as intended with no loss of visual fidelity.


It seems I indeed did miss something! It's embarrassing, but I'm big enough to admit when I'm wrong. I wonder which game setting disabled the interior lights in "dungeons"?

Anyway, thanks for pointing out my error. Apologies to all for any confusion I caused.
User avatar
Jose ordaz
 
Posts: 3552
Joined: Mon Aug 27, 2007 10:14 pm

Post » Fri Nov 19, 2010 4:47 pm

It seems I indeed did miss something! It's embarrassing, but I'm big enough to admit when I'm wrong. I wonder which game setting disabled the interior lights in "dungeons"?

Anyway, thanks for pointing out my error. Apologies to all for any confusion I caused.

I'm not sure off-hand which settings would control the effects that you've been missing--I would suggest setting it to Ultra, see what your framerates are like, then play with settings things lower a little at a time if necessary.

I was worried the first time I ran the game, getting sub-30 fps. (on my brand new GTX460!) The weird thing was, lowering settings didn't help at all. After applying the fix, I started gradually pushing the settings back up, and I found that nothing caused any fps drop. Eventually, I just hit the Ultra button, and now I'm enjoying great framerates with all settings maxed.
User avatar
Lynette Wilson
 
Posts: 3424
Joined: Fri Jul 14, 2006 4:20 pm

Post » Fri Nov 19, 2010 6:54 pm

If you put your settings back to Ultra or High or whatever you were using after applying the fix, there are NO lighting effects or anything lost. I saw this claim made in one of the other DLL threads, so I did some extensive testing and took lots of screenshots with and without the DLL. I have found no visual differences, no missing lights, steam, or other effects.

I agree that it would be nice for Bethesda/Obsidian to fix the FaceGen code so the fix is not needed, but as far as I can tell, the DLL makes the game run as intended with no loss of visual fidelity.


replied to wrong post
User avatar
Emily Jeffs
 
Posts: 3335
Joined: Thu Nov 02, 2006 10:27 pm

Post » Fri Nov 19, 2010 3:29 pm

An interesting post but i'm sure the devs are on top of it already. The thing is, lots of people see this DLL fix and shout "Hey Beth, if this DLL can fix it so easy, why cant you?". But from a dev point of view, you're not going to take a hacked DLL and base your fix around that. If the DLL simply tricks the game into disabling graphical features due to old hardware, it doesnt help track down whats causing the slowdown.


you are clearly delusional. This is a fix for FO3 that is from 2 years ago. Obviously they have no intention of fixing anything that requires a software engineer. They are only going to fix scripting issues and maybe some easy to do console optimization.
User avatar
Davorah Katz
 
Posts: 3468
Joined: Fri Dec 22, 2006 12:57 pm

Post » Fri Nov 19, 2010 10:15 am

you are clearly delusional. This is a fix for FO3 that is from 2 years ago. Obviously they have no intention of fixing anything that requires a software engineer. They are only going to fix scripting issues and maybe some easy to do console optimization.


I agree.

The game is shipped, profits made and the bills are paid.
User avatar
FirDaus LOVe farhana
 
Posts: 3369
Joined: Thu Sep 13, 2007 3:42 am

Post » Fri Nov 19, 2010 3:08 pm

I agree.

The game is shipped, profits made and the bills are paid.


Those dirty bastardos!!!!!!
User avatar
Glu Glu
 
Posts: 3352
Joined: Sun Apr 01, 2007 5:39 am

Post » Fri Nov 19, 2010 5:06 pm

I agree.

The game is shipped, profits made and the bills are paid.


You sound like your used to working in a profit driven company.

It seems most of the issues are how the game starts up. Graphics initializes the wrong shader, sound lets windows guess the filter graph. If they would just Fix thoes most of the support request would be about the broken scripts the game is full of.

but now that we, the paying customer, have found a workaround then you can bet they will not see any cost advantage to fix it. It would take a lot of bad press for the game to get any chance of the hard getting done.
User avatar
Marie
 
Posts: 3405
Joined: Thu Jun 29, 2006 12:05 am

Post » Fri Nov 19, 2010 11:33 am

I agree.

The game is shipped, profits made and the bills are paid.



It would be to their advantage if they did fix it. Just think, next time Bethesda or Obsidian come out with a new game people will remember what happened with New Vegas and might be hesitant to buy any more games from them.
User avatar
zoe
 
Posts: 3298
Joined: Sun Nov 12, 2006 1:09 pm

Post » Fri Nov 19, 2010 6:43 pm

Nice sleuthing OP!
User avatar
JD bernal
 
Posts: 3450
Joined: Sun Sep 02, 2007 8:10 am

Post » Fri Nov 19, 2010 5:15 pm

It would be to their advantage if they did fix it. Just think, next time Bethesda or Obsidian come out with a new game people will remember what happened with New Vegas and might be hesitant to buy any more games from them.


Because thats what happened with fallout 3... uhh I mean Fallout New Vegas right? :P
This is a problem that existed prior to New Vegas even being in development, as other have posted above, and as far as I can tell New Vegas is still selling like hotcakes at IHOP. Gamers don't learn and Game Developers will continue to milk a franchise till it's dead and dry.

All that aside... I love this game.
User avatar
gemma king
 
Posts: 3523
Joined: Fri Feb 09, 2007 12:11 pm

Post » Fri Nov 19, 2010 10:48 am

It would be to their advantage if they did fix it. Just think, next time Bethesda or Obsidian come out with a new game people will remember what happened with New Vegas and might be hesitant to buy any more games from them.


I know I will never buy another bethesda game without a full review of the forums.
User avatar
luis dejesus
 
Posts: 3451
Joined: Sun Aug 19, 2007 7:40 am

Post » Fri Nov 19, 2010 11:19 am

In closing I do have to say this though: I believe that this issue requires urgent Bethesda investigation because it is absolutely crippling the performance of a great many people with high and low end systems. And it might very well be affecting virtually every user of this game. The downloads of these two fixes: http://www.newvegasnexus.com/downloads/file.php?id=34778 and http://www.newvegasnexus.com/downloads/file.php?id=34970 have reached a current high of 130000 downloads. This to me indicates that this is a very large issue that is affecting a large portion of the userbase and, as a result, they are currently using one of the most ghetto duct-tape style performance fixes I have ever seen in my life. This NEEDS to be adressed in an official patch soon.



100% agree, great posting man!
Even with my Core I7 960 and GTX 480 and only latest drivers i have terrible drops to 20 FPS or even less in some places like Primm Casino oder Vault 21, always Places with many NPC.
It's ridiculous!
Only with this DLL the Game runs well, without it it would be unplayable for me.



Bethesda please READ the posting above and FIX THIS SOON!
This must be THE HIGH PRIORITY ISSUE for the techguys!

User avatar
leni
 
Posts: 3461
Joined: Tue Jul 17, 2007 3:58 pm

Post » Fri Nov 19, 2010 10:28 pm

its true that there are a vocal minority. the 130,000 downloads of that dll since the launch speak to the silent majority.
User avatar
sam smith
 
Posts: 3386
Joined: Sun Aug 05, 2007 3:55 am

Post » Fri Nov 19, 2010 10:55 pm

TL:DR In a nutshell.

d3d9.dll fixes frame rate lag caused by humanoid NPCs.

d3d9.dll does not lower graphics quality.

Oh I read the post obviously, as my statement in a nutshell matches the op's. Some of you must still read TL:DR in the [censored] WoW context.


tl,dr always mean too long did not read :D, but since I also frequent forums where that gets used interchangebly with in a nutshell I got it. I cannot confirm or deny the claims of image quality decrease simply because I have not seen conclusive evidence in favour of either standpoint. Technically it could be affecting the rendering quality by forcing a different (incompatible with the way the shaders in question where written) shader path. I have not seen any screenshot confirmations of this however. The only image quality decrease that I have personally seen evidence of is the disabling of transparancy AA when you use the nvidia .dll on an ATI card. According to the the developer of the Ati fix this is a result of the renderinfo file that gets generated by reconfiguring the settings while using the .dll. This renderinfo file contains information that dictates the shader/render paths the engine should use.
The nvidia fix shader/render path was simply slightly incompatible with an ATI card. The ati fix uses the correct renderpath and as a result there is no visual quality degradation, furthermore it also proves the naming of the card is of little relevance to the actual fix.

Or as in the words of the author.
Spoiler
Here's a comparison of different RenderInfo files, which Fallout generates based on your videocard. Showing only important lines.


Standard FO NV, with my ATI HD 4870:
Renderer Device Information:
ATI Radeon HD 4800 Series
aticfx32.dll
RenderPath : BSSM_SV_2_B
PStarget : ps_2_b
PS2xtarget : ps_2_b
Shader Package : 17


Normal D3D9 perf fix:
Renderer Device Information:
NVIDIA GeForce 7900 GS
nv4_disp.dll
RenderPath : BSSM_SV_2_A
PStarget : ps_2_a
PS2xtarget : ps_2_a
Shader Package : 13

Notice how those lines don't match? It's detecting the wrong shaders for my card.


My mod of the modded DLL:
Renderer Device Information:
NVIDIA Geforce 8800 GS
aticfx32.dll
RenderPath : BSSM_SV_2_B
PStarget : ps_2_b
PS2xtarget : ps_2_b
Shader Package : 17


The card being detected doesn't matter. Now all the detected information matches a modern ATI card. This should improve compatibility/performance with ATI cards.



This also proves that in terms of shader/render pathing the standard engine is not doing anything different in terms of assigning shader/renderpaths which is also why there are no image quality issues. The issue lies solely within FaceGen which is why the issue is caused by a surplus of npc's.
So if there is a quality difference in terms of shading/rendering of the image it would only be noticable on npc faces. If someone could post comparison shots of npc faces with and without the .dll fix that would be awesome.




An interesting post but i'm sure the devs are on top of it already. The thing is, lots of people see this DLL fix and shout "Hey Beth, if this DLL can fix it so easy, why cant you?". But from a dev point of view, you're not going to take a hacked DLL and base your fix around that. If the DLL simply tricks the game into disabling graphical features due to old hardware, it doesnt help track down whats causing the slowdown.


I agree that a hacked up fix like this is no way to do things which is why this warrants official investigation from bethesda. However it does help track down where the issue lies simply by virtue of being the fix for it.


Nice sleuthing OP!


Thanks /D

its true that there are a vocal minority. the 130,000 downloads of that dll since the launch speak to the silent majority.


Agreed, I personally know several people that would have never played this game as much as they have without the fix. In a way the availability of this fix makes it seem like far less of an issue than it really is. However I've read dozens of fallout launch threads and every single one of them contains several people complaining about performance issues and every single one contains people being helped by the .dll fix. Furthermore a lot of people simply downloaded the .dll and stopped paying attention to the root of the issue and as such are utterly pleased with the game. I personally think the pc launch would have been a beyond horrible catastrophe without this ghetto duct tape patch fix thingy applied.
User avatar
Jimmie Allen
 
Posts: 3358
Joined: Sun Oct 14, 2007 6:39 am

Post » Fri Nov 19, 2010 4:19 pm

How do you even report a bug to gamesas or Obsidian? Just start a thread and cross your fingers hoping that they actually read the forum?

The lack of any sort of communication from either company as to what is at least an acknowledged bug is a little disappointing to say the least.
User avatar
BEl J
 
Posts: 3397
Joined: Tue Feb 13, 2007 8:12 am

Post » Fri Nov 19, 2010 2:42 pm

How do you even report a bug to gamesas or Obsidian? Just start a thread and cross your fingers hoping that they actually read the forum?


The http://www.gamesas.com/index.php?/topic/1120441-please-read-before-posting/ sticky knows all.

Please note that these forums are not used for official technical support. Rather, we plan to use it to provide updated information and allow dialog between gamers to solve common problems, such as the most common problem of video or sound card drivers (or a lack of updated ones).

For technical and customer support, please call 410-568-3685, 9:00 am to 5:00 pm EST Monday through Friday, excluding holidays, visit support.gamesas.com or email support@gamesas.com

User avatar
Alan Whiston
 
Posts: 3358
Joined: Sun May 06, 2007 4:07 pm

Post » Fri Nov 19, 2010 9:39 pm

i hope the devs read this too:

i've installed new vegas on the same system again, now on the second hd with windows xp x86 while the first new vegas installation ist on the first hd with w7 x64.
Identical Nviidia 260.99 Driver, Game and Driver Settings and (of course :)) hardware (GTX480, Core i7 960, 6GB RAM).

the result?
new vegas runs perfect there without any tweaking or dll, i've loaded the same save on both installations, the save is in the great hall down in the vault 21 with some npc visible.

win 7 without the famous DLL: 26 FPS (Vsync on)
win xp: 60 FPS (Vsync on)


similar results with other "critical" saves (like primm casino also with some npcs) loaded on both vegas installations.
i think a full year after win7 release it isent asked too much that a game is compatible with win7, but new vegas seems to hate win7 and love the old winxp.
User avatar
Melung Chan
 
Posts: 3340
Joined: Sun Jun 24, 2007 4:15 am

Post » Fri Nov 19, 2010 3:50 pm

I have a problem when I put the file in the folder, and run it, it launches the New Vegas launcher but when I hit play it just reopens the launcher, getting pretty annoying. Any help guys?
User avatar
James Potter
 
Posts: 3418
Joined: Sat Jul 07, 2007 11:40 am

Post » Fri Nov 19, 2010 5:33 pm

I passed this thread along to Gstaff who said he'd pass it along to the team.

He also mentioned that the developers were already looking at the issue, so they are aware of it.
User avatar
Unstoppable Judge
 
Posts: 3337
Joined: Sat Jul 29, 2006 11:22 pm

Next

Return to Fallout: New Vegas