GPUPass: Refactor gpupass caching system to allow fast gpumaterial creation.
authorClément Foucault <foucault.clem@gmail.com>
Thu, 7 Jun 2018 09:58:15 +0000 (11:58 +0200)
committerClément Foucault <foucault.clem@gmail.com>
Thu, 7 Jun 2018 10:02:42 +0000 (12:02 +0200)
commitcdbda1c3d8017b994366b101b34c79a5df58902f
tree8b2f18917c0fb847629af39233e1c20e0739caaf
parent366ac88d685d569e5eaa19ce3fc43764683b60fd
GPUPass: Refactor gpupass caching system to allow fast gpumaterial creation.

This is part of the work needed to refactor the material parameters update.

Now the gpupass cache is polled before adding the gpumaterial to the
deferred compilation queue.

We store gpupasses in a single linked list grouped based on their hashes.
This is not the most efficient way but it can be improved upon later.
source/blender/draw/intern/draw_manager_data.c
source/blender/draw/intern/draw_manager_shader.c
source/blender/gpu/GPU_material.h
source/blender/gpu/intern/gpu_codegen.c
source/blender/gpu/intern/gpu_codegen.h
source/blender/gpu/intern/gpu_material.c
source/blender/windowmanager/intern/wm_init_exit.c