diff options
author | Jeroen Bakker <jeroen@blender.org> | 2020-09-07 09:19:09 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-09-07 09:21:41 +0300 |
commit | 7170f7a0414ecded72fba3ef69e28be2be148291 (patch) | |
tree | d98075a0c6695f8ddb9f85fc5f728a5e837c2d1c /source/blender/draw/engines/eevee/eevee_shadows.c | |
parent | 267b8e1a5c322c87d9684638cc29c984c6d33e58 (diff) |
EEVEE: Shaders tests
This will add the remaining static shaders to the eevee shader test suite.
- Downsampling
- GGX LUT generation
- Mist
- Motion Blur
- Ambient Occlusion
- Render Passes
- Screen Raytracing
- Shadows
- Subsurface
- Volumes
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D8779
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_shadows.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_shadows.c | 31 |
1 files changed, 4 insertions, 27 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_shadows.c b/source/blender/draw/engines/eevee/eevee_shadows.c index 26bf477763e..df7a7ac3a84 100644 --- a/source/blender/draw/engines/eevee/eevee_shadows.c +++ b/source/blender/draw/engines/eevee/eevee_shadows.c @@ -34,15 +34,6 @@ #define SH_CASTER_ALLOC_CHUNK 32 -static struct { - struct GPUShader *shadow_sh; - struct GPUShader *shadow_accum_sh; -} e_data = {NULL}; /* Engine data */ - -extern char datatoc_shadow_vert_glsl[]; -extern char datatoc_shadow_frag_glsl[]; -extern char datatoc_shadow_accum_frag_glsl[]; - void eevee_contact_shadow_setup(const Light *la, EEVEE_Shadow *evsh) { evsh->contact_dist = (la->mode & LA_SHAD_CONTACT) ? la->contact_dist : 0.0f; @@ -59,16 +50,6 @@ void EEVEE_shadows_init(EEVEE_ViewLayerData *sldata) const DRWContextState *draw_ctx = DRW_context_state_get(); const Scene *scene_eval = DEG_get_evaluated_scene(draw_ctx->depsgraph); - if (!e_data.shadow_sh) { - DRWShaderLibrary *lib = EEVEE_shader_lib_get(); - - e_data.shadow_sh = DRW_shader_create_with_shaderlib( - datatoc_shadow_vert_glsl, NULL, datatoc_shadow_frag_glsl, lib, NULL); - - e_data.shadow_accum_sh = DRW_shader_create_fullscreen_with_shaderlib( - datatoc_shadow_accum_frag_glsl, lib, SHADER_DEFINES); - } - if (!sldata->lights) { sldata->lights = MEM_callocN(sizeof(EEVEE_LightsInfo), "EEVEE_LightsInfo"); sldata->light_ubo = GPU_uniformbuf_create_ex(sizeof(EEVEE_Light) * MAX_LIGHT, NULL, "evLight"); @@ -140,7 +121,8 @@ void EEVEE_shadows_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) DRWState state = DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_SHADOW_OFFSET; DRW_PASS_CREATE(psl->shadow_pass, state); - stl->g_data->shadow_shgrp = DRW_shgroup_create(e_data.shadow_sh, psl->shadow_pass); + stl->g_data->shadow_shgrp = DRW_shgroup_create(EEVEE_shaders_shadow_sh_get(), + psl->shadow_pass); } } @@ -403,7 +385,8 @@ void EEVEE_shadow_output_init(EEVEE_ViewLayerData *sldata, /* Create Pass and shgroup. */ DRW_PASS_CREATE(psl->shadow_accum_pass, DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_ALWAYS | DRW_STATE_BLEND_ADD_FULL); - DRWShadingGroup *grp = DRW_shgroup_create(e_data.shadow_accum_sh, psl->shadow_accum_pass); + DRWShadingGroup *grp = DRW_shgroup_create(EEVEE_shaders_shadow_accum_sh_get(), + psl->shadow_accum_pass); DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth); DRW_shgroup_uniform_texture(grp, "utilTex", EEVEE_materials_get_util_tex()); DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo); @@ -434,9 +417,3 @@ void EEVEE_shadow_output_accumulate(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_D } /* \} */ - -void EEVEE_shadows_free(void) -{ - DRW_SHADER_FREE_SAFE(e_data.shadow_sh); - DRW_SHADER_FREE_SAFE(e_data.shadow_accum_sh); -} |