Closed
Bug 1196411
Opened 10 years ago
Closed 10 years ago
Detect GPUs that don't support 1080p60 and don't use DXVA for them
Categories
(Core :: Audio/Video: Playback, defect)
Core
Audio/Video: Playback
Tracking
()
RESOLVED
FIXED
mozilla43
People
(Reporter: mattwoodrow, Assigned: mattwoodrow)
Details
Attachments
(2 files)
13.75 KB,
patch
|
jya
:
review+
|
Details | Diff | Splinter Review |
10.84 KB,
patch
|
Details | Diff | Splinter Review |
Some GPUs can't support 1080p60 DXVA decoding (notably the vast majority of AMD ones), and yet offer no way to programmatically detect this.
We currently just try it, and then fallback to software decoding when we detect that we're dropping frames.
I'd like to make the fallback code more lenient (so that it's less likely to kick in), but to do this, I want to avoid starting DXVA on GPUs that will never work.
Since there's no way to detect this, it seems the best thing to do is just keep a list of all the older AMD devices, and check the current GPU against it.
Assignee | ||
Comment 1•10 years ago
|
||
Attachment #8650072 -
Flags: review?(jyavenard)
Comment 2•10 years ago
|
||
Comment on attachment 8650072 [details] [diff] [review]
Don't try DXVA 60fps for slower AMD GPUs
Review of attachment 8650072 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/media/platforms/wmf/DXVA2Manager.cpp
@@ +180,5 @@
> HRESULT hr = ConvertMFTypeToDXVAType(aType, &desc);
> NS_ENSURE_TRUE(SUCCEEDED(hr), false);
>
> + // AMD cards with UVD3 or earlier perform poorly trying to decode 1080p60 in hardware,
> + // so use software instead. Pick 45 as an arbitrary upper bound for the framerate we can
they don't handle 50p either ?
50p is typically what you would see in PAL (or SECAM) countries
Attachment #8650072 -
Flags: review?(jyavenard) → review+
Assignee | ||
Comment 3•10 years ago
|
||
(In reply to Jean-Yves Avenard [:jya] from comment #2)
> Comment on attachment 8650072 [details] [diff] [review]
> Don't try DXVA 60fps for slower AMD GPUs
>
> Review of attachment 8650072 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: dom/media/platforms/wmf/DXVA2Manager.cpp
> @@ +180,5 @@
> > HRESULT hr = ConvertMFTypeToDXVAType(aType, &desc);
> > NS_ENSURE_TRUE(SUCCEEDED(hr), false);
> >
> > + // AMD cards with UVD3 or earlier perform poorly trying to decode 1080p60 in hardware,
> > + // so use software instead. Pick 45 as an arbitrary upper bound for the framerate we can
>
> they don't handle 50p either ?
>
> 50p is typically what you would see in PAL (or SECAM) countries
I don't have any of those to test with. I suspect not, it was hitting around 40-50fps for a 60fps video.
Comment 5•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
status-firefox43:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
Assignee | ||
Comment 6•10 years ago
|
||
Comment on attachment 8650072 [details] [diff] [review]
Don't try DXVA 60fps for slower AMD GPUs
Approval Request Comment
[Feature/regressing bug #]: None
[User impact if declined]: Most AMD cards will drop frames of 1080p 60fps videos for the first second until we fallback to software, this makes us use software initially.
[Describe test coverage new/current, TreeHerder]: Tested manually.
[Risks and why]: Low risk.
[String/UUID change made/needed]: None
Attachment #8650072 -
Flags: approval-mozilla-beta?
Attachment #8650072 -
Flags: approval-mozilla-aurora?
status-firefox41:
--- → affected
status-firefox42:
--- → affected
Comment on attachment 8650072 [details] [diff] [review]
Don't try DXVA 60fps for slower AMD GPUs
This is a pretty big change so I would like to uplift to Aurora and let it stabilize for a few days before considering an uplift to Beta.
Attachment #8650072 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Assignee | ||
Comment 9•10 years ago
|
||
Flags: needinfo?(matt.woodrow)
Comment 10•10 years ago
|
||
Comment 11•9 years ago
|
||
(In reply to Jean-Yves Avenard [:jya] from comment #2)
> Comment on attachment 8650072 [details] [diff] [review]
> Don't try DXVA 60fps for slower AMD GPUs
>
> Review of attachment 8650072 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: dom/media/platforms/wmf/DXVA2Manager.cpp
> @@ +180,5 @@
> > HRESULT hr = ConvertMFTypeToDXVAType(aType, &desc);
> > NS_ENSURE_TRUE(SUCCEEDED(hr), false);
> >
> > + // AMD cards with UVD3 or earlier perform poorly trying to decode 1080p60 in hardware,
> > + // so use software instead. Pick 45 as an arbitrary upper bound for the framerate we can
>
> they don't handle 50p either ?
>
> 50p is typically what you would see in PAL (or SECAM) countries
1080p50 is OK as long as it is the only video playing systemwide. 720p60 is works similarly well.
For example, my card(Radeon HD4890) can DXVA decode approximately 50 frames of 1080p H264 video. If I attempt to DXVA decode 1080p60 I get massive framedrops. This is NOT a per video limitation but a system-wide one, so if I have a 1080p30 video playing and I open another one, then massive framedrops happen. I have not tested the limits of 720p video decoding, but a single 720p60 video works perfectly fine. I would guess that I could play a handful of 480p30 videos at the same time via DXVA and still be just fine.
Comment on attachment 8650072 [details] [diff] [review]
Don't try DXVA 60fps for slower AMD GPUs
This patch has been in Aurora for a few days, it seems safe to uplift to Beta41.
Attachment #8650072 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 13•9 years ago
|
||
Comment 14•9 years ago
|
||
I think the framerate check should be >50 not >45. This way 50fps videos(they are not uncommon on youtube) will still work.
(In reply to clogged.drainpipe from comment #14)
> I think the framerate check should be >50 not >45. This way 50fps
> videos(they are not uncommon on youtube) will still work.
Why not file a new bug and upload a patch?
Assignee | ||
Comment 16•9 years ago
|
||
Backed this out of the release branches for causing bug 1202700.
https://hg.mozilla.org/releases/mozilla-beta/rev/8b5c02e508e9
https://hg.mozilla.org/releases/mozilla-aurora/rev/3e0e14fd2f2c
Assignee | ||
Updated•9 years ago
|
Attachment #8650072 -
Flags: approval-mozilla-beta+
Attachment #8650072 -
Flags: approval-mozilla-aurora+
Comment 17•9 years ago
|
||
I am following up on a regression I found when using Firefox on some of my AMD systems with GPUs using UVD3 and found this bug and the associated code change as "culprit".
It seems that the change added a number of devices that are fully capable of playing back 1080p60 without an issue and do so fine on other browsers (Edge, Chrome, etc) and therefore IMO should be removed, let alone that the approach used to blacklist them is very coarse.
If there are problems with 1080p60 playback with UVD3 or other such hardware, then that is likely an issue with the drivers particular platform power profile than the hardware; it can and should be fixed there. Did you file a bug with AMD before issuing this "fix"?
Flags: needinfo?(matt.woodrow)
Comment 18•9 years ago
|
||
(In reply to Paul Blinzer from comment #17)
> I am following up on a regression I found when using Firefox on some of my
> AMD systems with GPUs using UVD3 and found this bug and the associated code
> change as "culprit".
> It seems that the change added a number of devices that are fully capable of
> playing back 1080p60 without an issue and do so fine on other browsers
> (Edge, Chrome, etc) and therefore IMO should be removed, let alone that the
> approach used to blacklist them is very coarse.
>
> If there are problems with 1080p60 playback with UVD3 or other such
> hardware, then that is likely an issue with the drivers particular platform
> power profile than the hardware; it can and should be fixed there. Did you
> file a bug with AMD before issuing this "fix"?
The HD4000 series has UVD 2, and only supports 1080p50. I would guess that UVD 3 supports 1080p60, but I am not certain.
Assignee | ||
Comment 19•9 years ago
|
||
(In reply to Paul Blinzer from comment #17)
> I am following up on a regression I found when using Firefox on some of my
> AMD systems with GPUs using UVD3 and found this bug and the associated code
> change as "culprit".
> It seems that the change added a number of devices that are fully capable of
> playing back 1080p60 without an issue and do so fine on other browsers
> (Edge, Chrome, etc) and therefore IMO should be removed, let alone that the
> approach used to blacklist them is very coarse.
>
> If there are problems with 1080p60 playback with UVD3 or other such
> hardware, then that is likely an issue with the drivers particular platform
> power profile than the hardware; it can and should be fixed there. Did you
> file a bug with AMD before issuing this "fix"?
We discussed this offline.
AMD is going to make it easier to detect support for 60fps video, and we are going to implement support for that checking in bug 1239098.
Flags: needinfo?(matt.woodrow)
You need to log in
before you can comment on or make changes to this bug.
Description
•