![]() These states are often interdependent on one another and the next successive one can’t progress unless the previous stage is defined. In DirectX 11, the objects in the GPU pipeline exist across a wide range of states such as Vertex Shader, Hull Shader, Geometry shader, etc. This allows the use of multiple threads for different draw calls. These draw calls contain the required data and associated pointers within and are independent of other calls and their states. Instead of a single global state (context), each draw call from the application has its own smaller state (see PSOs below for more). ![]() With DirectX 12, the draw calls are more flexible. Furthermore, modifying the global state via state calls is a relatively slower process, further complicating the entire process. Since there’s a single global state/context (and a single main thread on which it’s run), it makes it difficult to multi-thread as multiple draw calls simultaneously can cause errors. The games you run on your PC modify this state via draw calls to the API, after which it’s submitted to the GPU for execution. With DirectX 9 and 11, there’s a global state (or context). Like every application, graphics APIs like DirectX also feature a primary thread that keeps track of the internal API state (resources, their allocation, and availability). How DirectX 12 Improves Performance by Optimizing Hardware UtilizationĪgain, there are a few main API advances that facilitate this gain: Per-Call API Context Luckily, third-party engines like Unreal, CryEngine, and Unity do this for them and they only have to focus on designing. This is a double-edged sword as there are multiple GPU architectures out in the wild and for indie devs, it’s impossible to optimize their game for all of them. They have closer to metal access, meaning that most of the rendering responsibilities and resource allocation are handled by the game engines with some help from the graphics drivers. Earlier this was more abstract and was mostly taken care of by the drivers and the API (although some engines like Frostbyte and Unreal provided low-level tools as well). Closer to Metal SupportĪnother major advantage of DirectX 12 is that developers have more control over how their game utilizes the hardware. This makes poor driver support a less pressing concern. DirectX 12 adds many technologies to improve utilization such as asynchronous compute which allows multiple stages of the pipeline to be executed simultaneously ( read: Compute and Graphics). Traditionally, NVIDIA has had much better driver support while AMD hardware has always suffered from the lack thereof. Many of you might have noticed that in the beginning, AMD GPUs favored DirectX 12 titles more than rival NVIDIA parts. The load is more evenly distributed across all cores, making multi-core CPUs more relevant for gamers. Traditionally with DirectX 9 and 11 based games, most games only used 2-4 cores for the various mechanics: Physics, AI, draw-calls, etc. One of the core advantages of low-level APIs like DirectX 12 and Vulkan is improved CPU utilization. There are three main advantages of the DirectX 12 API for PC gamers: Better Scaling with Multi-Core CPUs CPU overhead with DX11 and 12 (lower is better) DirectX 11 vs DirectX 12: What Does it Mean for PC Gamers With DX12 Ultimate, MS is basically integrating the two platforms. It will be used on both Windows as well as the next-gen Xbox Series X. That’s the reason why PS4 games don’t run on the Xbox One and vise versa.ĭirectX 12 Ultimate is the first graphics API that breaks that rule. In general, an API is designed for a specific OS. However, unlike paint, the output program of a graphics API is only readable by the API used to design it. Think of it as MS Paint where the game is the painting and the paint application is the API. A graphics API is a platform where the actual game designing and mechanics are figured out. Now, what does a graphics API like DirectX do? It acts as an intermediate between the game engine and the graphics drivers, which in turn interact with the OS Kernel. OpenGL and Vulkan, on the other hand, run on Mac as well as Linux. ![]() However, unlike its counterparts, DX is a Microsoft proprietary platform and only runs on Windows natively. Like Vulkan and OpenGL, DirectX is an API that allows you to run video games on your computer. But what exactly is DirectX 12 and how is it different from DirectX 11. This includes better CPU utilization, closer to metal access as well as a host of new features most notably ray-tracing or DXR (DirectX Ray-tracing). DirectX 12 debuted two years back, promising significant performance and efficiency boosts across the board.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |