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;