Some AMD drivers seem to have an extra frame of delay

RESOLVED FIXED in Firefox 34

Status

()

defect
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: jrmuizel, Assigned: jrmuizel)

Tracking

unspecified
mozilla36
x86
macOS
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox33 wontfix, firefox34+ fixed, firefox35+ fixed, firefox36+ fixed)

Details

Attachments

(1 attachment, 3 obsolete attachments)

In the reproduction we've seen of bug 1089183 we've discovered that the AMD driver doesn't seem to present the current frame until you call Present() for the next frame.

This is easily reproducible by typing into the input box at the following URL:
data:text/html,<textarea>
Depends on: 1089183
I was able to reproduce this with a simple D3D11 test case. I was able to reproduce the same thing with a port of the D3D11 test case to D3D10.
Turns out this was a wild goose chase. The same problem reproduces in IE11 as well as Firefox 25.
Approval Request Comment
[Feature/regressing bug #]: OMTC
[User impact if declined]: Delayed by frame
[Risks and why]: Low. just modifying a block list
Attachment #8524055 - Flags: review?(bas)
Attachment #8524055 - Flags: approval-mozilla-beta?
Attachment #8524055 - Flags: approval-mozilla-aurora?
Posted patch amd (obsolete) — Splinter Review
Approval Request Comment
[Feature/regressing bug #]: OMTC
[User impact if declined]: Delayed by frame
[Risks and why]: Low. just modifying a block list
Attachment #8524061 - Flags: review?(bas)
Attachment #8524061 - Flags: approval-mozilla-beta?
Attachment #8524061 - Flags: approval-mozilla-aurora?
Approval Request Comment
[Feature/regressing bug #]:
[User impact if declined]:
[Describe test coverage new/current, TBPL]:
[Risks and why]: 
[String/UUID change made/needed]:

Approval Request Comment
[Feature/regressing bug #]:
[User impact if declined]:
[Describe test coverage new/current, TBPL]:
[Risks and why]: 
[String/UUID change made/needed]:

Approval Request Comment
[Feature/regressing bug #]: OMTC
[User impact if declined]: Delayed by frame
[Risks and why]: Low. just modifying a block list
Attachment #8524055 - Attachment is obsolete: true
Attachment #8524061 - Attachment is obsolete: true
Attachment #8524055 - Flags: review?(bas)
Attachment #8524055 - Flags: approval-mozilla-beta?
Attachment #8524055 - Flags: approval-mozilla-aurora?
Attachment #8524061 - Flags: review?(bas)
Attachment #8524061 - Flags: approval-mozilla-beta?
Attachment #8524061 - Flags: approval-mozilla-aurora?
Attachment #8524064 - Flags: review?(bas)
Attachment #8524064 - Flags: approval-mozilla-beta?
Attachment #8524064 - Flags: approval-mozilla-aurora?
Comment on attachment 8524064 [details] [diff] [review]
Block D3D11 layers on AMD hardware that delays by a frame

Review of attachment 8524064 [details] [diff] [review]:
-----------------------------------------------------------------

Bas verbally r+
Attachment #8524064 - Flags: review?(bas) → review+
Comment on attachment 8524064 [details] [diff] [review]
Block D3D11 layers on AMD hardware that delays by a frame

Discussed with Jeff. The current state is that the browser is pretty much unusable for affected gfx hardware as the current frame is only displayed when the subsequent from should be. This makes things like form entry very difficult.

Beta+
Aurora+
Attachment #8524064 - Flags: approval-mozilla-beta?
Attachment #8524064 - Flags: approval-mozilla-beta+
Attachment #8524064 - Flags: approval-mozilla-aurora?
Attachment #8524064 - Flags: approval-mozilla-aurora+
Seems like we could work around this if we wanted to.
https://hg.mozilla.org/mozilla-central/rev/141ecbdcdb45
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
Looks like this is fixed by passing the PREVENT_INTERNAL_THREADING_OPTIMIZATIONS flag on device creation:
https://tbpl.mozilla.org/?tree=Try&rev=815f50bb7696
Attachment #8524796 - Flags: review?(bas) → review+
Comment on attachment 8524796 [details] [diff] [review]
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS

Approval Request Comment
[Feature/regressing bug #]: OMTC
[User impact if declined]: black listed hardware acceleration, slow performance if the blacklist isn't correct
[Describe test coverage new/current, TBPL]: Any drawing will test this path
[Risks and why]: Who knows what D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS does.
Attachment #8524796 - Flags: approval-mozilla-beta?
Attachment #8524796 - Flags: approval-mozilla-aurora?
Attachment #8524796 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Should this bug have been reopened cat comment 13? Does the latest patch need to land on m-c as well as aurora and beta?
Jeff - Can you handle the landings yourself on Wed?
Comment on attachment 8524796 [details] [diff] [review]
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS

Beta+
Attachment #8524796 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment on attachment 8524796 [details] [diff] [review]
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS

Resetting Beta flag. Jeff and I are going to review this fix Thu morning after it has a day on Nightly.
Attachment #8524796 - Flags: approval-mozilla-beta+ → approval-mozilla-beta?
Opps, I didn't set the author for that patch when rebasing =\.
Comment on attachment 8524796 [details] [diff] [review]
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS

I reviewed this bug with Jeff this morning and gave verbal approval to land. The fix has been verified by people who were experiencing the issue. This has also been on m-c and m-a for a day or so with no known fallout. We're going to take this fix in beta11. Beta+
Attachment #8524796 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Depends on: 1104673
You need to log in before you can comment on or make changes to this bug.