Quantcast
Channel: DirectX Developer Blog
Viewing all articles
Browse latest Browse all 101

Demystifying Fullscreen Optimizations

$
0
0

TLDR – Demystifying Fullscreen vs Windowed Mode 

 

Games on PC generally offer three different types of display modes: Fullscreen Exclusive (FSE)Windowed, and Borderless Windowed. Fullscreen Exclusive mode gives your game complete ownership of the display and allocation of resources of your graphics cardIn windowed game mode, the game is deployed in a bordered window which allows other applications and windows to continue running in the background. The Desktop Window Manager (DWM) has control of the display, while the graphics resources are shared among all applications, unlike in a Fullscreen Exclusive environment. The third mode is borderless windowed. In a borderless windowed mode, the game is still running in a window but has no border around it. This means the size of window can be adjusted to fill the entire screen while other processes still run in the background.  

With the release of Windows 10, we added Fullscreen Optimizations – which takes full screen exclusive games and runs them instead in a highly optimized borderless windowed format that takes up the entire screen. You get the visual experience and performance of running your game in FSE, but with the benefits of running in a windowed mode. These benefits include faster PC commands such as alt-tab, multiple monitor set ups and overlays. We have extensive performance data that indicates that almost all users who use Fullscreen Optimizations have equal performance to Full Screen Exclusive.  However, if you do find that you are experiencing any issues that may be related to full screen optimizations, please head to the troubleshooting section where we will walk through how to optimize your system and provide feedback to our team.  

 

Stepping Back 

 

Full Screen Exclusive (FSE) was created to give the application or game you are running full control of your desktop and display. As a user, this means that you are getting a fully immersive gaming experience while seeing great performance from your system. However, PC Gaming has evolved and FSE can bring challenges that can hinder game play and the overall gaming experience in subtle ways. One example is when you give an application full control of your desktop, you cannot run any other processes in the background. In addition, there can be performance issues when you try and use overlays or alt-tabbing. 

Overlays, which are windows within the game that are not created by the game (such as Game Bar) are another of the key limitations of FSE. While running with FSE, overlays are possible, but they may cause some issues. In order to create an overlay, the outside application would have to step into and intercept the rendering process. So, if you wanted an overlay – the frame would be rendered, then intercepted by the command that generates the overlay before the frame was presented, inject the overlay, then finally present the frame to the graphics cardThis process of intercepting the render and presentation process can cause problems including performance regressionsinstability and issues with anti-cheat.  

 

The Road to Fullscreen Optimizations  

 

We wanted to create the best gaming experience possible, so we enhanced the current FSE mode by creating Fullscreen Optimizations. Fullscreen Optimizations was designed for gamers to experience the best aspects of both FSE and borderless windowed modeallowing games to take up the entire screen, run at full speed, support fast alt-tab switching, and support for overlays.  

When using Fullscreen Optimizations, your game believes that it is running in Fullscreen Exclusive, but behind the scenes, Windows has the game running in borderless windowed mode. When a game is run in borderless windowed mode, the game does not have full control of the display– that overarching control is given back to the Desktop Window Manager (DWM). The DWM manages the composition/organization of the desktop display content from various applications, meaning it controls what is rendered and presented to the front of your display and what is held in the background. However, this control has historically resulted in a slight performance overhead vs FSE, where the game has full control. 

To get back this performance overhead, we enhanced the DWM to recognize when a game is running in a borderless full screen window with no other applications on the screen. In this circumstance, the DWM gives control of the display and almost all the CPU/GPU power to the game. Which in turn allows equivalent performance to running a game in FSE. Fullscreen Optimizations is essentially FSE with the flexibility to go back to DWM composition in a simple manner. This gives us the best of both worlds with performance and other features that require the DWM, such as overlays.  When an overlay such as the Game Bar is present, the DWM reassumes control of the display, and a slight performance overhead is incurred so that the overlay can be composited on top of the game in a safe and stable way. (To learn more about the Xbox Game bar, check out the info the Game Bar Team has information posted here.) 

To make sure that we did not release Fullscreen Optimizations until the performance was equal to FSE, Fullscreen Optimizations was gradually rolled out in multiple stages. Throughout the roll out, we continued performance testing and our telemetry indicates that performance is, on average, as good or better than FSE.  

 

 

How to Check if Fullscreen Optimizations are Enabled 

 

You can check whether Fullscreen Optimizations are enabled or not by opening the Xbox Game Bar via Win+G. If you are running in Fullscreen Exclusive, then the display brightness may be flickerIf you are in Fullscreen Optimizations, the Xbox Game Bar should pop up as an overlay. You can do this with other system UIs such as the volume indicator too. Make sure to update your drivers to ensure you can take advantage of Fullscreen Optimizations. 

Troubleshooting 

 

If you find that you are having trouble with Full Screen Optimizations, such as performance regression or input lag, we have some steps that can be useful. This includes how to disable the feature for any specific game, but also how to provide us with feedback regarding your gaming experience.  

Below are the instructions on how to disable Fullscreen Optimizations for a game. 

  1. Right Click on the Executable File (.exe) and Select Properties 
  2. Select the Compatibility Tab 
  3. Under Settings – Select “Disable Fullscreen Optimizations 
  4. Click Apply  

Our goal is to create the best possible gaming experience, so if you do find performance issues or other problems that are resolved by disabling Full Screen Optimizations, we want to know. Your feedback is extremely important to us and helps us constantly improve. Below are the instructions that you can follow to report any issues.  

  1. Go to https://aka.ms/fullscreenoptimizationsfeedback which will open to the correct feedback hub for any Fullscreen Optimization related issues. 
  2. In the first tab, Summarize the problem – you also have an optional Details section to provide further detail about your issue. Once completed, click next. 
  3. On the second page, select Problem for the category.  
  4. Under the drop-down menus – select Gaming and Xbox and then select Game Performance and Compatibility 
  5. On the Additional Information tab, select Important Functionality Not Working 
  6. Under Additional Information, you can attach screen grabs or replay captures that help show what you are experiencing. While this is optional – it provides us with much more detail on how we can fix the issue. 

 

We hope this explanation is useful and that it helps improve your experience. We welcome any and all feedback. Happy Gaming 

 

The post Demystifying Fullscreen Optimizations appeared first on DirectX Developer Blog.


Viewing all articles
Browse latest Browse all 101

Latest Images

Trending Articles





Latest Images