Blender Git Commit Log

Git Commits -> Revision 6e999e0

Revision 6e999e0 by Jeroen Bakker (master)
June 9, 2021, 14:20 (GMT)
T88352: Use threaded ibo.tris extraction for single material meshes.

This patch adds a specific extraction method when the mesh has only
one material. This method is multi-threaded.

There is a trade-off in this patch as the ibo isn't compressed (it adds
restart indexes for hidden faces). So it depends if threading is faster
than the additional GPU buffer upload.

# Subdivided cube
I used a cube subdivided 7 times, modifiers applied. that gives around 400000 faces.

The test is selecting some vertices and move them. During this test the next buffers are updated on each frame:
* vbo.pos_nor
* vbo.lnor
* vbo.edit_data
* ibo.tris
* ibo.points

System info:
|platform| Linux-5.11.0-7614-generic-x86_64-with-glibc2.33|
| renderer| AMD SIENNA_CICHLID (DRM 3.40.0, 5.11.0-7614-generic, LLVM 11.0.1)|
|vendor| AMD|
|version| 4.6 (Core Profile) Mesa 21.0.1|
|cpu| Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz|
|compiler| gcc version 10.3.0|

Timing have been measured using DEBUG_TIME in `draw_cache_extract_mesh`.

master: `rdata 8ms iter 45ms (frame 153ms)`
this patch `rdata 6ms iter 36ms (frame 132ms)`

Reviewed By: mano-wii

Maniphest Tasks: T88352

Differential Revision: https://developer.blender.org/D11290

Commit Details:

Full Hash: 6e999e08ab87712a9baca33ab691af2b83762b7e
Parent Commit: ec98bb3
Lines Changed: +130, -5

5 Modified Paths:

/source/blender/draw/intern/draw_cache_extract.h (+1, -1) (Diff)
/source/blender/draw/intern/draw_cache_extract_mesh.cc (+3, -1) (Diff)
/source/blender/draw/intern/draw_cache_extract_mesh_extractors.c (+15, -1) (Diff)
/source/blender/draw/intern/draw_cache_extract_mesh_private.h (+3, -1) (Diff)
/source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_tris.cc (+108, -1) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021