What To Look For
The most likely categories of issues are:- Performance-related: Frame rate drops, crashes, or race conditions caused by performance differences rendering at a higher or lower resolution. These could also be impacted by changes in field-of-view (for example, because a wider screen shows more enemies at once, leading to a lower frame rate). The tools you normally use for performance testing, such as PIX, will work for custom resolution as well.
- Visual/UI layout: Issues like the examples below may occur, especially with UI overlays.
For a game intended to look like this:
Look for issues like:
Stretched or squashed images/text. If the whole screen looks stretched like the image below, there may be a mismatch between backbuffer resolution and the values passed to XGameStreamingSetResolution. This may happen if rendering makes incorrect aspect ratio assumptions.Cut-off images/text
This may happen if UI layout makes incorrect resolution or aspect ratio assumptions.UI Overlap
This may happen if UI element sizes and placements do not scale appropriately for different resoultions or aspect ratios.If your device’s screen or window doesn’t match the stream resolution, black letter or pillar bars will be added automatically, so cases like this may be expected:
Setting up Testing
To test custom resolution, you need to stream from an XBOX Series X Dev Kit. See here for instructions to set up streaming. While it is possible to test with a variety of client devices, the easiest way to test custom resolution is by streaming to Edge on a PC. On that PC, you can resize the stream window to different resolutions to test them. Using the Edge developer tools, you can set a window to the specific sizes of your choice to ensure consistent testing. To do that:- Open the XBOX Game Streaming Remote Connect page and connect to your devkit
- Open the Edge Developer Tools from the …>More Tools submenu
- Click the Toggle Device Emulation button in the upper-left corner with the phone/tablet icon
- Choose devices from the menu of presets next to the resolution at the top or add your own resolutions by choosing Edit from the menu and clicking Add Custom Device. If you add a custom device, set the Device Pixel Ratio to 1. Note that the “Responsive” setting that lets you change resolutions applies a multiplier to the pixel values you choose based on your PC’s scaling settings, so it’s more difficult to ensure the correct resolution using that setting.
- Change emulated devices or click the Rotate button to trigger a DisplayDetails update event
Ensuring Test Coverage
If your game supports a fixed set of resolutions, then ensuring each of those resolutions works should provide good coverage. However, if your game can scale to arbitrary resolutions, testing these four boundary cases should help expose most issues:- Maximum pixel count: Run your game at a resolution that hits the
maxPixelCountvalue you pass to XGameStreamingGetDisplayDetails. This should help expose any performance issues. Note that you may pass a larger value than XBOX Game Streaming currently supports (as of September 2022, the maximum streaming resolution is equivalent to 1080p: 2073600 pixels; this may increase in the future). To test with higher resolutions than streaming currently supports, you can render at a 16:9 aspect ratio and test your game without streaming. If you setmaxPixelCountto the number of pixels your game would normally render on the current system device type, this may also be covered by your normal testing. - Minimum resolution: The minimum streaming resolution is 640x360. Test this resolution (or your game’s minimum resolution, whichever is larger) to find race conditions from unusually fast rendering and find UI elements that get cut off at low resolutions.
- Widest supported aspect ratio: Choose a resolution matching your
widestSupportedAspectRatiovalue to find issues with UI layout or a wide camera field of view. As of September 2022, the maximum width for streaming is 2560 pixels (which may increase in the future); with the minimum height of 360 pixels, that is a 64:9 aspect ratio. - Tallest supported aspect ratio: Choose a resolution matching your
tallestSupportedAspectRatiovalue to find issues with UI layout or a tall camera field of view. As of September 2022, the maximum height for streaming is 1440 pixels (which may increase in the future); with the minimum width of 640 pixels, that is a 4:9 aspect ratio.
