5 ms·
Note that this is for CPU rendering: “[OSL] uses LLVM to JIT compile the shader bytecode to x86 instructions” Not using the GPU makes sense because the featur
by pavlov 5y ago
Note that this is for CPU rendering:
“[OSL] uses LLVM to JIT compile the shader bytecode to x86 instructions”
Not using the GPU makes sense because the feature set is very advanced, and production rendering needs a degree of hardware independence so that frames rendered on different machines can be mixed in the same job.
- jobigoud 5y agoThere are implementation of OSL on the GPU. For example Octane Render supports OSL shaders to create procedural textures, texture mappings, cameras and geometry (signed distance fields) directly on the GPU.
- ArtWomb 5y agoOctane runs optimized on CUDA. Also supports ARM. And Prime edition is free for Blender ;)
- gmueckl 5y agoAs long as you don't mix different GPU manufacturers and are careful with the comparatively minor differences between GPU generations, you will be fine. GPUs aren't always entirely deterministic when rendering, but the deviations are really tolerable - any noise from the rendering method itself will likely overshadow that. We see somewhat larger differences between hardware generations in our testing, but nothing really noteworthy (read: effectively imperceptible). Differences between AMD and nvidia GPUs tend to be even larger, but usually it's so small that you can only see them when you know exactly where to look, e.g. the occasional diagonal edge where a few pixels look a bit different. And all that is when using graphics APIs where there is a bit of leeway by design. If you have a renderer that works purely using compute APIs (OpenCL, CUDA), the precision requirements are more stringent. You shouldn't have to worry as much if you have a renderer that only uses that.
- fulafel 5y agoThat quote seems to be from the README's subproject listing section: "liboslexec, a library that implements the ShadingSystem class, which allows compiled shaders to be executed within an application. Currently, it uses LLVM to JIT compile the shader bytecode to x86 instructions." But this doesn't preclude GPU use of the language.
- ykl 5y agoNot only CPU rendering! For some time now OSL has supported PTX output from the LLVM backend; a number of commercial renderers are already using OSL on the GPU. See: RenderMan 24, Arnold GPU, Octane, Cycles, etc.
- pixelpoet 5y agoRedshift as well :)
- kelsolaar 5y agoAnd memory requirement, it is common for VFX render nodes to have 256-512Gb memory these days. There is no GPU with such quantity of memory, the A100 has 80Gb and comes in a system that cost ~$200,000.