Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_view.cc')
-rw-r--r--source/blender/draw/engines/eevee/eevee_view.cc33
1 files changed, 14 insertions, 19 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_view.cc b/source/blender/draw/engines/eevee/eevee_view.cc
index 8a96d01ac63..7bc250ba286 100644
--- a/source/blender/draw/engines/eevee/eevee_view.cc
+++ b/source/blender/draw/engines/eevee/eevee_view.cc
@@ -81,6 +81,9 @@ void ShadingView::sync(int2 render_extent_)
velocity_.sync(extent_);
rt_buffer_opaque_.sync(extent_);
rt_buffer_refract_.sync(extent_);
+ inst_.hiz_back.view_sync(extent_);
+ inst_.hiz_front.view_sync(extent_);
+ inst_.gbuffer.view_sync(extent_);
{
/* Query temp textures and create framebuffers. */
@@ -94,8 +97,6 @@ void ShadingView::sync(int2 render_extent_)
postfx_tx_ = DRW_texture_pool_query_2d(UNPACK2(extent_), GPU_RGBA16F, owner);
view_fb_.ensure(GPU_ATTACHMENT_TEXTURE(depth_tx_), GPU_ATTACHMENT_TEXTURE(combined_tx_));
-
- gbuffer_.sync(depth_tx_, combined_tx_, owner);
}
}
@@ -119,22 +120,17 @@ void ShadingView::render(void)
inst_.shading_passes.background.render();
}
- inst_.shading_passes.deferred.render(render_view_,
- gbuffer_,
- hiz_front_,
- hiz_back_,
- rt_buffer_opaque_,
- rt_buffer_refract_,
- view_fb_);
+ inst_.shading_passes.deferred.render(
+ render_view_, rt_buffer_opaque_, rt_buffer_refract_, depth_tx_, combined_tx_);
inst_.lightprobes.draw_cache_display();
inst_.lookdev.render_overlay(view_fb_);
- inst_.shading_passes.forward.render(render_view_, gbuffer_, hiz_front_, view_fb_);
+ inst_.shading_passes.forward.render(render_view_, depth_tx_, combined_tx_);
- inst_.lights.debug_draw(view_fb_, hiz_front_);
- inst_.shadows.debug_draw(view_fb_, hiz_front_);
+ inst_.lights.debug_draw(view_fb_);
+ inst_.shadows.debug_draw(view_fb_);
velocity_.render(depth_tx_);
@@ -209,16 +205,15 @@ void LightProbeView::sync(Texture &color_tx,
if (!is_only_background_) {
/* Query temp textures and create framebuffers. */
- /* HACK: View name should be unique and static.
- * With this, we can reuse the same texture across views. */
- DrawEngineType *owner = (DrawEngineType *)name_;
- gbuffer_.sync(depth_tx, color_tx, owner, layer_);
rt_buffer_opaque_.sync(extent_);
rt_buffer_refract_.sync(extent_);
+ inst_.hiz_back.view_sync(extent_);
+ inst_.hiz_front.view_sync(extent_);
+ inst_.gbuffer.view_sync(extent_);
}
}
-void LightProbeView::render(void)
+void LightProbeView::render(GPUTexture *depth_tx)
{
if (!is_only_background_) {
inst_.lightprobes.set_view(view_, extent_);
@@ -236,8 +231,8 @@ void LightProbeView::render(void)
GPU_framebuffer_clear_depth(view_fb_, 1.0f);
inst_.shading_passes.deferred.render(
- view_, gbuffer_, hiz_front_, hiz_back_, rt_buffer_opaque_, rt_buffer_refract_, view_fb_);
- inst_.shading_passes.forward.render(view_, gbuffer_, hiz_front_, view_fb_);
+ view_, rt_buffer_opaque_, rt_buffer_refract_, depth_tx, nullptr);
+ inst_.shading_passes.forward.render(view_, depth_tx, nullptr);
}
DRW_stats_group_end();
}