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. / Bakgrund. Ritanrop i interaktiva applikationer spelas ofta in för varje bild, trots att de redan existerar i minnet från den föregående. Samtidigt har scener en tendens att vara strukturellt stabila; det som existerar för en bild kommer sannolikt existera även för de påföljande. Syfte. Genom att utnyttja observerad tidskoherens i scenstrukturer avser denna uppsats att utforma en lösning för att stegvis spela in ritanrop. Syftet med sådan inspelning är att återanvända det som spelats in tidigare istället för att spela in det på nytt. Två lösningar för inkrementell inspelning implementeras och jämförs med vanlig naiv inspelning med avseende på kringkostnader. En av dem drar nytta av en utökning till grafikgränssnittet Vulkan för att utvärdera indirekta byten av pipeline. Metod. En simulering används som utvärderingsmetod, med en simpel scen där trianglar renderas med individuella ritanrop. Två scenstorlekar används. En av dem matchar övre gränsen för antalet ritanrop i ett urval av moderna spel, och den andra är en överdriven storlek för att testa lämpligheten i ännu större scener. GPU-tid mäts tillsammans med total exekveringstid för att tillhandahålla siffror på den kringkostnad som orsakas av de olika inspelningsstrategierna. Resultat. När frekvensen av inkrementella uppdateringar beaktas presterar multi-draw indirect (MDI) mycket bra, som vinner över de övriga strategierna även med 100% uppdateringar jämfört med de övrigas 0%. Den skalar dock undermåligt då antal pipeline-byten ökar, där den andra inkrementella inspelningsstrategin istället presterar bäst. I detta fall blir MDI snabbt dyrare än vanlig inspelning. Slutsatser. Det visas att de inkrementella inspelningsstrategierna märkbart reducerar kringkostnad och att de därmed är värda att ha i åtanke. Vid få pipeline-byten är MDI en lämplig kandidat tack vare dess prestanda och enkla implementation. Större förhållanden av pipeline-byten är inte nödvändigtvis ett realistiskt scenario, men i dessa fall är device generated commands (DGC) ett bättre val än MDI. Notera att DGC-strategin inte utför sann inkrementell inspelning eftersom kommandon fortfarande spelas in på GPU:n. Kringkostnadsmarginaler är förhållandevis låga i den mindre scenen, men även där kan inkrementell inspelning vara förmånlig eftersom man då, beroende på implementation, skulle kunna undvika att vandra genom delar av datastrukturer som förblivit oförändrade.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:bth-16724 |
Date | January 2018 |
Creators | Flöjt, Andreas |
Publisher | Blekinge Tekniska Högskola, Institutionen för kreativa teknologier |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0022 seconds