An Optimizing Compiler for Automatic Shader Bounding
(2010) In Computer Graphics Forum 29(4). p.1259-1268- Abstract
- Programmable shading provides artistic control over materials and geometry, but the black box nature of shaders makes some rendering optimizations difficult to apply. In many cases, it is desirable to compute bounds of shaders in order to speed up rendering. A bounding shader can be automatically derived from the original shader by a compiler using interval analysis, but creating optimized interval arithmetic code is non-trivial. A key insight in this paper is that shaders contain metadata that can be automatically extracted by the compiler using data flow analysis. We present a number of domain-specific optimizations that make the generated code faster, while computing the same bounds as before. This enables a wider use and opens up... (More)
- Programmable shading provides artistic control over materials and geometry, but the black box nature of shaders makes some rendering optimizations difficult to apply. In many cases, it is desirable to compute bounds of shaders in order to speed up rendering. A bounding shader can be automatically derived from the original shader by a compiler using interval analysis, but creating optimized interval arithmetic code is non-trivial. A key insight in this paper is that shaders contain metadata that can be automatically extracted by the compiler using data flow analysis. We present a number of domain-specific optimizations that make the generated code faster, while computing the same bounds as before. This enables a wider use and opens up possibilities for more efficient rendering. Our results show that on average 42-44% of the shader instructions can be eliminated for a common use case: single-sided bounding shaders used in lightcuts and importance sampling. (Less)
Please use this url to cite or link to this publication:
https://lup.lub.lu.se/record/1673303
- author
- Clarberg, Petrik ; Toth, Robert ; Hasselgren, Jon and Akenine-Möller, Tomas LU
- organization
- publishing date
- 2010
- type
- Contribution to journal
- publication status
- published
- subject
- in
- Computer Graphics Forum
- volume
- 29
- issue
- 4
- pages
- 1259 - 1268
- publisher
- Wiley-Blackwell
- external identifiers
-
- wos:000281286100002
- scopus:77955959575
- ISSN
- 1467-8659
- DOI
- 10.1111/j.1467-8659.2010.01721.x
- language
- English
- LU publication?
- yes
- id
- be83c296-3c86-44e7-b57a-75f6b8f76c8c (old id 1673303)
- date added to LUP
- 2016-04-01 09:50:20
- date last changed
- 2022-01-25 17:13:00
@article{be83c296-3c86-44e7-b57a-75f6b8f76c8c, abstract = {{Programmable shading provides artistic control over materials and geometry, but the black box nature of shaders makes some rendering optimizations difficult to apply. In many cases, it is desirable to compute bounds of shaders in order to speed up rendering. A bounding shader can be automatically derived from the original shader by a compiler using interval analysis, but creating optimized interval arithmetic code is non-trivial. A key insight in this paper is that shaders contain metadata that can be automatically extracted by the compiler using data flow analysis. We present a number of domain-specific optimizations that make the generated code faster, while computing the same bounds as before. This enables a wider use and opens up possibilities for more efficient rendering. Our results show that on average 42-44% of the shader instructions can be eliminated for a common use case: single-sided bounding shaders used in lightcuts and importance sampling.}}, author = {{Clarberg, Petrik and Toth, Robert and Hasselgren, Jon and Akenine-Möller, Tomas}}, issn = {{1467-8659}}, language = {{eng}}, number = {{4}}, pages = {{1259--1268}}, publisher = {{Wiley-Blackwell}}, series = {{Computer Graphics Forum}}, title = {{An Optimizing Compiler for Automatic Shader Bounding}}, url = {{http://dx.doi.org/10.1111/j.1467-8659.2010.01721.x}}, doi = {{10.1111/j.1467-8659.2010.01721.x}}, volume = {{29}}, year = {{2010}}, }