38 if (!
e_data.dummy_horizon_tx) {
39 const float pixel[4] = {0.0f, 0.0f, 0.0f, 0.0f};
46 const int fs_size[2] = {(int)viewport_size[0], (
int)viewport_size[1]};
66 GPU_framebuffer_ensure_config(
68 {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(effects->gtao_horizons_renderpass)});
70 if (
G.debug_value == 6) {
73 GPU_framebuffer_ensure_config(
75 {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(effects->gtao_horizons_debug)});
91 GPU_FRAMEBUFFER_FREE_SAFE(fbl->
gtao_fb);
113 {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(txl->ao_accum)});
160 if (
G.debug_value == 6) {
253 const float clear[4] = {0.0f, 0.0f, 0.0f, 0.0f};
MINLINE float max_ff(float a, float b)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
@ SCE_EEVEE_GTAO_BENT_NORMALS
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_uniform_block(shgroup, name, ubo)
#define DRW_shgroup_call(shgroup, geom, ob)
#define DRW_TEXTURE_FREE_SAFE(tex)
bool GPU_mip_render_workaround(void)
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
struct GPUTexture GPUTexture
GPUBatch * DRW_cache_fullscreen_quad_get(void)
const DRWContextState * DRW_context_state_get(void)
const float * DRW_viewport_size_get(void)
DefaultTextureList * DRW_viewport_texture_list_get(void)
void DRW_shgroup_uniform_texture(DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
void DRW_shgroup_call_procedural_triangles(DRWShadingGroup *shgroup, Object *ob, uint tri_count)
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
void DRW_shgroup_uniform_texture_ref(DRWShadingGroup *shgroup, const char *name, GPUTexture **tex)
void DRW_draw_pass(DRWPass *pass)
void DRW_stats_group_start(const char *name)
void DRW_stats_group_end(void)
void DRW_texture_ensure_fullscreen_2d(GPUTexture **tex, eGPUTextureFormat format, DRWTextureFlag flags)
GPUTexture * DRW_texture_create_2d(int w, int h, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
GPUTexture * DRW_texture_pool_query_2d(int w, int h, eGPUTextureFormat format, DrawEngineType *engine_type)
void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, GPUTexture *depth_src, int layer)
DrawEngineType draw_engine_eevee_type
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx GPU_R32F
struct GPUTexture * EEVEE_materials_get_util_tex(void)
void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_occlusion_draw_debug(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata)
void EEVEE_occlusion_free(void)
struct GPUTexture * dummy_horizon_tx
void EEVEE_occlusion_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
static struct @203 e_data
int EEVEE_occlusion_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_occlusion_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_occlusion_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_ambient_occlusion_debug_sh_get(void)
struct GPUShader * EEVEE_shaders_effect_ambient_occlusion_sh_get(void)
void GPU_framebuffer_viewport_reset(GPUFrameBuffer *gpu_fb)
void GPU_framebuffer_viewport_set(GPUFrameBuffer *gpu_fb, int x, int y, int width, int height)
static void clear(Message *msg)
struct Depsgraph * depsgraph
struct GPUTexture * depth
EEVEE_FramebufferList * fbl
struct GPUTexture * gtao_horizons_renderpass
struct GPUTexture * gtao_horizons
EEVEE_EffectsFlag enabled_effects
struct GPUTexture * gtao_horizons_debug
struct GPUTexture * ssr_normal_input
struct GPUFrameBuffer * main_fb
struct GPUFrameBuffer * gtao_fb
struct GPUFrameBuffer * ao_accum_fb
struct GPUFrameBuffer * gtao_debug_fb
struct DRWPass * ao_accum_ps
struct DRWPass * ao_horizon_search
struct DRWPass * ao_horizon_debug
eViewLayerEEVEEPassType render_passes
struct EEVEE_PrivateData * g_data
struct EEVEE_EffectsInfo * effects
struct GPUTexture * maxzbuffer
struct GPUTexture * ao_accum
struct EEVEE_CommonUniformBuffer common_data
struct GPUUniformBuf * combined
struct EEVEE_ViewLayerData::@210 renderpass_ubo
struct GPUUniformBuf * common_ubo