Very nice thing about our effects framework is that it does not cause any speed loss. Effects code is just combined into the final shader code, without any transformations that could make it slower. Our process of “combining” effects is essentially adding function calls around. Fortunately, a function call has no speed penalty. Existing shading languages are defined such that functions can always be inlined (there is no recursion allowed, and parameter qualifiers have simple interpretation), and as far as we know they are actually always inlined by existing shading language compilers.