|
|||||||
| AMD Graphics Cards Discuss AMD/ATI Radeon Graphics Cards from the current 6000 Series, upcoming 7000? series right back to the ATI Radeon 9700 Pro and earlier! |
![]() |
|
|
Thread Tools |
|
|
#1 |
|
DriverHeaven Founder
Join Date: May 2002
Posts: 32,480
Rep Power: 179 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
How to boost your Doom3 performance by 40% on ATI hardware
Thanks to Kombatant for showing me this thread posted by Humus on Beyond3d it makes for interesting reading indeed. I can verify it works as ive deinstalled Doom long ago but its worth checking out.
First, open your doom3\base folder. Doubleclick on the pak000.pk4 file. In the "window can't open this file .. .bla bla" dialog, go on and associate the file with an app like WinRar. With this file open in WinRar, go to the glprogs directory in the file. In there you'll find the shaders. The interaction.vfp file seems to be the main rendering shader. Altering this shader to output a constant color turns most objects into that constant color, except for stuff like computer screens etc. So doubleclick the interaction.vfp file to open it (you may have to associate the .vfp extension with a text editor like notepad or wordpad first since we're going to edit the file). Scroll down to the fragment shader. You'll find these rows: Code: PARAM subOne = { -1, -1, -1, -1 }; PARAM scaleTwo = { 2, 2, 2, 2 }; Add this right below them: Code: PARAM specExp = { 16, 0, 0, 0 }; Now scroll down to this: Code: # perform a dependent table read for the specular falloff TEX R1, specular, texture[6], 2D; Comment out that line by adding a "#" to it, and add another line that will do the same thing with math instead, so it should look like this: Code: # perform a dependent table read for the specular falloff # TEX R1, specular, texture[6], 2D; POW R1, specular.x, specExp.x; Save the file and close your text editor. WinRar will ask if you want to update the file in the archive, select yes. Close WinRar and enjoy about 40% higher performance in Doom3. Haven't done extensive testing yet, but my performance went from 34fps in 1280x1024 to 48fps. |
|
|
|
|
|
#2 |
|
unplugged
|
WTF!? What does it do? Does it reduce image quality? I must go investigate..........
__________________
|
|
|
|
|
|
|
|
DriverHeaven Founder
Join Date: May 2002
Posts: 32,480
Rep Power: 179 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
he also followed up with this:
Another thing you may want to experiment with is post-filter renormalization of the bumpmap. I noticed the shader doesn't do that. After this code, Code: TEX localNormal, fragment.texcoord[1], texture[1], 2D; MOV localNormal.x, localNormal.a; MAD localNormal, localNormal, scaleTwo, subOne; add this, Code: DP3 localNormal.w, localNormal, localNormal; RSQ localNormal.w, localNormal.w; MUL localNormal, localNormal, localNormal.w; This comes at a small performance cost and with a bit more aliasing, |
|
|
|
|
|
#4 |
|
unplugged
|
"...........but for R300 and up it's much better to just spend the three cycles it takes to evaluate POW with math instead of risking texture cache trashing with a dependent texture read, which may be much more costly, especially since the access pattern in this case will be far from linear. Also, using math improves the quality too, even though it may not be very noticable in this game."
LOL-- it INCREASES IQ!
__________________
|
|
|
|
|
|
#5 |
|
DriverHeaven Addict
Join Date: Aug 2003
Posts: 316
Rep Power: 0 ![]() |
Why didn't ID add this lines?
Do they wanna let us feel that ATI is bad and NVidia superior? Cause if this is really a good thing to add the lines and so, then ID and NVidia are cheating together against ATI Dragunov
__________________
- Intel Core 2 Duo E6600 + Zalman 9700 LED - MSI P6N (Nvidia 680i chipset), BIOS: P33 - 2GB DDR2 ram Corsair Dominator 1066Mhz - MSI Geforce 8800GTS 640MB - Creative X-Fi Elite Pro - Seagate 320GB 7200/10 - WD Caviar 750GB - Logitech MX-518 - Windows 7 Ultimate 64-bit NL Last edited by Dragunov; Aug 8, 2004 at 12:59 PM. |
|
|
|
|
|
#6 |
|
unplugged
|
"kyleb- Senior Member-Joined: 21 Nov 2002-Posts: 1298
-Posted: Sun Aug 08, 2004 4:48 am Post subject: ------- --------------- ------------------ ---------------- -------------- ---------- i figured i'd take the liberty of making a zip file to make things easier on everyone, just unzip this in your d3 dir: http://www.sunflower.com/~kyleb/humusd3atitweak.zip http://www.beyond3d.com/forum/viewto...779f75ddceabc1 Go get it
__________________
|
|
|
|
|
|
|
|
DriverHeaven Founder
Join Date: May 2002
Posts: 32,480
Rep Power: 179 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
you seen FPS increases BWX?
|
|
|
|
|
|
#8 | |
|
HardwareHeaven Extreme Member
|
Quote:
did you add everything above to that Zip ? if this works for me then WOW i already get awsome performance at ultra settings 1024x768 2xx 16af Taa ![]() now with this i think if it gives 40% then i can up the res to something like 1280x1024 i hope |
|
|
|
|
|
|
#9 |
|
DriverHeaven Extreme Member
Join Date: Jun 2002
Posts: 12,940
Rep Power: 0 ![]() |
25% performance increase for me.
|
|
|
|
|
|
#10 |
|
DriverHeaven Extreme Member
Join Date: Jul 2004
Posts: 9,472
Rep Power: 0 ![]() ![]() |
I got no increase... Acutally went down a bit... Normal or am I doing sumthing wrong?
|
|
|
|
|
|
#11 | |
|
unplugged
|
Quote:
Going to test it soon.
__________________
|
|
|
|
|
|
|
#12 |
|
DriverHeaven Senior Member
Join Date: Jul 2003
Location: The Netherlands
Posts: 634
Rep Power: 0 ![]() |
I went from 39.8-40.2 on 1024x768@high. With the system in my sig. I can't really call this an increase. it could have been caused by other things.
|
|
|
|
|
|
#13 |
|
DriverHeaven Lover
Join Date: May 2004
Location: s jersey, us
Posts: 176
Rep Power: 0 ![]() |
I got only a slight increase. It went from 38.5 to 39.9.
|
|
|
|
|
|
#14 |
|
is having a sexy party
Join Date: Jan 2004
Location: East Coast
Posts: 1,779
Rep Power: 0 ![]() |
could the increase with some poeple depend on if they re using the 4.9 beta drivers? and the others are using 4.7?
__________________
[COLOR=Black][/COLOR]
|
|
|
|
|
|
#15 |
|
DriverHeaven Extreme Member
Join Date: Jul 2004
Posts: 9,472
Rep Power: 0 ![]() ![]() |
maybe... I went from 48.6 (800x600) high quality NO AF to 48.7... And sometimes (I did the timdedemo many times) it was 48.4 or sumthing... So in my case, it hasne't changed an inch!
|
|
|
|
|
|
#16 |
|
Styleless Wonder
Join Date: Jun 2002
Location: Ottawa, Ontario
Posts: 6,034
Rep Power: 0 ![]() |
Sounds like..
This type of thing sounds like something ID would release in a patch... if they decide to.
__________________
|
|
|
|
|
|
#17 |
|
Respect Human Rights
Join Date: Dec 2002
Location: MD. US
Posts: 149
Rep Power: 0 ![]()
|
I got a nice 10 FPS ,or so increase with this tweak with no IQ loss on my x800xt using the 4.9 betas.I'm now getting just over 70fps at 1024x768 2xAA 8XAF(quality)Great find Humus ,Thank you.
|
|
|
|
|
|
#18 |
|
DriverHeaven Addict
Join Date: Nov 2003
Posts: 307
Rep Power: 0 ![]() |
I tried the original tweak and most of my textures dissapeared!! the ones i know do work that i know.
Copying the files from the .pk4 files to your doom3 directory, good for loading times on older systems but pretty useless on new high end systems. change the following lines to this in your doom config seta image_useCache "1" seta image_cacheMegs "256" seta image_cacheMinK "51200" altho the image_cacheMegs line, set it to quater of your system ram, 256 is for 1Gb ram. also add this line to the bottom if your graphics card has more than 64mb on it. For 256mb cards seta com_videoram "256" For 128mb cards seta com_videoram "128" one warning tho for some reason on mine it keeps removing this line, so until i find a way of making it perminant, youll have to keep putting it in or type it in the console as com_videoram 256 when it loads up. only was i can think atm is to make the doomconfig.cfg read only ;p but you cant change any settings then. but with these tweaks i went from 52fps to 77fps, pretty impressive i recon, not sure if it changed itself to medium quality tho, cos the settings are a bit messed up. Edit: ok it must have been the quality settings, but im still hitting 53fps on a 9800XT and Athlon XP 64 3400+
__________________
[color=royalblue]Computer Specs[/color] := [color=royalblue]AMD Opteron 146 2.0Ghz @ 2.9Ghz[/color] = [color=royalblue]1024Mb PC4400 RAM Dual Channel[/color] = [color=royalblue]Gainward BLISS 7900GTX 512mb[/color] = [color=royalblue]SB Audigy 4 [/color]= [color=royalblue]250Gb SATA Hard Drive[/color] = [color=royalblue]Thermaltake Xaser Case [/color]= [color=royalblue]Benq FP91G+[/color][color=royalblue] 19" TFT[/color] Last edited by refraction; Aug 8, 2004 at 04:57 PM. |
|
|
|
|
|
#19 |
|
unplugged
|
Running the below Autoexec.cfg (just testing it out- it's a template kinda)
Running HIGH, everything ON in advanced except Vsync. I haven't even tweaked that .cfg yet, so it's not even optimived and I had services running in background I ussually dont if I'm playing- BUT anyway- With that file in there I get 35.6 FPS with 2xAA and 2xAF w/o that file I get 32.2 FPS w/ 2xAA and 2xAF I noticed that the "set image_downSizeLimit "1024" //1024 for 256 cards. 512 for 128mb gfx. 256 for 64mb gfx see also com_videoRam" Wasn't even set right- I bet with some tweaking I could get that tweak to perform better- It does work, no question, and the IQ is not worse at all, if anything it is better- PS- you guys should check out this cmd: set com_showMemoryUsage "1" //displays current memory usage, interesting during section transitions Pretty intersesting indeed. D3 uses 1023 to 1025 of my 1gig memory! Shows window's % of usage too- cool.. //G R A P H I C S /////////////////////////////////// // settings that effect graphics // /////////////////////////////////// set r_forceLoadImages "0" set r_shadows "1" set r_skipBump "0" //Ignore bump mapping set r_skipSpecular "0" //Ignore Specular lighting set r_skipNewAmbient "0" //set r_skipOverlays "0" //set r_skipFogLights "0" //set r_skipPostProcess "0" //set r_skipDynamicTextures "0" //set r_skipBlendLights "0" set r_renderer "best" set r_brightness "1.6" set r_gamma "1.2" set r_swapInterval "0" //Vsync set r_useIndexBuffers "0" //no noticeable change set r_fullscreen "1" set r_mode "5" // screen size 3=6x4 4=8x6 5=10x8 6=12x10 7=16x10? 8=16x12 set r_displayRefresh "85" // monitor refresh rate set r_multiSamples "2" //Anti Aliasing Level set r_usePortals "1" //use portals for area culling set image_anisotropy "2" //Anisotropic filtering level 0-20 set image_downSizeLimit "1024" //1024 for 256 cards. 512 for 128mb gfx. 256 for 64mb gfx see also com_videoRam set image_downSize "1" //use to enable above set image_ignoreHighQuality "0" set image_downSizeBumpLimit "1024" //1024 for 256mb gfx. 512 for 128mb gfx. 256 for 64mb gfx set image_downSizeBump "1" //enables above set image_downSizeSpecularLimit "64" //no apparent speed change? leave as 64 set image_downSizeSpecular "1" //enables above, 0 slow, 1 fast set image_useCache "1" //game crashes if enabled and MinK is too low set image_cacheMegs "128" //max temporary cache size for precompressed textures set image_cacheMinK "10240" //minimum cache size of precompressed files in KB set image_usePrecompressedTextures "1" //0 for Ultra settings later on - disables above set image_useNormalCompression "0" //compression level 0-2 0 fastest set image_useAllFormats "1" set image_useCompression "1" //compress bumps and specs? set image_roundDown "1" set image_lodbias "0" set com_videoRam "128" //doesn't auto detect correctly for some, set it manually//G A M E ///////////////////////////////////////////// // game settings, some effect graphics/fps // ///////////////////////////////////////////// set com_showFPS "1" //display current FPS in corner of screen set com_showMemoryUsage "1" //displays current memory usage, interesting during section transitions set com_allowConsole "1" //tilde key only for console set g_decals "1" //decorative touches on/off set g_projectileLights "1" //projectiles create light on/off set g_doubleVision "1" //damage blur set g_muzzleFlash "1" //muzzle flash set g_showBrass "1" //display spent ammo ejection set g_showHud "1" //draw the onscreen Heads Up Display such as health/armor etc set g_showPlayerShadow "0" //player character casts shadows set g_showcamerainfo "0" set g_bloodEffects "1" set g_TDMArrows "1"//draw arrows over teammates in team //set g_nightmare "1" //enable highest SP game level set g_fov "105" //field of view, default 90 set g_spectatorChat "1" //turns off the display of spectator chat during DM set g_showProjectilePct "1" //enables display of player hit percentage set con_noPrint "1" //disable display of console msg's on game screen set con_notifyTime "3" //time in seconds to display console messages on screen set con_speed "3" //speed of console drop
__________________
|
|
|
|
|
|
#20 |
|
DriverHeaven Extreme Member
Join Date: Jul 2004
Posts: 9,472
Rep Power: 0 ![]() ![]() |
Maybe you guys can help me... I get occasional stuttering in DOOm3... For example, I dropped out of a ventialtion shaft in some level and i stuttered a second before my FPS went back up... I'm running the game on high 800x600 (anio disabled to 1) on a 9800 Pro 128mb, 2048 RAM and a 3GHZ HT. Anyway to remove the stutter?
My bro on his PC gets even more stuttering than me. He's got a 9600 XT 256mb, 512 RAM, a Athlon 2800+. He's running it on high with no anio (set to 0) and on 640x480. So do you guys stutter a bit too and if yes, do any of you know ho to remove it?
|
|
|
|
|
|
#21 | |
|
DriverHeaven Addict
Join Date: Nov 2003
Posts: 307
Rep Power: 0 ![]() |
Quote:
its probably cos its loading new textures that it hasnt loaded yet.
__________________
[color=royalblue]Computer Specs[/color] := [color=royalblue]AMD Opteron 146 2.0Ghz @ 2.9Ghz[/color] = [color=royalblue]1024Mb PC4400 RAM Dual Channel[/color] = [color=royalblue]Gainward BLISS 7900GTX 512mb[/color] = [color=royalblue]SB Audigy 4 [/color]= [color=royalblue]250Gb SATA Hard Drive[/color] = [color=royalblue]Thermaltake Xaser Case [/color]= [color=royalblue]Benq FP91G+[/color][color=royalblue] 19" TFT[/color] |
|
|
|
|
|
|
#22 |
|
DriverHeaven Extreme Member
Join Date: Jul 2004
Posts: 9,472
Rep Power: 0 ![]() ![]() |
so a lower setting would remove that? Okay I get that for MY pc but my bro has a 256mb card and he's playing on High (auto detect) and he stutters quite a bit....
|
|
|
|
|
|
#23 | |
|
unplugged
|
Quote:
!!ARBvp1.0 OPTION ARB_position_invariant ; # VPROG_INTERACTION # # input: # # attrib[8] TEX0 texture coordinates # attrib[9] TEX1 normal # attrib[10] TEX2 tangent[0] # attrib[11] TEX3 tangent[1] # COL vertex color # # c[4] localLightOrigin # c[5] localViewOrigin # c[6] lightProjection S # c[7] lightProjection T # c[8] lightProjection Q # c[9] lightFalloff S # c[10] bumpMatrix S # c[11] bumpMatrix T # c[12] diffuseMatrix S # c[13] diffuseMatrix T # c[14] specularMatrix S # c[15] specularMatrix T # c[16] vertex color modulate # c[17] vertex color add # # output: # # texture 0 is the cube map # texture 1 is the per-surface bump map # texture 2 is the light falloff texture # texture 3 is the light projection texture # texture 4 is the per-surface diffuse map # texture 5 is the per-surface specular map # texture 6 is the specular lookup table TEMP R0, R1, R2; PARAM defaultTexCoord = { 0, 0.5, 0, 1 }; # calculate vector to light in R0 SUB R0, program.env[4], vertex.position; # put into texture space for TEX0 DP3 result.texcoord[0].x, vertex.attrib[9], R0; DP3 result.texcoord[0].y, vertex.attrib[10], R0; DP3 result.texcoord[0].z, vertex.attrib[11], R0; # textures 1 takes the base coordinates by the texture matrix MOV result.texcoord[1], defaultTexCoord; DP4 result.texcoord[1].x, vertex.attrib[8], program.env[10]; DP4 result.texcoord[1].y, vertex.attrib[8], program.env[11]; # texture 2 has one texgen MOV result.texcoord[2], defaultTexCoord; DP4 result.texcoord[2].x, vertex.position, program.env[9]; # texture 3 has three texgens DP4 result.texcoord[3].x, vertex.position, program.env[6]; DP4 result.texcoord[3].y, vertex.position, program.env[7]; DP4 result.texcoord[3].w, vertex.position, program.env[8]; # textures 4 takes the base coordinates by the texture matrix MOV result.texcoord[4], defaultTexCoord; DP4 result.texcoord[4].x, vertex.attrib[8], program.env[12]; DP4 result.texcoord[4].y, vertex.attrib[8], program.env[13]; # textures 5 takes the base coordinates by the texture matrix MOV result.texcoord[5], defaultTexCoord; DP4 result.texcoord[5].x, vertex.attrib[8], program.env[14]; DP4 result.texcoord[5].y, vertex.attrib[8], program.env[15]; # texture 6's texcoords will be the halfangle in texture space # calculate normalized vector to light in R0 SUB R0, program.env[4], vertex.position; DP3 R1, R0, R0; RSQ R1, R1.x; MUL R0, R0, R1.x; # calculate normalized vector to viewer in R1 SUB R1, program.env[5], vertex.position; DP3 R2, R1, R1; RSQ R2, R2.x; MUL R1, R1, R2.x; # add together to become the half angle vector in object space (non-normalized) ADD R0, R0, R1; # put into texture space DP3 result.texcoord[6].x, vertex.attrib[9], R0; DP3 result.texcoord[6].y, vertex.attrib[10], R0; DP3 result.texcoord[6].z, vertex.attrib[11], R0; # generate the vertex color, which can be 1.0, color, or 1.0 - color # for 1.0 : env[16] = 0, env[17] = 1 # for color : env[16] = 1, env[17] = 0 # for 1.0-color : env[16] = -1, env[17] = 1 MAD result.color, vertex.color, program.env[16], program.env[17]; END #================================================= ===================== !!ARBfp1.0 OPTION ARB_precision_hint_fastest; # texture 0 is the cube map # texture 1 is the per-surface bump map # texture 2 is the light falloff texture # texture 3 is the light projection texture # texture 4 is the per-surface diffuse map # texture 5 is the per-surface specular map # texture 6 is the specular lookup table # env[0] is the diffuse modifier # env[1] is the specular modifier TEMP light, color, R1, R2, localNormal, specular; PARAM subOne = { -1, -1, -1, -1 }; PARAM scaleTwo = { 2, 2, 2, 2 }; PARAM specExp = { 16, 0, 0, 0 }; # load the specular half angle first, because # the ATI shader gives a "too many indirections" error # if this is done right before the texture indirection #----------------- #TEX specular, fragment.texcoord[6], texture[0], CUBE; #MAD specular, specular, scaleTwo, subOne; # instead of using the normalization cube map, normalize with math DP3 specular, fragment.texcoord[6],fragment.texcoord[6]; RSQ specular, specular.x; MUL specular, specular.x, fragment.texcoord[6]; #----------------- # # the amount of light contacting the fragment is the # product of the two light projections and the surface # bump mapping # # perform the diffuse bump mapping #----------------- TEX light, fragment.texcoord[0], texture[0], CUBE; MAD light, light, scaleTwo, subOne; # instead of using the normalization cube map, normalize with math #DP3 light, fragment.texcoord[0],fragment.texcoord[0]; #RSQ light, light.x; #MUL light, light.x, fragment.texcoord[0]; #----------------- TEX localNormal, fragment.texcoord[1], texture[1], 2D; MOV localNormal.x, localNormal.a; MAD localNormal, localNormal, scaleTwo, subOne; DP3 light, light, localNormal; # modulate by the light projection TXP R1, fragment.texcoord[3], texture[3], 2D; MUL light, light, R1; # modulate by the light falloff TXP R1, fragment.texcoord[2], texture[2], 2D; MUL light, light, R1; # # the light will be modulated by the diffuse and # specular surface characteristics # # modulate by the diffuse map and constant diffuse factor TEX R1, fragment.texcoord[4], texture[4], 2D; MUL color, R1, program.env[0]; # perform the specular bump mapping DP3 specular, specular, localNormal; # perform a dependent table read for the specular falloff #TEX R1, specular, texture[6], 2D; POW R1, specular.x, specExp.x; # modulate by the constant specular factor MUL R1, R1, program.env[1]; # modulate by the specular map * 2 TEX R2, fragment.texcoord[5], texture[5], 2D; ADD R2, R2, R2; MAD color, R1, R2, color; MUL color, light, color; # modify by the vertex color MUL result.color, color, fragment.color; # this should be better on future hardware, but current drivers make it slower #MUL result.color.xyz, color, fragment.color; END
__________________
|
|
|
|
|
|
|
#24 | |
|
DriverHeaven Lover
Join Date: May 2003
Posts: 110
Rep Power: 0 ![]() |
Quote:
__________________
3200+ XP (400) A7N8X Deluxe 2.0 1 GB OCsystem DDR 3200 LL BBA 9800 |
|
|
|
|
|
|
#25 |
|
DriverHeaven Addict
Join Date: Nov 2003
Posts: 307
Rep Power: 0 ![]() |
that replacement interactions file actually lowered my fps... found another resource that could be interesting for tweakers. It explains most of the console commands which i assume can be used in an autoexec.cfg
http://doom3-console.eo.cz/
__________________
[color=royalblue]Computer Specs[/color] := [color=royalblue]AMD Opteron 146 2.0Ghz @ 2.9Ghz[/color] = [color=royalblue]1024Mb PC4400 RAM Dual Channel[/color] = [color=royalblue]Gainward BLISS 7900GTX 512mb[/color] = [color=royalblue]SB Audigy 4 [/color]= [color=royalblue]250Gb SATA Hard Drive[/color] = [color=royalblue]Thermaltake Xaser Case [/color]= [color=royalblue]Benq FP91G+[/color][color=royalblue] 19" TFT[/color] |
|
|
|
|
|
#26 | |
|
unplugged
|
Quote:
|
|
|
|
|
|
|
#27 | |
|
unplugged
|
Quote:
|
|
|
|
|
|
|
#28 |
|
DriverHeaven Addict
Join Date: Nov 2003
Posts: 307
Rep Power: 0 ![]() |
i dont know but in ultra quality 1024x768 and im getting 52fps in the timedemo demo1, i cant really complain
__________________
[color=royalblue]Computer Specs[/color] := [color=royalblue]AMD Opteron 146 2.0Ghz @ 2.9Ghz[/color] = [color=royalblue]1024Mb PC4400 RAM Dual Channel[/color] = [color=royalblue]Gainward BLISS 7900GTX 512mb[/color] = [color=royalblue]SB Audigy 4 [/color]= [color=royalblue]250Gb SATA Hard Drive[/color] = [color=royalblue]Thermaltake Xaser Case [/color]= [color=royalblue]Benq FP91G+[/color][color=royalblue] 19" TFT[/color] |
|
|
|
|
|
#29 | |
|
More than a number.
Join Date: Feb 2003
Location: Detroit, MI
Posts: 37
Rep Power: 0 ![]() |
Quote:
seta image_preload "1" It seems increase the initial load time of a new map but it stopped some of my hitching (studdering). |
|
|
|
|
|
|
#30 |
|
DriverHeaven Senior Member
Join Date: Jul 2003
Location: The Netherlands
Posts: 634
Rep Power: 0 ![]() |
Which driver are you using BWX?
|
|
|
|
![]() |
| Thread Tools | |
|
|