0Optimal LAV and mad-vr settings for a high end GPU at 1080p

I have spent a lot of time exper­i­ment­ing with mad-vr and lav try­ing to find the optim­al set­tings for my GTX 1050Ti which out­puts to a 1080p pro­ject­or. Set­tings for high­er res­ol­u­tion dis­plays will be very dif­fer­ent, but as 4k pro­ject­ors are cur­rently so expens­ive, for a truly “home cinema” exper­i­ence 1080p is the lim­it for most people.

The first thing to do in mad­vr is to set up pro­files for dif­fer­ent res­ol­u­tion videos — 1080p videos will require far less work than much lower or high­er res­ol­u­tions, eg. 360p (needs a lot of work to upscale well) or 4320p (takes a lot of decod­ing). I also have 2 dif­fer­ent low-res­ol­u­tion pro­files, one of which gets filtered by file exten­sion so I can use dif­fer­ent set­tings for par­tic­u­larly low qual­ity old divx videos.

Next, spend some time read­ing an up-to-date art­icle about all the set­tings. Many guides get out of date as the avail­able set­tings change so make sure the inform­a­tion is up-to-date.

Some use­ful inform­a­tion on which decod­ing mode to use in LAV is avail­able. I recom­mend DXVA2 Nat­ive (not copyback)

Fun­da­ment­ally, mad­vr is pro­cessing lots of frames per second. So it can­’t spend very long on each frame to main­tain smooth play­back. Render times over 40ms will almost cer­tainly res­ult in dropped frames. The frame rate of the con­tent will also mat­ter: 60fps is much harder work than 24fps. You may want to have dif­fer­ent pro­files for dif­fer­ent frame-rate content.

Frame rateMax­im­um render time
60fps16ms
50fps / 48fps20ms
30fps33ms
25fps / 24fps40ms

In terms of sizes, I group them as there are a lot of dif­fer­ent poten­tial sizes. Very little con­tent is in 4:3 ratio, so in most cases the con­tent will be either 16:9 or will be letterboxed

SD con­tent is usu­ally 360p, 480p or 576p. As 360p is so rare I focus on 480p con­tent for SD as set­tings suit­able for 480p60 will cope with 576p as well. I then have cat­egor­ies for 720p, 1080p, 2160p and 4320p.
How­ever, I recom­mend using the width of the con­tent, rather than the height in pro­cessing rules. The widest format you are likely to encounter is UltraPanavision70 which is 2.76:1. Using this aspect ratio would see 720p con­tent have an actu­al res­ol­u­tion of 1280×464. Many videos in these wider formats have had the let­ter­box­ing cut off, and the prob­lem of defin­ing sizes begins…

There are formats below 360p but you are very unlikely to have any watch­able videos in those formats.

Formattyp­ic­al heighttyp­ic­al width
360p360640
480p480640–854
576p576704–720
720p534–720960‑1280
1080p Full HD800‑10801440–1920
4k 2160p UHD1600–21602880–4096
8k 4320p SUHD3200–43205760–8192

So, to be com­pre­hens­ive we need rules for both width and height of the video. Any video with a height great­er than 2160 or a width great­er than 4096 will have to be regarded as great­er than 4k, so we’ll treat it as 8k, and so on

Formatmin­im­um height+1min­im­um width+1
4320p21604096
2160p10802048
1080p7201280
720p576720
SD00

So, the fol­low­ing set of rules would do the job to group by both res­ol­u­tion and to split into 4 fram­er­ate groups (59–60fps; 47–50fps; 29–30fps; 23–25fps)

You may well wish to use a smal­ler num­ber of group­ings as it is likely you will get a lot of over­lap in set­tings with some of these set­tings. I find that I only need to split by fram­er­ate for the lower resolutions.

if (deintFps > 50) and ((srcWidth  4096) or (srcHeight  2160)) "4320p60"
else if (deintFps >= 47) and ((srcWidth  4096) or (srcHeight  2160)) "4320p50"
else if (deintFps >= 29) and ((srcWidth  4096) or (srcHeight  2160)) "4320p30"
else if (deintFps  29) and ((srcWidth  4096) or (srcHeight  2160)) "4320p25"

I will con­tin­ue to tinker and optim­ise my own set­tings, and whenev­er I have found improve­ments I will update them below.

My set­tings are as follows

SD-lowQ

processing

scaling

rendering

SD

processing

scaling

rendering

720p

processing

scaling

rendering

1080p

processing

scaling

rendering

4k

processing

scaling

rendering

8k

processing

scaling

rendering

Leave a Reply