ValveSoftware / ValveSoftware/Proton

`ID2D1Factory4` Interface Not Supported

Open
#6,183 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
32.8k
Forks
1.6k
PR merge metrics
PR metrics pending

Description

Proton version: experimental
Hardware platform: steam deck

Creating an ID2D1Factory4 always fails with HRESULT 0x80004002 (E_NOINTERFACE), indicating that this interface is not supported.

This means that software that makes use of Direct2D sprite batches cannot run under Proton because d2d sprite batches can only be created using the ID2D1DeviceContext3 interface, which can only be created by ID2D1Device3 interface, which can only be created from ID2D1Factory4 interface. NOTE: Using QueryInterface to obtain the necessary interfaces from more generic COM objects doesn't work either.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating Proton's Direct2D and COM implementation, then trace creation and QueryInterface handling for ID2D1Factory4, ID2D1Device3, and ID2D1DeviceContext3. Done means ID2D1Factory4 creation no longer returns E_NOINTERFACE and software requiring Direct2D sprite batches can run under Proton.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.