diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-01-17 16:02:48 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-01-17 16:02:48 +0300 |
commit | 8e35a9e4c7fdeb09c31b7cc52955974748fb22c3 (patch) | |
tree | 9b059eb1f7af8363af79d58237e2afc05f1fb9e5 /source/blender/draw/engines/eevee/eevee_private.h | |
parent | 54e10dbd17febf4873ca70b7da892c673a8b2d93 (diff) |
Eevee: Perf: Update noises (in utilTex) via GPU drawing.
This leads to a ~3ms improvement of CPU time during drawing.
This prevent the rendering from being stalled waiting for the texture data to be transfered.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_private.h')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_private.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h index d56d5abc9ef..2a6cadbd87b 100644 --- a/source/blender/draw/engines/eevee/eevee_private.h +++ b/source/blender/draw/engines/eevee/eevee_private.h @@ -206,6 +206,7 @@ typedef struct EEVEE_PassList { struct DRWPass *refract_pass; struct DRWPass *transparent_pass; struct DRWPass *background_pass; + struct DRWPass *update_noise_pass; } EEVEE_PassList; typedef struct EEVEE_FramebufferList { @@ -228,6 +229,8 @@ typedef struct EEVEE_FramebufferList { struct GPUFrameBuffer *screen_tracing_fb; struct GPUFrameBuffer *refract_fb; + struct GPUFrameBuffer *update_noise_fb; + struct GPUFrameBuffer *planarref_fb; struct GPUFrameBuffer *main; @@ -732,7 +735,7 @@ EEVEE_LampEngineData *EEVEE_lamp_data_ensure(Object *ob); /* eevee_materials.c */ struct GPUTexture *EEVEE_materials_get_util_tex(void); /* XXX */ -void EEVEE_materials_init(EEVEE_StorageList *stl); +void EEVEE_materials_init(EEVEE_StorageList *stl, EEVEE_FramebufferList *fbl); void EEVEE_materials_cache_init(EEVEE_Data *vedata); void EEVEE_materials_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob); void EEVEE_materials_cache_finish(EEVEE_Data *vedata); @@ -747,7 +750,7 @@ struct GPUMaterial *EEVEE_material_mesh_depth_get(struct Scene *scene, Material struct GPUMaterial *EEVEE_material_hair_get(struct Scene *scene, Material *ma, int shadow_method); void EEVEE_materials_free(void); void EEVEE_draw_default_passes(EEVEE_PassList *psl); -void EEVEE_update_util_texture(double offsets[3]); +void EEVEE_update_noise(EEVEE_PassList *psl, EEVEE_FramebufferList *fbl, double offsets[3]); /* eevee_lights.c */ void EEVEE_lights_init(EEVEE_ViewLayerData *sldata); |