The irradiance cache (IC) is an acceleration data structure which caches indirect diffuse irradiance values within the context of a ray tracing algorithm. Previously calculated values can be stored and reused in future calculations; such reutilisation enables exploitation of spatial and, in static scenes, temporal coherence, resulting in an order of magnitude improvement in computational performance. In multithreaded shared memory parallel systems the irradiance cache must be shared among rendering threads in order to achieve high efficiency levels. Since all threads read and write from this shared data structure an access control mechanism is required, which ensures that the data structure is not corrupted. Besides assuring correct accesses to the IC this access mechanism must incur minimal overheads such that performance is not compromised. In this paper we propose a new wait-free access mechanism to the shared irradiance cache. Wait-free data structures, unlike traditional access control mechanisms, do not make use of any blocking or busy waiting, avoiding most serialisation and reducing contention. We compare this technique with two other classical approaches: a lock based mechanism and a local write technique, where each thread maintains its own cache of locally evaluated irradiance values. We demonstrate that the wait free approach significantly reduces synchronisation overheads compared to the two other approaches and that it increases data sharing over the local copy technique. This is, to the extent of our knowledge, the first work explicitly addressing access to a shared IC; this problem is becoming more and more relevant with the advent of multicore systems and the ever increasing number of processors within these systems
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.