Blender Git Commit Log
Git Commits -> Revision 58b7e02
Revision 58b7e02 by Sergey Sharybin (lineart-shadow) December 8, 2021, 06:53 (GMT) |
Fix T93350: Cycles renders shows black during rendering huge resolutions The root of the issue is caused by Cycles ignoring OpenGL limitation on the maximum resolution of textures: Cycles was allocating texture of the final render resolution. It was exceeding limitation on certain GPUs and driver. The idea is simple: use multiple textures for the display, each of which will fit into OpenGL limitations. There is some code which allows the display driver to know when to start the new tile. Also added some code to allow force graphics interop to be re-created. The latter one ended up not used in the final version of the patch, but it might be helpful for other drivers implementation. The tile size is limited to 8K now as it is the safest size for textures on many GPUs and OpenGL drivers. Differential Revision: https://developer.blender.org/D13385 |
Commit Details:
Full Hash: 58b7e02cdbd6dcfee20d03442b83ed1cc24ea85c
Parent Commit: f42f6f8
Committed By: YimingWu
Lines Changed: +568, -306
14 Modified Paths:
/intern/cycles/blender/addon/properties.py (+1, -1) (Diff)
/intern/cycles/blender/display_driver.cpp (+498, -222) (Diff)
/intern/cycles/blender/display_driver.h (+8, -59) (Diff)
/intern/cycles/device/cuda/graphics_interop.cpp (+4, -2) (Diff)
/intern/cycles/integrator/path_trace.cpp (+6, -5) (Diff)
/intern/cycles/integrator/path_trace.h (+3, -1) (Diff)
/intern/cycles/integrator/path_trace_display.cpp (+8, -3) (Diff)
/intern/cycles/integrator/path_trace_display.h (+6, -3) (Diff)
/intern/cycles/integrator/path_trace_work.cpp (+4, -4) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+4, -2) (Diff)
/intern/cycles/session/display_driver.h (+13, -0) (Diff)
/intern/cycles/session/session.cpp (+3, -2) (Diff)
/intern/cycles/session/tile.cpp (+4, -2) (Diff)
/intern/cycles/session/tile.h (+6, -0) (Diff)
/intern/cycles/blender/display_driver.cpp (+498, -222) (Diff)
/intern/cycles/blender/display_driver.h (+8, -59) (Diff)
/intern/cycles/device/cuda/graphics_interop.cpp (+4, -2) (Diff)
/intern/cycles/integrator/path_trace.cpp (+6, -5) (Diff)
/intern/cycles/integrator/path_trace.h (+3, -1) (Diff)
/intern/cycles/integrator/path_trace_display.cpp (+8, -3) (Diff)
/intern/cycles/integrator/path_trace_display.h (+6, -3) (Diff)
/intern/cycles/integrator/path_trace_work.cpp (+4, -4) (Diff)
/intern/cycles/integrator/path_trace_work_gpu.cpp (+4, -2) (Diff)
/intern/cycles/session/display_driver.h (+13, -0) (Diff)
/intern/cycles/session/session.cpp (+3, -2) (Diff)
/intern/cycles/session/tile.cpp (+4, -2) (Diff)
/intern/cycles/session/tile.h (+6, -0) (Diff)