View Single Post
Old 16th February 2015, 14:56   #5  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,406
screenshots
When taking screenshots madVR re-renders the current video frame based on the settings in this tab.

create screenshots with a custom zoom factor: 100% view means the native video resolution viewed at 100%, only resizing to square pixels. Disabled captures the current video as displayed.
don't perform color & gamma processing, calibration etc: It is recommended to leave this enabled if you plan to share or view your screenshots on any other display.

trade quality for performance
[By default the top eight options, everything down to and including 'scale chroma separately, if it saves performance', are enabled]

optimize subtitle quality for performance instead of quality: This does not hurt subtitle quality very much for a reasonable performance gain.
use DXVA chroma upscaling when doing native DXVA decoding: DXVA chroma upscaling returns incorrect colors on some systems but it is fast. DX9 DXVA2 Native hardware decoding returns bad quality (blurred chroma) on Nvidia GPUs, which this option does not change.
use DXVA chroma upscaling when doing DXVA deinterlacing: DXVA chroma upscaling returns incorrect colors on some systems but it is fast.
store custom pixel shader results in 16bit buffer instead of 32bit: Does not seem to improve memory use or performance, at least on my Titan X (Pascal).
don't use linear light for dithering: Especially significant at lower output bit depths. Usually not visually significant at 8+ bits.
don't analyze gradient angles for debanding: More detail is lost for the amount of banding removed.
don't rerender frames when fade in/out is detected: Without this option debanding causes madVR to rerender five frames every time it detects a fade, but only when it is set to a higher strength for fades. This can cause dropped frames or presentation glitches on some systems.
scale chroma separately, if it saves performance: Scaling chroma separately is much faster when downscaling from large resolutions. It is probably lower visual quality but it is not obviously mathematically worse and it can be very important for watching 4K content on lower resolution displays with weaker GPUs.

The rest are probably not a good idea and can cause visual errors and/or offer little performance gain.

More Advanced Topics

On Screen Display
Toggle the On Screen Display by pressing Ctrl-J.

To avoid dropped frames and/or presentation glitches the sum of the average stats "deinterlace" (if present), "rendering", and "present" must be a bit below the frame time, Y, in the line "v-sync [X] ms, frame [Y] ms". For example, progressive 29.97 fps video has a new frame every 33.37 ms so "rendering"+"present" needs to be a few ms below 33.37 ms. However, 23.976 fps video only has a new frame every 41.71 ms so you can use more demanding settings with lower frame rate video. Exactly how far below the frame time is required for glitch free playback is dependent on the system but a few milliseconds is usually sufficient.

Profiles
Right click on a device in 'devices' or the 'processing', 'scaling algorithms', or 'rendering' settings folder to create a profile group. You can only add settings pages to a group when creating it. There can only be one profile in a profile group when deleting it. If madVR hits the end of a profile rule script without picking a profile it uses the top profile in the group.
configure profile rules

HDR Support
madVR supports the Windows API, introduced with the Windows 10 Creator's update, as well as Nvidia's and AMD's APIs to pass HDR meta data to a display. The display must report HDR support. Applications cannot use the Windows API to turn HDR mode on or off, instead content is converted by Windows when needed, at a lower quality than madVR is capable of. This means that AMD's or Nvidia's API is required for maximum quality when viewing both SDR and HDR content, without manually changing a Windows setting. The Windows setting should be off when using another API. HDR usually does not work with fullscreen exclusive mode. As of Nvidia driver version 390.65 madVR can use Nvidia's API for good HDR behavior in Windows 10 1709 (Fall Creators Update).
madshi's detailed description of HDR support in Windows 10.

Rotation Support
madVR will automatically rotate the video if rotation is specified in the video container, rotation can also be controlled manually.
The default keyboard shortcuts for rotation are:
Control + Shift + Alt + Right Arrow | Clockwise
Control + Shift + Alt + Left Arrow | Counterclockwise

IVTC and Deinterlacing
Shortcut keys to force auto deinterlacing, DXVA2 deinterlacing, or CPU based IVTC. Forcing a deinterlacing mode also forces deinterlacing to 'on' instead of 'auto'.
Control + Shift + Alt + D | Toggle Deinterlacing: [Auto], On, Off
Control + Shift + Alt + T | Toggle Mode: [Auto], DXVA2 Deinterlacing, madVR's CPU IVTC

madVR can decimate progressive streams
e.g. 720p60/720p50 broadcast with 24p/25p content. Press control+alt+shift+d to enable deinterlacing and press control+alt+shift+t to force decimation on. It has the same limitations as madVR's IVTC or film mode.

File Name Tags
madVR will look at the folder and file names for tokens or "magic words" that tell it to treat a particular file differently.
example: "D:\Movies\Broken PAL matrix=PAL\my broken rip from the 90s deband=high deint=Video.mkv"

