@g3gg0 already explained sometimes that shutter speed is not precise in canon cameras and that we can't achieve perfect 180 degree like in a cinema camera.
Its precision is somewhere around 1/50000 (5D3) and 1/60000 (EOS M); exact value is Main Clock / FPS timer A. This is the step size with which you can adjust the exposure time, so I highly doubt you can perceive such difference, so it must be something else.
Side note: minimum exposure time is 2 units on DIGIC 5 and 1 unit on DIGIC 4, and maximum is very close to 1/fps.
But the Timer A and B adjustment of FPS and fine shutter adjustment could solve this tearing? The sensor is exposed line-by-line and not all pixels at once?
Timing is done in hardware, by the (undocumented) ADTG chip; there's no way for the main CPU to affect it in a meaningful way, other than some minor jitter when starting the exposure for each frame. After the exposure is started by the CPU, the sensor is, indeed, exposed line-by-line, and the time difference between the lines is exactly 1 step (as computed above, and displayed in the FPS override menu).
The LiveView (Evf) task uses a very high priority, and it's driven by a precisely-timed interrupt, so even if your CPU gets stuck doing intensive stuff in some regular DryOS task, you aren't going to impact the image acquisition moment (where the CPU has some stuff to do) by more than a few ms. You can't alter the intra-frame timings, even if you change the settings (such as FPS timers) in the middle of a frame; they only take effect at the next frame. Yes, I've tried that a few times. Canon themselves configure the next frame in advance - as seen e.g. in
this graph at 720p60, but can be reproduced at any other frame rate by reducing the HEAD4 timer.
Tearing can be caused by incorrect EDMAC settings, or by starting to process an image buffer while it's being written by some other "task" (for example, if the image capture and image compressing transfers "meet" somewhere in the middle of a frame). If it actually happens, show me a way to
reproduce the issue. Also see if it happens with any build from the download page.
As I'm quite bad at pixel peeping, whenever you report image quality issues, please post a link to some still frames (from the videos you have watched, or whatever) to highlight the defects. The issue has to be visible by clicking on that link and looking at the paused video. Sorry, I'm not going to watch entire videos attempting to guess what you might have seen. If it's not obvious on one single frame, upload set of 3-4 frames, and highlight or describe where one should look at.
Going even further, could this Tessive idea be replicated by exposing pixels in a 'sine' curve instead of square curve? Or this voltage control is too low-level for ML to have access to?
The Tessive idea can not be replicated in software, but I've been toying with the idea of modifying one of the software-controlled variable ND filters for this purpose. If the LCD shutter used by that filter is fast enough, it might even work for approximating a global shutter.
The Aputure DEC Vari-ND appears to have the hardware component I'm looking for (a fast LCD shutter), but I could not find one for the EF or EF-M mount. If you already know where to get a fast high-contrast LCD shutter, ideally already in some kind of lens adapter, please let me know.