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:
authorClément Foucault <foucault.clem@gmail.com>2022-07-24 11:33:41 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-07-24 20:24:50 +0300
commitbd9bb56f181de64779539db833217cb6a04d855b (patch)
treedf0cc1361c1ffda5aa752c8374ad17d26a81f809 /source/blender/draw/engines/eevee_next/eevee_film.cc
parent364babab652bf80d6beea419a74242611a4e2393 (diff)
EEVEE-Next: Fix Alt+B render borders
A few offsets were missing. Reminder that this does not change the actual render resolution but it reduces the VRAM consumption of accumulation buffers.
Diffstat (limited to 'source/blender/draw/engines/eevee_next/eevee_film.cc')
-rw-r--r--source/blender/draw/engines/eevee_next/eevee_film.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee_next/eevee_film.cc b/source/blender/draw/engines/eevee_next/eevee_film.cc
index b8408e55cb3..ae84ea249b7 100644
--- a/source/blender/draw/engines/eevee_next/eevee_film.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_film.cc
@@ -311,7 +311,7 @@ void Film::init(const int2 &extent, const rcti *output_rect)
{
/* TODO(@fclem): Over-scans. */
- render_extent_ = math::divide_ceil(extent, int2(data_.scaling_factor));
+ data_.render_extent = math::divide_ceil(extent, int2(data_.scaling_factor));
int2 weight_extent = inst_.camera.is_panoramic() ? data_.extent : int2(data_.scaling_factor);
eGPUTextureFormat color_format = GPU_RGBA16F;
@@ -536,7 +536,13 @@ void Film::accumulate(const DRWView *view)
{
if (inst_.is_viewport()) {
DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get();
+ DefaultTextureList *dtxl = DRW_viewport_texture_list_get();
GPU_framebuffer_bind(dfbl->default_fb);
+ /* Clear when using render borders. */
+ if (data_.extent != int2(GPU_texture_width(dtxl->color), GPU_texture_height(dtxl->color))) {
+ float4 clear_color = {0.0f, 0.0f, 0.0f, 0.0f};
+ GPU_framebuffer_clear_color(dfbl->default_fb, clear_color);
+ }
GPU_framebuffer_viewport_set(dfbl->default_fb, UNPACK2(data_.offset), UNPACK2(data_.extent));
}