DirectX9, Direct Show : VMR9 Renderless Video Rendering crash on Intel's Integrated GPUs.

ash.p.23 1 Reputation point
2022-12-08T06:00:41.853+00:00

I have created a DirectX9 (DirectShow) based Sample MFC Application, that plays multiple videos one by one on Full Screen.

App uses VMR9 Renderless Mode using Custom Surface Allocator. It also uses YUV Mixing Mode and have Surface allocation flag as 'VMR9AllocFlag_OffScrenSurface'.

When app runs on a PC having

Case 1: Dedicated GPU (any), everything work fine.

tested using external graphics (NVIDIA GeForce RTX 3050).

Case 2: Integrated GPU of Intel i5 12th Gen PC, (Intel UHD Graphics 770)

Video shows black screen. No errors are logged, as every DirectX API execute successfully.

If I disable YUV Mixing Mode and change Surface Allocation flag to 'VMR9AllocFlag_TextureSurface',

it works fine for first few videos, but after that the App crashes and GPU suddenly spikes to 100%.

For testing Same video copies are used.

Still no logs are generated for DirectX api failures.

Is having dedicated GPU the only solution ?

(or)

Is there a workaround for Video Rendering using VMR9 using Integrated GPUs ?

I have already referred DirectX9 CreateDeviceEx fails with D3DERR_NOTAVAILABLE,
this error stopped coming after installing DirectX9 Runtime.

Issue does not come when using Dedicated or external graphics.

Windows API - Win32
Windows API - Win32
A core set of Windows application programming interfaces (APIs) for desktop and server applications. Previously known as Win32 API.
2,416 questions
C++
C++
A high-level, general-purpose programming language, created as an extension of the C programming language, that has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation.
3,525 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Castorix31 81,636 Reputation points
    2022-12-08T07:04:39.41+00:00

    I have an old Intel integrated GPU (Intel(R) HD Graphics on Windows 10 21H1) and the MS VMR9 player from SDK works fine for me :
    vmrplayer sample from vmr9

    1 person found this answer helpful.