Asteroids and DirectX* 12: Performance and Power Savings

ID 679376
Updated 9/29/2015
Version Latest
Public

author-image

By

Download Code Sample

The asteroids sample that Intel developed is an example of how to use the Microsoft DirectX* 12 graphics API to achieve performance and power benefits over previous APIs and was initially shown at SIGGRAPH 2014. Now that DirectX 12 is public, we are releasing the source code for the sample. In it, we render a scene of 50,000 fully dynamic and unique asteroids in two modes: maximum performance and maximum power saving. The application can switch between using the DirectX 11 and DirectX 12 APIs at the tap of a button.

All of the results here were captured on a Microsoft Surface* Pro 3 when the tablet was running in a steady, thermally constrained state. This state represented the experience of playing a demanding game for more than 10–15 minutes.

Performance

In the performance mode the application is allowed to run as fast as possible within the thermal and power constraints of the platform. Using DirectX 11, we see the following:

frame rate and the distribution of power between the CPU and GPU

The image shows the frame rate (top left) and the distribution of power between the CPU and GPU. Toggling the demo to run on DirectX 12 shows a significant improvement.

Performance with DirectX 12 increases ~70 percent (from 19 FPS to 33 FPS).

Performance with DirectX 12 increases ~70 percent (from 19 FPS to 33 FPS). The power graph explains why this is happening. DirectX 12 is designed for low-overhead, multithreaded rendering. Using the new API we reduced the CPU power requirement, thus freeing that power for the GPU.

Power

To directly compare the power savings of DirectX 12 to another API, we also support a mode that locks the frame rate so that the demo does the same amount of work in each API. Toggling from DirectX 11 (on the left half of the power graph) to DirectX 12 (on the right) while keeping the workload fixed, we see the following:

DirectX 12 uses less than half the CPU power when compared to DirectX 11

Rendering the same scene with DirectX 12 uses less than half the CPU power when compared to DirectX 11, resulting in a cooler device with longer battery life.

These increases in power efficiency in DirectX 12 are due both to reduced graphics submission overhead and an increase in multithreaded efficiency. Spreading work across more CPU cores at a lower frequency is significantly more power efficient than running a single thread at high frequency.

Summary

With this demo, we have shown that DirectX 12 enables significant improvements in both power and performance. This demo was created to show the two extremes: fixed power and fixed workload. In reality developers can choose any desired blend of power and performance for their applications.

The main takeaway is that power and performance are inseparably linked. Conventional notions of "CPU versus GPU bound" are misleading on modern devices like the Surface Pro 3. An increase in CPU power efficiency can be used for more performance even if an application is not "CPU bound."

More Information

GitHub: https://github.com/GameTechDev/asteroids_d3d12

DirectX Developer Blog: http://blogs.msdn.com/b/directx/
DirectX 12 Twitter feed: https://twitter.com/DirectX12
Intel Software Twitter feed: https://twitter.com/IntelSoftware

Intel technologies may require enabled hardware, specific software, or services activation. Performance varies depending on system configuration. Check with your system manufacturer or retailer.

Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products.

For more information go to http://www.intel.com/performance.