BF3 Optimization Maximization Intensification... part 2

Author Message
BioHazardSperm

  • Total Posts : 8612
  • Joined: 12/2/2007
  • Location: Maine [EVGA Affiliate Code : 88LSZ0E7HK]
  • Status: offline
  • Ribbons: 22
  • Folding: 1,180,918
BF3 Optimization Maximization Intensification... part 2 Tuesday, April 10, 2012 2:08 PM (permalink)
 
The Original post and Comments for part 2  can be found here ,please feel free to join the conversation.
 
"So this is part 2 of, as I said before, an undefined number of articles focusing on competitive tweaks. If you missed the last article, please check it out Here. These articles are meant to build on one another so don't miss any of them.

I had no idea part 1 was going to raise so much controversy. If you thought the last article was riskehhh, then you better prepare yourself (GDICommand).

As I said before, I'm all about getting every (legal) advantage I can get. The truth is, in competitive play, my opponent is already using every trick there is and if I'm not, I have only myself to blame. In competition, these tweaks are about evening the playing field, and can't be considered even remotely as "cheats."

What if I told you that it's likely that your system is delaying you by as much as 50 milliseconds (potentially even more)? If you haven't done much tweaking to your system then this is a true reality (even with tweaking some delay is inevitable). This delay is referred to as input lag and it is the sum of many variables both hardware and software related. It's been proven in scientific study that our nervous systems adapt to delays in visual imaging naturally. Small differences in timings such as 10 ms (1/100th of a second) aren't perceivable, and even significantly larger (50 ms), aren't perceived once we've adapted to the delay. It's like living with a handicap for so long you forget it's there.

I don't think any of us want to play our fast paced shooters with a handicap. So I will tell you how to dramatically reduce this input lag and (in future articles) how to get it as close to 0 as possible.

When estimating input lag, the largest variable is not considered, and that is the human element (reaction speed). In short, input lag is simply the time from when your hand moves/clicks the mouse to the time you see your screen begin to reflect the change. Fortunately, many of the variables that effect input lag are observable and adjustable. The primary variables that effect input lag are the following. First, you have mouse communication to the computer, second CPU processing, third GPU processing, and fourth monitor processing/response time/time between frames.

The biggest controllables of input lag are driver/software related, and these variables directly effect how your CPU and GPU behave when rendering. Frame buffers can, and often do, dramatically limit the responsiveness of your system. If you’re running a 60 hz monitor, 1 frame to you is 16.66 ms. This means their is a delay of 16.66 ms between each frame (1000ms/60fps = 16.66). On a 120hz monitor there is a delay of 8.33 ms between each frame (1000ms/120fps = 8.33). These numbers are assuming you are getting a minimum of 60 fps or 120 fps respectively. These times can really add up, especially if both your CPU and GPU are delaying output with frame buffers.

Before we get to these "buffers", let's first address Vertical Sync. Vertical Sync (vsync) is one of the best known causes of input lag. Vsync on forces the GPU to be synchronized with the vertical refresh of the monitor. This means that the GPU has to be throttled down and synchronized to keep it from exceeding the monitors refresh rate. Disabling vsync may cause noticeable image tearing on 60hz monitor (not noticeable on 120hz), but can greatly reduce input lag. Image tearing, though unsightly, is not damaging to your system or monitor and a worthwhile sacrifice (imo) to gain increased response time.

Your GPU has a frame buffer referred to as "triple buffering". True triple buffering (parallel back buffers), to my knowledge, doesn't exist in modern directx games, and for our purposes triple buffering just acts like a linear rendered frame buffer, and introduces extra input lag. Triple buffering reduces FPS drops when vertical sync is enabled but adds an extra frame delay compared to default double buffering. By default, Battlefield 3 has triple buffering enabled. Disabling triple buffering can reduce input lag on systems even when vsync is disabled.

Your CPU also has a frame buffer referred to as "maximum pre-rendered frames" ("flip queue size" on ATI/AMD systems), which is controlled by your graphics driver. This buffer tells your CPU to render up to a defined number of frames (3 default) ahead of your GPU. This pre-render function allows your game to maintain smoother frame rates without as much dipping because the CPU doesn't have to wait for the GPU to continue processing. This is a dynamic function and the buffer typically changes depending on FPS (higher FPS - less buffer, lower FPS - more buffer). Although this function is nice for keeping your FPS from dipping some, it can ultimately slow the responsiveness of system rendering. Assuming you don't have a heavily bottlenecked CPU, there is minimal FPS performance impact from reducing or eliminating this pre-render buffer and in return you gain a significant reduction in input lag.

