diff options
author | Patrick Mours <pmours@nvidia.com> | 2019-10-21 15:22:24 +0300 |
---|---|---|
committer | Patrick Mours <pmours@nvidia.com> | 2019-10-21 15:23:45 +0300 |
commit | d0cba5caf464e18e8522c3f890cb1053631374c1 (patch) | |
tree | 79288dc8009cc49b886bc168100055487a409e18 /intern | |
parent | 6a1118092aa74f0b1e07900178e3df6e9a215b3b (diff) |
Fix T70937: Cycles fails in viewport when rendering with OptiX
Was caused by D6068, which did not handle "MEM_PIXELS" memory
when not in background mode. Before that it always fell back to using
generic device memory, so restoring that behavior. In future this
should be changes to use OpenGL interop for optimal performance.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/device/device_optix.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp index e230662e698..370e3cf4085 100644 --- a/intern/cycles/device/device_optix.cpp +++ b/intern/cycles/device/device_optix.cpp @@ -1196,14 +1196,16 @@ class OptiXDevice : public Device { void mem_alloc(device_memory &mem) override { if (mem.type == MEM_PIXELS && !background) { - assert(!"mem_alloc not supported for pixels."); + // Always fall back to no interop for now + // TODO(pmours): Support OpenGL interop when moving CUDA memory management to common code + background = true; } else if (mem.type == MEM_TEXTURE) { assert(!"mem_alloc not supported for textures."); + return; } - else { - generic_alloc(mem); - } + + generic_alloc(mem); } CUDAMem *generic_alloc(device_memory &mem, size_t pitch_padding = 0) |