![]() ![]() All resource and description memory lifetimes are the sole responsibly of the app to maintain for the proper duration, and are not reference counted. Direct3D 12 uses COM-style reference counting only for the lifetimes of interfaces (by using the weak reference model of Direct3D tied to the lifetime of the device).The app is responsible for keeping the memory available until it is no longer needed. These dynamic updates include any required GPU fences or buffering. In Direct3D 12, all dynamic updates (including constant buffers, dynamic vertex buffers, dynamic textures, and so on) are explicitly controlled by the app.No additional memory management is required in the app the old buffer is reused or destroyed automatically when the GPU is finished with it. This allows the GPU to continue using the old data while the app places data in the new buffer. In Direct3D 11, if the GPU is still using the buffer when you call ID3D11DeviceContext::Map with D3D11_MAP_WRITE_DISCARD, the runtime returns a pointer to a new region of memory instead of the old buffer data. That is, the "Map/Lock-DISCARD" pattern in Direct3D 11 must be performed manually in Direct3D 12. In Direct3D 12, apps are responsible for pipelining data updates.This fact also means that no automatic checking for pipeline hazards is performed by Direct3D 12, so again this is the apps responsibility. In Direct3D 12, CPU-GPU synchronization is now the explicit responsibility of the app and is no longer implicitly performed by the runtime, as it is in Direct3D 11.Your app has increased speed and efficiency with Direct3D 12, but you are responsible for more tasks than you were with Direct3D 11. ![]() But, the trade-off of your app having increased speed and efficiency with Direct3D 12 is that you are responsible for more tasks than you were with Direct3D 11.ĭirect3D 12 is a return to low-level programming it gives you more control over the graphical elements of your games and apps by introducing these new features: objects to represent the overall state of the pipeline, command lists and bundles for work submission, and descriptor heaps and tables for resource access. ![]() By being closer to hardware, Direct3D 12 is faster and more efficient. Direct3D 12 lets apps get closer to hardware than ever before. Direct3D 12 represents a significant departure from the Direct3D 11 programming model. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |