If you wish to apply any console command automatically at startup, create a new text file and rename it to User.cfg. Edit the file using Windows Notepad or Wordpad, entering each command on a separate line. Save this file and place it in your main \Program Files (x86)\Origin Games\Battlefield 3\ directory. (These are all console commands)
render.drawfps 1 - When set to 1, this command displays a frame per second (FPS) counter at the top right of the screen. The Counter can be removed by typing render.drawfps 0.
render.perfoverlayvisible 1 - When set to 1, this command displays a small chart on the bottom left corner of the screen designed to provide you with key information about your system's performance during BF3. It shows your graphics card (GPU) usage as a green line, and your processor (CPU) usage as a yellow line. The aim is to ensure that during gameplay neither lines spike frequently to very high levels, as this indicates that the particular resource is being overtaxed, and possibly causing lag and instability. If necessary experiment with your in-game settings until you see a reduction in such spikes.
Use render.perfoverlayvisible 0 to close the overlay.
RenderDevice.TripleBufferingEnable 1 - By default Triple Buffering appears to be enabled in BF3. If you've enabled Vertical Sync, Triple Buffering can be useful in preventing a drop in FPS, but Triple Buffering can also reduce responsiveness on some systems, even with VSync disabled. Set this command to a value of 0 to disable the built-in Triple Buffering and test to see if it reduces any input lag.
RenderDevice.ForceRenderAheadLimit 0 - This setting controls the number of frames prepared by the CPU before being processed by the GPU. You can try values of 0, 1, 2 or 3 - higher values may improve FPS but can decrease responsiveness, while lower values do the reverse. In experimenting with this on my system using the performance overlay (see above), I found that as the value increased to 3, CPU spikes became more frequent. Smoothest performance was at 0 or 1, but this can vary from system to system.
GameTime.MaxVariableFps 60 - This command allows you to cap your framerate to the FPS value you specify (e.g. a value of 60 for a 60 FPS cap). This is not the same as VSync, as the framerate cap is not linked to your refresh rate, and capping your FPS in this way will not reduce your overall performance or create mouse lag like VSync can. Instead, by capping your framerate you can prevent large fluctuations in FPS, in turn reducing resource spikes and stuttering, and improving the perception of smoothness. However capping your FPS does not mean your minimum FPS will rise to the capped value, it only prevents maximum FPS from exceeding it.
screenshot.render - When this command is executed in the console, the game immediately takes a screenshot (minus the console), and places it as a lossless .PNG file in your \Users\[username]\Documents\Battlefield 3\Screenshots directory. You can use the screenshot.format command to change the format of the screenshot file. E.g. screenshot.format JPG to save screenshots in JPEG format rather than PNG.
render.drawfps 1
RenderDevice.TripleBufferingEnable 0
RenderDevice.ForceRenderAheadLimit 0
GameTime.MaxVariableFps 120
|