Closed Bug 1428174 Opened 3 years ago Closed 3 years ago

Add Snapdragon 835 GPU to Windows whitelist


(Core :: Graphics, defect)

58 Branch
Not set



Tracking Status
firefox59 --- fixed


(Reporter: jonathan.kunkee+bugzilla, Assigned: jonathan.kunkee+bugzilla)



(1 file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299

Steps to reproduce:

I am a Microsoft engineer working to get Firefox running well under x86 emulation on ARM64 Windows devices.

Install Firefox.
Navigate to any content that can be hardware accelerated, like
Note FPS.

Actual results:

FPS is below 5. Hardware acceleration is not enabled because the Snapdragon 835 GPU is not whitelisted on Windows.

Expected results:

FPS should be above 15--or at least hardware acceleration should be enabled.
I am preparing a patch to add the needed entry.
Component: Untriaged → Graphics
Product: Firefox → Core
A little more detail is in order:

I am using
as a basic functional test of WebGL hardware acceleration.

It renders at 0.8 FPS without hardware acceleration.
It renders at ~9.3 FPS with hardware acceleration.

Hardware acceleration was enabled by adding Qualcomm's vendor ID to the vendor whitelist in widget\windows\GfxInfo.cpp's GfxInfo::GetFeatureStatusImpl.

I have a problem, though: GfxInfo::Init assumes that all device string entities are numerical, when entire categories are not. In this case, though, the DISPLAY_DEVICEW.DeviceID does not have all numerical values:


Further, this string format is optional. ACPI devices that omit _HRV (as is legal) show up as


so ParseIDFromDeviceID returns 0xC instead of QCOM or a meaningful number. My current fix adds 0xC as Qualcomm's VendorID instead of something correct. Reauthoring the device string parsing logic is about as invasive as converting it to pure DXGI calls, so I plan on filing a separate bug about that and am considering putting a special case in ParseIDFromDeviceID for Qualcomm for now.

I'm prepping a patch for MozReview with this.

Thoughts? Should this discussion go on a mailing list instead?
I made a small associative error while rewriting parts of that last comment:

VEN_QCOM => VendorID=0xC
Comment on attachment 8940392 [details]
BUG 1428174 - Add Qualcomm to Windows GPU Whitelist
Attachment #8940392 - Flags: review?(jmuizelaar) → review+
Assignee: nobody → jonathan.kunkee+bugzilla
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s bd65a029558b015d5c1b588a75e69bb02c7f6d20 -d 17bf5819b42f: rebasing 442800:bd65a029558b "BUG 1428174 - Add Qualcomm to Windows GPU Whitelist r=jrmuizel" (tip)
merging widget/GfxDriverInfo.cpp
merging widget/GfxDriverInfo.h
merging widget/windows/GfxInfo.cpp
warning: conflicts while merging widget/GfxDriverInfo.cpp! (edit, then use 'hg resolve --mark')
warning: conflicts while merging widget/GfxDriverInfo.h! (edit, then use 'hg resolve --mark')
warning: conflicts while merging widget/windows/GfxInfo.cpp! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
The code base has changed and the patch has conflicts now, please fix those and push the updated version to review board. Thank you.
Flags: needinfo?(jonathan.kunkee+bugzilla)
Keywords: checkin-needed
(In reply to Sebastian Hengst [:aryx][:archaeopteryx] (needinfo on intermittent or backout) from comment #7)
> The code base has changed and the patch has conflicts now, please fix those
> and push the updated version to review board. Thank you.

It seems that Parallels needed the same type of work at the same time.

An updated version has been pushed.
Flags: needinfo?(jonathan.kunkee+bugzilla)
Pushed by
Add Qualcomm to Windows GPU Whitelist r=jrmuizel
Keywords: checkin-needed
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla59
You need to log in before you can comment on or make changes to this bug.