diff options
4 files changed, 12 insertions, 12 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_antialiasing.c b/source/blender/draw/engines/overlay/overlay_antialiasing.c index efd2f6588ba..a32242d6292 100644 --- a/source/blender/draw/engines/overlay/overlay_antialiasing.c +++ b/source/blender/draw/engines/overlay/overlay_antialiasing.c @@ -193,12 +193,6 @@ void OVERLAY_antialiasing_cache_finish(OVERLAY_Data *vedata) pd->antialiasing.do_depth_infront_copy; if (pd->xray_enabled || do_wireframe) { DRW_texture_ensure_fullscreen_2d(&txl->temp_depth_tx, GPU_DEPTH24_STENCIL8, 0); - - GPU_framebuffer_ensure_config(&fbl->overlay_xray_depth_copy_fb, - { - GPU_ATTACHMENT_TEXTURE(txl->temp_depth_tx), - GPU_ATTACHMENT_NONE, - }); } } @@ -224,12 +218,13 @@ void OVERLAY_antialiasing_start(OVERLAY_Data *vedata) void OVERLAY_xray_depth_copy(OVERLAY_Data *vedata) { OVERLAY_FramebufferList *fbl = vedata->fbl; + OVERLAY_TextureList *txl = vedata->txl; OVERLAY_PrivateData *pd = vedata->stl->pd; if (DRW_state_is_fbo() && pd->antialiasing.do_depth_copy) { + DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); /* We copy the depth of the rendered geometry to be able to compare to the overlays depth. */ - GPU_framebuffer_blit( - fbl->overlay_default_fb, 0, fbl->overlay_xray_depth_copy_fb, 0, GPU_DEPTH_BIT); + GPU_texture_copy(txl->temp_depth_tx, dtxl->depth); } if (DRW_state_is_fbo() && pd->xray_enabled) { @@ -241,13 +236,13 @@ void OVERLAY_xray_depth_copy(OVERLAY_Data *vedata) void OVERLAY_xray_depth_infront_copy(OVERLAY_Data *vedata) { - OVERLAY_FramebufferList *fbl = vedata->fbl; + OVERLAY_TextureList *txl = vedata->txl; OVERLAY_PrivateData *pd = vedata->stl->pd; if (DRW_state_is_fbo() && pd->antialiasing.do_depth_infront_copy) { + DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); /* We copy the depth of the rendered geometry to be able to compare to the overlays depth. */ - GPU_framebuffer_blit( - fbl->overlay_in_front_fb, 0, fbl->overlay_xray_depth_copy_fb, 0, GPU_DEPTH_BIT); + GPU_texture_copy(txl->temp_depth_tx, dtxl->depth_in_front); } } diff --git a/source/blender/draw/engines/overlay/overlay_private.h b/source/blender/draw/engines/overlay/overlay_private.h index 995c9aa6b3d..0c29fe9d2e4 100644 --- a/source/blender/draw/engines/overlay/overlay_private.h +++ b/source/blender/draw/engines/overlay/overlay_private.h @@ -35,7 +35,6 @@ typedef struct OVERLAY_FramebufferList { struct GPUFrameBuffer *overlay_color_only_fb; struct GPUFrameBuffer *overlay_in_front_fb; struct GPUFrameBuffer *overlay_line_in_front_fb; - struct GPUFrameBuffer *overlay_xray_depth_copy_fb; struct GPUFrameBuffer *outlines_prepass_fb; struct GPUFrameBuffer *outlines_resolve_fb; } OVERLAY_FramebufferList; diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index fc71b8b2af1..639c62e5e44 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1507,6 +1507,8 @@ void DRW_draw_render_loop_ex(struct Depsgraph *depsgraph, /* Fix 3D view being "laggy" on macos and win+nvidia. (See T56996, T61474) */ GPU_flush(); + DRW_stats_reset(); + DRW_draw_callbacks_post_scene(); if (WM_draw_region_get_bound_viewport(region)) { diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index e3df94f054f..cb3984aa9ad 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -3869,6 +3869,10 @@ static int region_quadview_exec(bContext *C, wmOperator *op) rv3d->viewlock_quad = RV3D_VIEWLOCK_INIT; rv3d->viewlock = 0; + /* FIXME: This fixes missing update to workbench TAA. (see T76216) + * However, it would be nice if the tagging should be done in a more conventional way. */ + rv3d->rflag |= RV3D_GPULIGHT_UPDATE; + /* Accumulate locks, in case they're mixed. */ for (region_iter = area->regionbase.first; region_iter; region_iter = region_iter->next) { if (region_iter->regiontype == RGN_TYPE_WINDOW) { |