Pcsx2: [Feature Request] add yadif2x or dxva2 deinterlacer

Created on 3 Nov 2018  路  12Comments  路  Source: PCSX2/pcsx2

its better than blend, bob and weave.

Enhancement / Feature Request

Most helpful comment

You won't get far with that attitude and trash talk. You are here REQUESTING something, while providing no help whatsoever how what you request could be implemented or without any coding knowledge of how this could work on PCSX2. So stop the smart talk and start being helpful, or we can just ignore you and be done with it.

All 12 comments

De-interlacing for film is (and cannot) be the same of real-time software.
I'd be surprised if somebody hadn't already come up with a "smarter" algorithm that somehow someway is better than the rude ones we use. But without actual other ideas here, I'd say this is duplicate of #1458

i've played ps2 on hdtv all the time and its not that laggy, dxva2 is gpu accelerated, so it should not cost much.

TVs aren't using yadif either for the records.
And dxva2, by its strictest design, only guarantees you.. bob.

On the other hand, I guess like hooking into whatever custom deinterlacing algorithm driver might be offering (or leaving this kind of work up to the display circuitry itself) wouldn't be bad at all.

I'm not sure if that could easily play out with ps2 mad usage of buffers though. Guess like that could be the new title of this feature request..

At least allowing "passing through" of interlacing should be trivial instead, potentially falling back in what I was asking for #2059.

tvs are not emulating ps2 games too, for the record.
and no gpu capable running pcsx2 games doing bob deinterlace by default.
yadif and HW GPU deinterlacing already got their own algorithm finalized so don't you worry about that.
since the age of pc dvd playback, GPUs got their own dedicated video processor, which oflloads decoding deinterlacing, scaling and post processing.
if it's too scary to implement, just make it optional. so it can be bypassed when not activated.
why are you giving me these retrograde links and docs, have some real life modern experience.

why ever commented on the issue you have no knowledge and the skill to do it.

don't reply if it's not about the issue.

To be honest you're coming off as a bit entitled.

There's no minimum amount of experience or qualifications required to contribute to an open-source project here, nor are we in a rush.

People aren't always right, but that doesn't mean you should criticize them for trying to propose ideas if they're wrong. What @mirh posted above is still relevant to the issue here.

it's as relevant to anything pcsx2

You won't get far with that attitude and trash talk. You are here REQUESTING something, while providing no help whatsoever how what you request could be implemented or without any coding knowledge of how this could work on PCSX2. So stop the smart talk and start being helpful, or we can just ignore you and be done with it.

I doubt its possible to use dxva2 deinterlacing outside video decoding chain. According to MS docs https://docs.microsoft.com/en-us/windows/desktop/medfound/dxva-video-processing#creating-a-video-processing-device

Before using DXVA video processing, the application must create a video processing device.

So neither dxva deinterlacing nor scaling in emulator.
Whats more, do not forget pscx2 is a low level emulator which is recreating console internals in digital world of programming as it was in real life. This means - injecting additional, processing between console components would be really hard if not possible. The only place i would see yadif is at FMV decoding, and ONLY then, if that decoding would be managed by ffmpeg libraries hooked somehow in pcsx2.
Lately, i saw a thread about progress frames enabling by crc so no deinterlacing would be involved at all, that is a nice solution.

And finally, deinterlacing can be implemented in shader program, that is easily managed by gpu. Results may vary, but any advanced shader will tax your gpu.

Which would be the first link I provided.
OTOH it's not entirely wrong to give a check to hardware capabilities.

Nvidia's purevideo beats yadif tbh. And we are talking about the video decoding block they have been shipping since 2004 here, not some GPGPU shenanigan.
Ok, turns out they used CUVID there, still.

Having ffmpeg read data inside emulation is total insanity though, if any this whatever thing should work directly with pcsx2 framebuffer (again, if even doable to begin with).

Then, dxva interop should be possible with d3d ex apis actually.
In addition to that, there's also MFT (even though nobody seems to understand how) and D3D11VA, all of which should sport the "devices" provided by the gpu driver too.
I can see VectorAdaptiveDevice_AMD, MotionAdaptiveDevice_AMD and AdaptiveDevice_AMD for example here in dxva checker.

Last but not least there are proprietary sdks...
but long story short it seems wrong for pcsx2 to experiment with any of this, considering all the other priorities.

EDIT: on linux

@mirh please stop. It's a valid feature request to want better deinterlacing. Whether it's yadif or a system interface or a shader or anything else is implementation details. No point in going on about it. If someone wants to and can implement/integrate it reasonably, no one would object.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jobs-git picture jobs-git  路  3Comments

alucryd picture alucryd  路  6Comments

XXXBold picture XXXBold  路  4Comments

mcabel picture mcabel  路  4Comments

Javed-Iqbal-1 picture Javed-Iqbal-1  路  5Comments