Exploiting temporal coherence in scene structure for incremental draw call recording in Vulkan

Detta är en Uppsats för yrkesexamina på avancerad nivå från Blekinge Tekniska Högskola/Institutionen för kreativa teknologier

Sammanfattning: Background. Draw calls in interactive applications are often recorded on a per-frame basis, despite already residing in memory after recording in the previous one. At the same time, scenes tend to be structurally stable; what exists during one frame is likely to exist in the next ones as well. Objectives. By exploiting the observed temporal coherence in scene structures, this thesis aims to devise a solution to record draw calls incrementally. The purpose of such recording is to reuse what has been recorded previously instead of recording it anew. Two approaches to incremental recording are implemented and compared to regular naïve recording in terms of overhead time. One of them makes use of an extension to the Vulkan graphics application programming interface (API) to evaluate indirect pipeline changes. Methods. A simulation is used as the method of evaluation, using a simple scene where triangles are rendered in individual draw calls. Two sizes of the scene are used. One matches the upper end of draw call count in samples of modern games and the other is an exaggerated size to test viability for even larger ones. Graphics processing unit (GPU) time is measured along with total execution time to provide numbers on the overhead time caused by the different recording strategies. Results. When considering the frequency of incremental updates, the multi-draw indirect (MDI) strategy performs very well, outperforming the other strategies even with 100% updates compared to 0% of the others. However, it scales poorly with increasing number of pipeline switches, where the other incremental recording strategy performs best instead. In this case, MDI soon becomes more expensive than regular recording. Conclusions. It is shown that the incremental recording strategies have an observable reduction in overhead time, and may be worth considering. With few pipeline switches, MDI is a viable candidate for its performance and ease of implementation. A large ratio of pipeline switches may not be a realistic scenario, but in those cases the device generated commands (DGC) strategy is a better choice than MDI. Note that the DGC strategy does not perform true incremental recording because calls are still recorded by the GPU. Overhead margins are comparatively low in the smaller scene, but even in that case incremental recording could be beneficial because depending on the implementation, one could avoid traversing parts of data structures that remain unchanged.

  HÄR KAN DU HÄMTA UPPSATSEN I FULLTEXT. (följ länken till nästa sida)