Now, I will tell you how to adjust each of these settings. Vsync is very simple, just go into your Battlefield 3 game options, and under "Video" change "Vertical Sync" to "Off." To change triple buffering and pre-rendered frames, you can either type the console commands into your game every time you load up, or create a user.cfg file. To create a user.cfg file, simply go to the \Program Files (x86)\Origin Games\Battlefield 3\ directory, and right click to create a new txt document titled "user.cfg" (do not make a user.cfg.txt). After you've created your user.cfg, put the following commands in it (on seperate lines), RenderDevice.TripleBufferingEnable 0 (default 1), and RenderDevice.ForceRenderAheadLimit 0 (default -1 which uses the GPU default of 3). So your user.cfg should look exactly like this....

RenderDevice.TripleBufferingEnable 0
RenderDevice.ForceRenderAheadLimit 0

(don’t forget to save the changes)

As you can see these commands disable triple buffering and set you pre-render ahead limit to 0. If you come into frame problems or other issues you can try changing RenderDevice.ForceRenderAheadLimit to 1 or 2, or you can delete the user.cfg, and the game will restore the default values the next time you open it.

For good measure or for other games that don't have adjustable console variables for these settings, you can change them in your Nvidia control panel under the "Manage 3d settings" tab (you can also create a custom profile for different games if you choose). If you have an AMD graphics card you will have to use a third party program like "ATI Tray Tools" to adjust "Flip Queue Size" (maximum pre-rendered frames), because the variable is no longer available in the Catalyst Control Center. I took a screenshot of my Nvidia Settings so you can see which settings to change...



Changing these values shouldn't, in almost any situation, cause damage to your hardware (I've never heard of a system being damaged from them), but I (or ADK) take no responsibility for you changing any of these variables and you do so at your own risk.

If you want to keep up with ADK-pA you can find us on the TWL 4v4 Rush League page, and here at adkgamers.com. You can check out my youtube for unabridged match footage, and other videos. Remember, the videos on youtube are from my perspective, only what i hear is recorded, so none of my microphone comms can be heard. Also be sure to check out ADK's twitch.tv to see some broadcasts of me pubbing. Broadcasting lags my computer, but I've ordered a video capture card for my second computer so you will see me doing more of it in the near future. Let me know if you have a question or add me on battlelog if you want to frag sometime (Elegy-pA).

Till next time,
Sam "Elegy" Wright from team Passive Aggressor signing off."
 
 
Since this post Saga and -pA have merged and are now called -fl FLatline playing as part of the ADK gaming group
 