Possible file name tags include:
frame rate: frameRate=24p, 24i, 24fps, 24Hz, etc. or refreshRate=
deinterlacing: deint=On|Off|Video|Film|IVTC
debanding: deband=off|low|medium|high
deringing: dering=on|off|half|full
profile: profile='profile name'
matrix: matrix=2020|709|601|NTSC|PAL|YCgCo|240M
primaries: primaries=2020|DCI|709|SmpteC|EBU|sRGB|NTSC|PAL|470M|240M|170M
levels: levels=PC|TV|fullrange|limited|doubleExp|tripleExp or range=
blacklevel: blacklevel=-50 to +50
whitelevel: whitelevel=-50 to +50
contrast: contrast=-100 to +100
brightness: brightness=-100 to +100
saturation: saturation=-100 to +100
hue: hue=-180 to +180
chroma deblocking: deblockChroma or denoiseChroma
black bars: detectBlackBars=on|off" or "blackBarDetection=on|off"
hdr: hdr=on|off or transfer=hdr|sdr|2084|709

Hidden Options
An empty folder or file in the madVR program directory with a specific name will trigger a hidden option, these are options you probably do not want to use.

BilinearSuperRes: Use a lower quality, but faster, mode for SuperRes.
DisableHdrBrightnessTweak: Disables raising the brightness of shadows which normally occurs when 'this display's peak luminance capability' is set to 120 or 180 nits.
DontRenderAfterStop: Stops madVR from rendering for 7 seconds after playback is stopped or paused. It may stop black screen flashing during seeks and play rate changes with specific players.
force full range input: Forces madVR to treat all input as full range.
KeepLastFrameOnStop: Prevents a black screen when stopping playback.
ShowBlackBars: Draws a green rectangle around the active video area, as detected by zoom control.
ShowRenderSteps: Displays every shader pass in the OSD with the rendering time for each one. Will slow down the overall rendering time due to needing to flush the GPU and wait for the rendering to succeed after every shader pass. Depending on the number of steps and the GPU this effect can be significant or relatively minor. Only active when the OSD is being displayed.
YCbCr: Outputs YCbCr data instead of RGB, as if it was RGB.
ShowHdrMode

Known Limitations or Complications

-madVR does not like f.lux, some GPU monitoring, or other similar programs.
-DXVA2 Native DX9 hardware decoding returns bad quality (blurred chroma) on Nvidia GPUs. The DX11 hardware decoding API (D3D11VA) that is used when LAV Video is set to D3D11 Automatic (so native decoding is used), and madVR is set to use Direct3D 11, avoids these problems. So do all copy-back hardware or software decoding methods.
-All Native hardware decoding methods result in some functional ramifications. It is impossible to use force film (IVTC) and the detection of black bars does not work. madVR can still shift the entire video (including any hard coded black bars) to the top or the bottom of the screen, as well as crop pixels off all sides, but it cannot detect black bars. Again, copy-back hardware or software decoding avoids these problems.
-SLI reduces performance when enabled, even if it is not enabled for madVR or the video player.
-When using a 3DLUT madVR can generate out of gamut values to display WtW information unless using 'enable windowed overlay', in which case WtW information is clipped.
-Windowed Overlay mode won't linear out the Windows calibration when loading a 3DLUT with a linear calibration attached, it will simply stop emulating the calibration loaded in Windows. This way Windows can remain calibrated while madVR uses a 3DLUT with a linear calibration attached.
-madVR's IVTC can detect a lot of cadences but can "only" handle some of them correctly. For example the rare cadence 3:2:3:2:2 (25 fps in 30i 60 fields) does not work well.
-when using display mode changing madVR always switches to 23Hz, if available, when having forced film mode on while playing 59i content. This is often optimal, but not always. So, with no good way to know what would be best in advance, madVR goes with 23Hz.
-madVR's 3D support is currently limited to 1080p23.

Example rendering path


settings.bin
madVR's settings can be backed up or shared via a settings.bin file. My settings are optimized for the Nvidia 2080 Ti, Windows 10, and on my LG CX 48" 4K OLED TV with profiles for SD, 720, 1080, UHD, and above. 3D is disabled. I use Zoom Player Max for the video player. Note that "low" still requires a decent GPU (~1050 Ti).

To use simply restore madVR to default settings and place the file in the madVR program directory. madVR will automatically create or update the file with new settings if it has write access to its directory (e.g. not in "program files"). madVR will still use the registry to store these settings, along with any changes, without write access.

For madVR v0.92.17 or later:
Max Quality settings.bin
Low Power settings.bin

Feedback is appreciated, especially for the low power settings.

Last edited by Asmodian; 15th July 2020 at 03:31.
Asmodian is offline   Reply With Quote