From 35ed654911958a7ec93dc837f94a18bdef11e384 Mon Sep 17 00:00:00 2001 From: lawnjelly Date: Tue, 9 Feb 2021 09:03:50 +0000 Subject: [PATCH] Batching - prevent reordering items over a copybackbuffer Reordering an item from after a copybackbuffer to before would result in the wrong thing being rendered into the backbuffer. This PR puts in a check to prevent reordering over such a boundary. --- drivers/gles_common/rasterizer_canvas_batcher.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gles_common/rasterizer_canvas_batcher.h b/drivers/gles_common/rasterizer_canvas_batcher.h index 69225df3a41..1b51c9daf26 100644 --- a/drivers/gles_common/rasterizer_canvas_batcher.h +++ b/drivers/gles_common/rasterizer_canvas_batcher.h @@ -2716,6 +2716,11 @@ PREAMBLE(bool)::sort_items_from(int p_start) { return false; } + // disallow sorting over copy back buffer + if (second.item->copy_back_buffer) { + return false; + } + // which neighbour to test int test_last = 2 + bdata.settings_item_reordering_lookahead; for (int test = 2; test < test_last; test++) {