Yes, that sounds likely.
Diagnostics:
- See if the left and right edges line up. Draw a rect at say (10, 10)-(20, 20) and another at (20, 13)-(30, 17). Does it overlap? Is there a gap? Do the same for vertical alignments, and around screen edges.
- See if the number of pixels remaining (on the bottom row) is the one-off difference to the width. That is, a 10x10 rect needs 100 pixels, but drawn at 11 width, 100 pixels only fills 9 rows, coming up exactly one pixel short on the 8th row. Or at 9 width, one pixel more than 11 rows (just beginning a 12th). Note that if overdraw goes into vertical overflow, it probably wraps to the start.
I haven't looked at ILI9341 exactly, but I've done a ILI9325 before, and actually have a ST7735 in front of me. The latter are... moderately similar, IIRC? Anyway, the ST does boundary-inclusive, so for example my drawFillRectangle() has a
setScreenRegion(xStart, yStart, xStart + width - 1, yStart + height - 1);
in it. (Or use x1, y1, x2, y2 instead of width, height if you like.)
Tim