protonscr

ID2D1Factory::CreateDCRenderTarget method always fails under Proton

steamclosed
ValveSoftware/steam-for-linux#5716 · opened 2018-08-31 by ioncore · updated 2018-08-31 · 1 comments · github
1 matching comments, n / p to jump
Iioncore 2018-08-31 github

Your system information

  • Steam client version (build number or date): Aug 30, 2018, at 21:12:26
  • Distribution (e.g. Ubuntu): Ubuntu 18.04 LTS
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

Consider this snippet from MSDN:

ID2D1DCRenderTarget* mRenderTarget= nullptr;
D2D1_RENDER_TARGET_PROPERTIES renderTargetProps = D2D1::RenderTargetProperties(
D2D1_RENDER_TARGET_TYPE_DEFAULT,
D2D1::PixelFormat(
DXGI_FORMAT_B8G8R8A8_UNORM,
D2D1_ALPHA_MODE_IGNORE),
0, 0,
D2D1_RENDER_TARGET_USAGE_NONE,
D2D1_FEATURE_LEVEL_DEFAULT
);
HRESULT hr = D2DFactory->CreateDCRenderTarget( &renderTargetProps , &mRenderTarget);

Under Windows it succeeds and returns a non-null render target. Under Proton it fails with error code 0x80004005 and returns null render target.

I've also written a small render target enumerator function which attempts to create render target for every single possible combination of params in the D2D1_RENDER_TARGET_PROPERTIES structure. When run under Windows, it returns 54 valid combinations (indeed, all are based on DXGI_FORMAT_B8G8R8A8_UNORM format). When run under Proton, there is no valid combinations at all (so a DC render target can not be created under Proton).

My lshw output is here.

Kkisak-valve maintainer 2018-08-31 github

Hello @ioncore, Proton issues are being tracked in the Proton issue tracker, so I've gone ahead and transferred this issue to https://github.com/ValveSoftware/Proton/issues/1105.

Upstream links

Error codes