From e7e9d1a94206dd8ee0edcebdc6bebffc46e2301f Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Wed, 22 Nov 2017 19:02:25 +0100 Subject: [PATCH] - Fixed bug introduced by removing a little bit too much from the rect drawers --- src/polyrenderer/drawers/poly_drawer32.h | 6 ++++++ src/polyrenderer/drawers/poly_drawer32_sse2.h | 6 ++++++ src/polyrenderer/drawers/poly_drawer8.h | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/src/polyrenderer/drawers/poly_drawer32.h b/src/polyrenderer/drawers/poly_drawer32.h index f3d05ae749..1acb3de1b6 100644 --- a/src/polyrenderer/drawers/poly_drawer32.h +++ b/src/polyrenderer/drawers/poly_drawer32.h @@ -885,6 +885,12 @@ private: uint32_t posV = startV; for (int y = y0; y < y1; y++, posV += stepV) { + int coreBlock = y / 8; + if (coreBlock % thread->num_cores != thread->core) + { + continue; + } + uint32_t *dest = ((uint32_t*)destOrg) + y * destPitch + x0; uint32_t posU = startU; diff --git a/src/polyrenderer/drawers/poly_drawer32_sse2.h b/src/polyrenderer/drawers/poly_drawer32_sse2.h index 01c6144343..3826d063d3 100644 --- a/src/polyrenderer/drawers/poly_drawer32_sse2.h +++ b/src/polyrenderer/drawers/poly_drawer32_sse2.h @@ -901,6 +901,12 @@ private: uint32_t posV = startV; for (int y = y0; y < y1; y++, posV += stepV) { + int coreBlock = y / 8; + if (coreBlock % thread->num_cores != thread->core) + { + continue; + } + uint32_t *dest = ((uint32_t*)destOrg) + y * destPitch + x0; uint32_t posU = startU; diff --git a/src/polyrenderer/drawers/poly_drawer8.h b/src/polyrenderer/drawers/poly_drawer8.h index d5ec5bade2..fb71691866 100644 --- a/src/polyrenderer/drawers/poly_drawer8.h +++ b/src/polyrenderer/drawers/poly_drawer8.h @@ -470,6 +470,12 @@ public: uint32_t posV = startV; for (int y = y0; y < y1; y++, posV += stepV) { + int coreBlock = y / 8; + if (coreBlock % thread->num_cores != thread->core) + { + continue; + } + uint8_t *dest = ((uint8_t*)destOrg) + y * destPitch + x0; uint32_t posU = startU;