Page MenuHome

Workbench: Performance

Authored by Jeroen Bakker (jbakker) on Oct 17 2019, 3:31 PM.



Small performance improvements by caching the world_ubo in the World.
It was detected that NVIDIA driver created threads to update the
world_ubo (304 bytes). This patch will reuse the previous uploaded
ubo when not changed.

Note that in case multiple viewports are open with different settings or
viewpoint the caches will always miss.

Diff Detail

rB Blender

Event Timeline

Can confirm the threadspin seems to be gone, and the perf got a massive boost! well done @Jeroen Bakker (jbakker) !


On the classroom scene


cc: @Julian Eisel (Severin)

@LazyDodo (LazyDodo) Can you also test when using split eye rendering that the performance is still there. A different eye will produce a different shadow_direction_vs, it will reuse the same allocated GPU memory, but not sure if rewriting that memory will create the threads again.

I don't think so as the 50% was just in the GPU_alloc_buf. That is now only done once, when most likely be done by the first frame that blender renders (startup screen).


Remove the data cache. Only keep the UBO allocation

Removed the cache of the data, only cache the UBO

This revision is now accepted and ready to land.Wed, Nov 27, 3:19 PM
This revision was automatically updated to reflect the committed changes.