After all, why would anyone write their application twice, when they could write it once? Why then, would we spend a great deal of time and effort in something that would benefit only a subset of our user base? The idea of a platform-specific API, while not unheard of was not often implemented. In software, the only numbers of significance are 0, 1, and N. If the abstraction layer is well built, then the cost of maintaining two graphics platforms is not worse than the cost of one.Įvery cross-platform graphics engine that we have ever worked with has been designed around some kind of API abstraction which separates the game code on top from the graphics platform on the bottom. It is also important to understand that, with the right architecture, graphics APIs are essentially a fixed cost. Mantle has required an up-front investment, but the cost for future products to continue offering it will be considerably lower.īecause Mantle is so new, and so different, the development cost is higher than normal. In order to understand why its worth it, you need to understand just how important Mantle is. Simply put, Mantle is the most advanced and powerful graphics API in existence. ![]() It provides essentially the same feature set as DX11 or OpenGL, and does so at considerably lower runtime cost. The conventional wisdom in real-time rendering is that batches, or draw calls are expensive. On the PC, with current APIs, this notion is firmly rooted in fact. This is a problem that has plagued engine and driver design since at least the DX9 era, and a large body of real-time rendering tradecraft is motivated by it (instancing, state sorting, texture atlasing, texture arrays, uber-shaders, to name a few). Civilization, it turns out, requires a significant amount of rendering to generate our view of the world, and that in turn means we are required to make many, many more draw calls than you might expect. ![]() ![]() Our birds eye view of the world means that we have a lot more stuff on screen than is typical, and our UI (a rich source of draw calls) is considerably more complex than the average. Mantle changes things by working at a lower level than its competitors. Much of the work that drivers used to do on an applications behalf is now the responsibility of the game engine. This means that the Mantle API is able to be backed by a very small, simple driver, which is thus considerably faster. It also means that this work, which must still be done, is done by someone with considerably more information. Because the engine knows exactly what it will do and how it will do it, it is able to make design decisions that drivers could not.īesides being more efficient, core per core, Mantle also enables fully parallel draw submission (this has been attempted before, but never with the same degree of success).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |