#H.264 green corruption and smearing

129 messages · Page 1 of 1 (latest)

vivid oracle
#

Platform: Arch Linux
Headset: Occurs on both Quest 2 and 3
Installation Method: From Source, occurs on latest as well as last stable release.
GPU: AMD Radeon RX 7800 XT

After a random amount of time, the feed flashes green and starts smearing, it temporarily goes away after moving around for a bit.

Nothing is logged when this corruption occurs

#

HEVC has a different problem, at higher bitrates (100 mbps +) the feed will start flickering between extremely low bitrates and extremely high bitrates.

#

i see

#

still happens even when set to constant?

#

ill try those exact settings

#

still does it

#

i dont even think that is physically possible

#

its inconsistent but it happens when the thing i am looking at has some level of noise on the texture, like carpets, turf

#

everything in pavlov

#

fair

#

i have a recording if that would help better

#

tried two,

Xfinity XB8, streamer hard wired, client on 6 ghz

TP-LInk AX1800, streamer hard wired, client on 5 ghz

#

overall its fine

#

h.264 works great at 400 mbps

#

except those rare times where everything turns either green or grey

#

quest hard crashed thumbup

#

vce usage stays at 44% with HEVC 10 bit at 220 mbps

#

63% with h.264 at 350 mbps

vivid oracle
#

h.264 smearing - fixed in latest commit
hevc "heartbeat" - setting priority to 2 in mediacodec extra options fixes it

this thread is now resolved

vivid oracle
#

a very painful amount of trial and error

#

it does still sometimes struggle on very noisy textures but only really above 200 mbps

#

in normal use i havent experienced any issues and have even been able to play 120 hz quest 3 native res 200 mbps 10-bit hevc with no issue

#

though ive seen a few people talking about other headsets not being able to handle priorities above 0

#

i.e. #linux-discussion message

vivid oracle
#

This is the only info I can find on it, I guess emphasis on performance not guaranteed depending on the decoder

#

Nowrep probably knows

#

0-2 only work, above 2 crashes alvr, 2 might either be an even lower priority or an alias to 1

#

Or the XR2 is weird

#

True

#

Probably placebo

#

But 1 was a definite change over 0

chilly notch
#

not the the same person as the developer of VD :)

#

also the two options are already included

#

also the "heartbeat" isn't a thing of the encoder?

#

i guess it needs more testing. you can test too :)

vivid oracle
#

what I would describe as the heartbeat is the decoder becoming saturated and the bitrate pulsing like a heart beat

rotund kiln
#

testing needed

#

sounds like something for me

vivid oracle
#

confirmed 2v1 is a placebo, priority set to 1 is the only value that needs to be tested

rotund kiln
#

so operating rate is placebo is that what you mean?

vivid oracle
#

no the priority being in a range from 0-2

#

though operating rate hasnt made any difference either in my testing

rotund kiln
#

so priority is just placebo

vivid oracle
#

priority 2 is

rotund kiln
#

so 1 does make a change?

vivid oracle
#

priority 1 over the default of 0 prevents the heartbeat bitrate effect

rotund kiln
#

hmm ok

vivid oracle
#

0 causes that effect to appear at just above 100 mbps

#

1 allows 200 mbps but i havent tested above that

#

decoding latency of 12 on priority 1 vs 16-30 in worst case when set to 0

rotund kiln
#

so what does the change look like?

vivid oracle
#

ill take a video of 200 mbps at priority 1 vs 200 mbps at priority 0

rotund kiln
#

thanks

vivid oracle
#

its just the abscence of pulsing

rotund kiln
#

also maybe open obs and record the alvr dashboard window

vivid oracle
#

i still am able to make it freak out at priority 1 but its much harder

#

spinning in a circle at a noise texture

rotund kiln
#

try that but with 2

vivid oracle
#

2 and 1 deliver same effect

rotund kiln
#

ah so you've already tried that test

vivid oracle
#

vs priority 0 by just merely looking at the texture

rotund kiln
#

I find this kinda funny considering that we're the only thing that should be using the decoder

#

ok just submit a pr whenever ready

vivid oracle
#

that didnt work as i wanted it to

rotund kiln
#

wdym

vivid oracle
#

video didnt embed

rotund kiln
#

hevc doesn't embed with discord

vivid oracle
#

i remember it working before

rotund kiln
#

patent issues lol

#

nope never worked

vivid oracle
#

youtube is going to completely fuck up the compression but you should still be able to see the difference

rotund kiln
#

yea just do the video files

vivid oracle
#

yea youtube completely destroys the bitrate

rotund kiln
#

having youtube compression isn't going to make it useful

vivid oracle
#

does not like the turf either

#

uploading the raw video

#

will be 3 minutes

rotund kiln
#

anyway like I said make a pr I think you've supplied enough info

vivid oracle
rotund kiln
vivid oracle
#

300 mbps is the limit on prio 1 before the decoder starts getting saturated again

#

on h264 it pushes into 500 mbps and looks perfectly fine

rotund kiln
#

hmm I see

vivid oracle
#

with remarkably low latency, 12ms

rotund kiln
#

so tuning is needed to get the algorithm not to kill h265

vivid oracle
#

and potentially av1 i havent tried it yet

#

ive been having issues getting alvr to respect my bitrate for av1 as it was always capped at 100

#

heavily reduces latency on av1 but doesnt fix the capped bitrate

#

although that definitely seems to be an AMD VCE issue as adaptive says it can only hit 100mbps

rotund kiln
#

honestly I can't believe we missed that

rotund kiln
#

I'm going to be testing the quest two

#

huh this makes no sense how is giving it not realtime priority perferred?

#

and the reason why 2 did nothing is because it simply isn't used

vivid oracle
rotund kiln
#

when realtime isn't realtime froge_bleak

vivid oracle
#

im curious what happens if i dont even include priority

#

if it just does best-effort by default

#

yea it just defaults to best-effort im going to update my pr

rotund kiln
#

no

#

leave the choice in @vivid oracle

vivid oracle
#

someone did have issues with it set to best-effort

#

i think on the pico 4

#

though the pico 4 still uses the xr2 and theoretically similar android

rotund kiln
#

yea on q2 I'm not convinced

vivid oracle
#

What happens on q2?

rotund kiln
#

nothing

#

any change it makes is not noticeable

vivid oracle
#

That’s very strange

#

Was it already working fine with prio 0 on your setup?

soft birch
#

Or Linux

vivid oracle
#

I thought that’s what this did

#

10-bit isn’t supported on av1 or h264

soft birch
#

Ohhhhhh

#

Misread it!!

#

It said "Not supported on Linux WITH NVIDIA"

#

I somehow misremembered it as "Only works on Windows with NVIDIA" or something like that

#

My baddddd

chilly notch
#

oh btw, there is also the option "low-latency" = 1 that might be useful. this is supported now on quest 2 and above that are on android 12

rotund kiln
#

hmm yea that should probably be added in the pr

#

I'm not sure if its worth keeping the priority change

#

@vivid oracle ^