It's silly to draw to the whole double-sized render target, but discard
half the pixels.
Also centralizes the constant setup, get rid of the duplication.
GS: fixed compile error in Metal interlace shader
GS fixed more compile errors in Metal interlace shader
GS: Adjusted code indentation in interlace shader for all renderers
implemented FastMAD motion-adaptive deinterlacing for OpenGL renderer, other renderers will crash. FastMAD is replacing blend (either mode) so select blend to activate MAD under the hood
fixed an assert and assessed that one MUST select mode Blend bottom field first to enable MAD
removed forced mode 2, added separate motion thresholds for current field and alternate field motion and optimized MAD for Top-FIeld-First mode
committing kind-of broken status for review
the algorithm works well on most games, but somehow Kingdom Hearts works at half resolution
completely fixed weird artifacts on MAD, I only need to fix a 1-line offset that is causing the top of the screen to flicker
fixed flicker on first line, I still need to fine-tune some coefficients
solved all nastiness by realizing that MAD MUST work on an even resolution, so odd resolutions are rounded up. Now all games I tried look great
made MAD sensitivity adjustable inside GDDevice.h and passed to shaders as a parameters. For this purpose ZrH is now a vec4 to hold more parameters conveniently
ported MAD to DX11 and DX12
removed rounding of texture size to closest multiple of 2 and fized odd number of lines inside the shaders by also passing the vertical resolution as a parameter
improved compatibility of upper buffer offset adjustment for odd resolutions
added Vulkan support