diff --git a/src/search.cpp b/src/search.cpp index 1d841023..99c2b09f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1185,7 +1185,8 @@ moves_loop: // When in check, search starts from here || ss->staticEval + PieceValue[EG][pos.captured_piece()] <= alpha || cutNode || (!PvNode && !formerPv && captureHistory[movedPiece][to_sq(move)][type_of(pos.captured_piece())] < 3678) - || thisThread->ttHitAverage < 432 * TtHitAverageResolution * TtHitAverageWindow / 1024)) + || thisThread->ttHitAverage < 432 * TtHitAverageResolution * TtHitAverageWindow / 1024) + && (!PvNode || ss->ply > 1 || thisThread->id() % 4 != 3)) { Depth r = reduction(improving, depth, moveCount); diff --git a/src/thread.h b/src/thread.h index 2b3dea0d..4cf5dabb 100644 --- a/src/thread.h +++ b/src/thread.h @@ -55,6 +55,7 @@ public: void idle_loop(); void start_searching(); void wait_for_search_finished(); + int id() const { return idx; } Pawns::Table pawnsTable; Material::Table materialTable;