#1
    Alcatraz968

    • Total Posts : 718
    • Joined: 1/29/2012
    • Location: Lose in my own mind, forever waiting.
    • Status: offline
    • Folding: 27,853
    Re:BF3 Optimization Maximization Intensification... part 2 Wednesday, April 11, 2012 3:05 PM (permalink)
    nice info, keep up the good work.
      

     
    My Rig: 
    http://www.modsrigs.com/detail.aspx?BuildID=29310
     
    "I have become death, the destroyer of worlds" 
     
    "Your body submit, your heart succumbs, so why does your mind continue to resist me"
     
    #2
      lastsamurairick

      • Total Posts : 1734
      • Joined: 11/11/2008
      • Location: Orlando,FL
      • Status: offline
      • Ribbons: 5
      Re:BF3 Optimization Maximization Intensification... part 2 Thursday, April 12, 2012 8:15 AM (permalink)
      Nice, Is about time you do something use full BioHazardFart.!!! haha and also there is a delay in-game as you are Aiming at the character and trying to reach in for that pesky bugger way back in you're nose cavity provides a battle of it's own.No nose or buggers were hurt in the writing of this Guide Thank you for you're continued support.
                 
         
             
       
      #3
        hakka69

        • Total Posts : 43
        • Joined: 4/3/2012
        • Status: offline
        Re:BF3 Optimization Maximization Intensification... part 2 Thursday, April 12, 2012 9:04 AM (permalink)
        lastsamurairick


          and also there is a delay in-game as you are Aiming at the character and trying to reach in for that pesky bugger way back in you're nose cavity provides a battle of it's own

         
        I was trying to do that earlier and people kept reviving me.
         
        #4
          Sumazi

          • Total Posts : 1020
          • Joined: 9/25/2009
          • Status: offline
          Re:BF3 Optimization Maximization Intensification... part 2 Thursday, April 12, 2012 11:28 PM (permalink)
          Just want to point out in the newest Nvidia drivers you can no longer set the pre-rendered frames to 0 anymore...And it apparently does nothing for SLI.
           
          It defaults back to 3 even with Nvidia inspector.
               
          • Intel Core i7 920 D0 3849B202 @ 4.5 Ghz @ 1.35V w/ Corsair H100 & 4 Gentle Typhoons • G.Skill Ripjaws X 2133 8GB (2x4GB) • EVGA x58 Classified E760 • EVGA GTX 670 @ 122%/1234/2468/7204 • Intel X25-M 80GB SATA II SSD - OS/Apps • WD Caviar Black 1 TB • Corsair HX1000  • Yamakasi Catleap 2B 2560x1440 @ 120hz  • Razer BlackWidow • Logitech G9x Laser Mouse • Windows 7 Ultimate x64 • Heatware
          Follow me on Twitch.tv!
           
          #5
            BioHazardSperm

            • Total Posts : 8612
            • Joined: 12/2/2007
            • Location: Maine [EVGA Affiliate Code : 88LSZ0E7HK]
            • Status: offline
            • Ribbons: 22
            • Folding: 1,180,918
            Re:BF3 Optimization Maximization Intensification... part 2 Friday, April 13, 2012 4:36 AM (permalink)
            Try the Beta ? or maybe its your install? Only reason i say that is mine allows me to set it 1-4 and apply and its still there when i reopen Nvidia control panel
              I understand they took 0 out as the application option uses the game settings? I may be wrong
            <message edited by BioHazardSperm on Friday, April 13, 2012 4:38 AM>
            Attachment(s)Attachments are not available: Download requirements not met
             
            #6
              BioHazardSperm

              • Total Posts : 8612
              • Joined: 12/2/2007
              • Location: Maine [EVGA Affiliate Code : 88LSZ0E7HK]
              • Status: offline
              • Ribbons: 22
              • Folding: 1,180,918
              Re:BF3 Optimization Maximization Intensification... part 2 Friday, April 13, 2012 4:40 AM (permalink)
              http://forums.laptopvideo...red-frames-benchmarks/
              this should help
              http://forums.laptopvideo...red-frames-benchmarks/


              The Max Pre-rendered Frames setting in the NVidia Control Panel has always been somewhat of a mystery. The description for it says it "limits the number of frames the CPU can prepare before the frames get processed by the GPU. Increasing this value can result in smoother gameplay at lower framerates." The description does not indicate how the setting might effect gameplay at higher framerates. Also there is a misconception that the game is getting increasingly delayed from realtime as the value gets higher. In reality some pre-rendered frames get discarded and never get sent to the GPU. Some machines have weak CPU's and powerful GPU's and with some machines it's the other way around. As you can imagine there will be different results under those 2 different scenarios. In the past the Max Pre-rendered Frames settings has given choices of setting values between 0-8. Now with the 300.xx family of drivers we're given choices of setting values between 1-4 or "Use the 3D application setting." This has caused a few of to scratch our heads and think "what's up with that?"

              NVidia Inspector still offers to let us set values of 0-8. I found that when I set the value to "8" in Inspector it would automatically change the setting to "Custom" in NVidia Control Panel and when I set the value to "0" in Inspector it would automatically change the setting to "Use the 3D application setting" in NVidia Control Panel. Therefore "0" is not really "0" Max Pre-rendered Frames but it is whatever the application's default Max Pre-Rendered Frames value is instead. In the search for truth I fired up Heaven Benchmark 3.0 and began some testing with different values for Max Pre-rendered Frames.

              Test Machine: i7 975 [link=mailto:cpu@4.22]cpu@4.22[/link] GHz, GTX 580, 1920 x 1080 res, Win 7 64-bit, driver 301.10
              Test Settings: 4x AA, 4x Anisotropic, High Textures, Ambient Occlusion off, Normal Tessellation used in DX 11 tests

              Scores - Min FPS - Avg FPS - Max FPS ---- Dx version ---- Max Pre-rendered Frames
              2202 ---- 46.5 ---- 87.4 ---- 164.0 ---- Dx 9 ---- 1
              2329 ---- 48.4 ---- 92.4 ---- 184.2 ---- Dx 9 ---- 2
              2332 ---- 47.2 ---- 92.6 ---- 191.8 ---- Dx 9 ---- 3
              2334 ---- 47.4 ---- 92.7 ---- 193.4 ---- Dx 9 ---- use 3D app setting (0 in Inspector)
              2335 ---- 47.5 ---- 92.7 ---- 195.9 ---- Dx 9 ---- 4
              2337 ---- 48.1 ---- 92.8 ---- 197.1 ---- Dx 9 ---- 8
              -
              1806 ---- 34.5 ---- 71.7 ---- 160.9 --- Dx 11 ---- 1
              1809 ---- 32.9 ---- 71.8 ---- 161.7 --- Dx 11 ---- 2
              1810 ---- 35.1 ---- 71.8 ---- 165.7 --- Dx 11 ---- 3
              1810 ---- 32.8 ---- 71.9 ---- 165.3 --- Dx 11 ---- use 3D app setting (0 in Inspector)
              1812 ---- 32.0 ---- 71.9 ---- 177.6 --- Dx 11 ---- 4
              1815 ---- 33.8 ---- 72.0 ---- 184.4 --- Dx 11 ---- 8

              The Min FPS values in Heaven Benchmark are inconsistent because there is a small delay at the beginning of it so don't pay much attention to the Min FPS values shown. More important to notice here are the Scores and Max FPS values. Overall it appears that the better results are with higher values for Max Pre-Rendered Frames. It does not matter if I do all tests with higher AA settings or with AA completely off. The trend will be the same. Also it appears that in Heaven Benchmark 3.0 the "Use the 3D application setting" is probably "3".

              The unexpected conclusion is that people who have been setting Max Pre-Rendered Frames to "0" have actually had more frames pre-rendering than people who have putting the setting on "1" or "2" but it turns out "0" is actually better because "0" is really "3". Ok, now the confusion is all cleared up! :-)

               
              #7
                lastsamurairick

                • Total Posts : 1734
                • Joined: 11/11/2008
                • Location: Orlando,FL
                • Status: offline
                • Ribbons: 5
                Re:BF3 Optimization Maximization Intensification... part 2 Friday, April 13, 2012 9:16 AM (permalink)
                BioHazard:(
                In reality some pre-rendered frames get discarded and never get sent to the GPU. Some machines have weak CPU's and powerful GPU's and with some machines it's the other way around. As you can imagine there will be different results under those 2 different scenarios. In the past the Max Pre-rendered Frames settings has given choices of setting values between 0-.8 )  
                 
                 

                So, in reality this means that if using a lower end cpu let say a i7 920 with a gtx 480 or a gtx 580,gtx 595 to a gtx 600 would be a problem.? hmm guess this would be a problem for some than.  
                <message edited by lastsamurairick on Friday, April 13, 2012 9:26 AM>
                           
                   
                       
                 
                #8
                  MajorTankz

                  • Total Posts : 1353
                  • Joined: 7/23/2009
                  • Status: offline
                  • Ribbons: 3
                  • Folding: 1,508
                  Re:BF3 Optimization Maximization Intensification... part 2 Friday, April 13, 2012 1:59 PM (permalink)
                  Nice guide. Might I suggest discussing FPS configs for games that support high levels of customization and gamma related settings in your next article?
                   
                  #9

                    Jump to:

                    Current active users

                    There are 0 members and 2 guests.

                    Icon Legend and Permission

                    • New Messages
                    • No New Messages
                    • Hot Topic w/ New Messages
                    • Hot Topic w/o New Messages
                    • Locked w/ New Messages
                    • Locked w/o New Messages
                    • Read Message
                    • Post New Thread
                    • Reply to message
                    • Post New Poll
                    • Submit Vote
                    • Post reward post
                    • Delete my own posts
                    • Delete my own threads
                    • Rate post

                    2000-2013 ASPPlayground.NET Forum Version 3.8