Мне кажется, что Displacement shader в prman действительно должен работать быстрее, чем отклонение P в Surface shader: в REYES displacement вычисляется _до_ surface. Так что, получается, что отклонение P при shading придется или выносить в начало вычислений, или, если значение этого отклонения зависит от ранее вычисленных Oi/Ci ... даже не знаю, что тогда... Перезапускать шейдер заново, поскольку может измениться весь контекст (visibility/backface culling, etc)? В общем, это уже кишки реализации, и если это на самом деле интересно, можно спросить у Larry в c.g.r.r.