Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.
3075 Discussions

HEVC Decoding -> MFX_ERR_DEVICE_FAILED only on UHD 770 Graphics Device i9-13900K

Ralf_K_
Beginner
4,284 Views

Many of our customers report massive problems with HEVC / H264 decoding on UHD 770 Graphics (Windows 11)

On our test system with i9-13900K.
With driver version 31.0.101.4577
from 07/ 24 /2023

we can reproduce the problem

From a number of approx. 20 decoding session

 

virtual mfxStatus DecodeFrameAsync(mfxBitstream *bs, mfxFrameSurface1 *surface_work, mfxFrameSurface1 **surface_out, mfxSyncPoint *syncp) { return MFXVideoDECODE_DecodeFrameAsync(m_session, bs, surface_work, surface_out, syncp); }

 

returns

 

MFX_ERR_DEVICE_FAILED

 

as error. This is exact the problem which our customer have on UHD 770


These errors do not occur with older hardware, e.g..

Intel® Core™ i7-10710U Processor does not occur
Driver version: 27.20.100.8681
Driver date: 09/05/2020

 

64 streams can be decoded at the same time without problems here


Our Software uses the latest Media SDK availaible for Windows. (Intel(R) Media SDK 2021 R1)

 

Any ideas?

0 Kudos
18 Replies
Ralf_K_
Beginner
4,201 Views

an i7-11700K with UHD 750 works fine, too

 

i7-11700K returns MFXVideoSession->init  with MFX_IMPL_HARDWARE

 

1.35 which is afaik the latest version.

 

the i9-13900K with UHD 770 returns

 

1.255 which seem not be a valid version.

 

I know there is anAPI with VPL as the successor, but some of our customers are upgrading their hardware with existing software (i.e. 2 years old) hoping to get more performance. However, with a processor update to UHD 770 they are currently getting lower performance than on the old hardware and customers who have an old working system with more than 20 decoding session no longer have a working system after processor upgrade. From the customer's point of view, the new processors are incompatible in this case - I think this is certainly not wanted by Intel.

 

 

 

0 Kudos
Ralf_K_
Beginner
4,189 Views

ok, 1.255 is valid 

found this: 

https://github.com/oneapi-src/oneVPL/tree/master/examples/tutorials/01_transition

 

the behavior looks to me like an error in the graphics driver for UHD 770

0 Kudos
Ralf_K_
Beginner
4,166 Views

Intel Arc A770

returns API 1.255

and fails with 

MFX_ERR_DEVICE_FAILED 

from a number of approx. 13 decoding session

0 Kudos
Ralf_K_
Beginner
3,938 Views

i have updated the driver from

 

31.0.101.4257   3/23/2023

 

to

 

31.0.101.4824   9/8/2023

 

the problem occurs now only after about 18 instead of 13 decoding session

 

0 Kudos
AlekhyaV_Intel
Moderator
4,146 Views

Hi,


Thank you for posting in Intel Communities. We are trying to reproduce your issue from our end. We will get back to you soon with an update.


Thanks,

Alekhya


0 Kudos
Ralf_K_
Beginner
1,686 Views

Same with i9 14900k

 

Problem still exists ...

0 Kudos
AlekhyaV_Intel
Moderator
3,990 Views

Hi,


Thanks for your patience. To assist you better, we would need a sample reproducer, i.e., the application you're running(if you're not trying the in-built samples) and the exact commands you used. Additional error screenshots would be helpful too!


Thanks,

Alekhya


0 Kudos
Ralf_K_
Beginner
3,942 Views

Hi Alekhya,

 

thanks for the reply and sorry for my delayed answer.

 

Basically the following is done with the GPU:

 

Decode H265 stream
Resize the decoded frame to width/8 x height/8
Encode the decoded frame to Jpeg

 

Jpeg and Resized Frame are transferred from GPU memory to system memory.

 

I could provide a video where you can better understand the problem.

 

Furthermore, I could provide remote access to the test system with the Intel Arc 770.

 

The software can also be downloaded - I can provide a license to activate it.

 

How can I provide the video, code snippets, download link and activation code via private message if necessary?

 

Ralf

0 Kudos
Ralf_K_
Beginner
3,900 Views

Hi,

 

i tried to start a test to compile against oneAPI / VPL instead of using Media SDK - in hope that this will run on new processors without the described problems.


But i realized soon, that this is not possible way, because


MFX_IMPL_SOFTWARE


is not supported in oneAPI.


MFX_IMPL_SOFTWARE is highly used by our customers (Every AMD CPU requires this and all INTEL CPUs without GPU (i.e VM Users))


Using FFmpeg as described in the Upgrading document is not the way we want to go and would result in a lot of work and untestet code. (For new projects FFmpeg could be a way to go, but for exisiting projects it is not easy to implement)


So as a company which recommended Intel processors to their customers since more than 20 year, and since many years we recommend Intel CPUs with integrated GPUs, we have now to recommend an old Intel Processors up to 11th generation, or for power users a combination of Intel CPU and modern NVIDIA GPU, or maybe an AMD System.


This is really not what we want, but we are now at a dilemma, and in my opinion the only way is to make the new processors full compatible with the old Media SDK, and fix the problem in the GPU driver.


For the future of the oneAPI VPL you should rethink about eliminating MFX_IMPL_SOFTWARE. A support up to level 1.35 should be still implemented

 

Missing MFX_IMPL_SOFTWARE is a K.O. criterium for us to use oneAPI /VPL in our case.

 

I hope for progress in finding the problem.

 

Thanks for your support.

Ralf

0 Kudos
Ralf_K_
Beginner
3,861 Views

ignoring the missing MFX_IMPL_SOFTWARE and i have compiled and linked with

 

oneVPL

 

The behaviour is exact the same

 

on i9-13900K

 

19 Decoding Sessions are OK while UHD 770 has 11% Utilization

i9 Screenshot 2023-10-05 101047.png

if i activate Decode Session 20 i get

MFX_ERR_DEVICE_FAILED here:

 

 

 

			case State::DecodeAsync:
			{
				const auto sts = VideoSession_->decodeFrameAsync(&BitStream_);
				switch (sts)
				{
				case MFX_ERR_NONE:
				{
					setStateNext(State::DecodeSyncing);
				}
				break;
				case MFX_ERR_MORE_DATA:
				{
					if (isStopping())
					{
						setStateNext(State::StuffFinished);
					}
					else
					{
						arrangeOffset();
						if (CurrentPacket_)
						{
							if (BitStream_.DataLength + CurrentPacket_->Data_.size() > BitStream_.MaxLength)
							{
								enhanceBitStream(BitStream_.DataLength + static_cast<UINT32>(CurrentPacket_->Data_.size()));
							}
							lwMove(&CurrentPacket_->Data_[0], BitStream_.Data + BitStream_.DataLength + BitStream_.DataOffset, static_cast<int>(CurrentPacket_->Data_.size()));
							BitStream_.DataLength += static_cast<UINT32>(CurrentPacket_->Data_.size());
							CurrentPacket_.reset();
							DidWork_ = true;
						}
						else
						{
							setStateNext(State::DecodeAsync);
						}
					}
				}
				break;
				case MFX_ERR_MORE_SURFACE:
					Nop();
					break;
				case MFX_WRN_DEVICE_BUSY:
					break;
				case MFX_ERR_LOCK_MEMORY:
					error("MFX_ERR_LOCK_MEMORY");
					break;
				case MFX_ERR_UNDEFINED_BEHAVIOR:
					error("MFX_ERR_UNDEFINED_BEHAVIOR");
					break;
				case MFX_WRN_VIDEO_PARAM_CHANGED:
					Nop();
					break;
				case MFX_ERR_DEVICE_FAILED:
					error("MFX_ERR_DEVICE_FAILED");
					break;
				default:
					log("State::DecodeAsync " + strFromInt(sts));
					checkMfxErrorForState(sts);
					break;
				}
			}
			break;

 

 

 

Ralf

0 Kudos
Ralf_K_
Beginner
3,859 Views

with oneVPL also image errors occur, which do not occur with MediaSDK

 

Image ErrScreenshot 2023-10-05 104729.png

 

Err 2 Screenshot 2023-10-05 110002.png

0 Kudos
Ralf_K_
Beginner
3,850 Views

we do

 

Decode HEVC

  • -> VPP Resize OneEight
  • -> Encode Jpeg

 

to isolate the error, i tried:

 

Decode HEVC

  • -> VPP Resize OneEight
  • -> Encode Jpeg

 

With this configuration, i was able to run 31 Decoding sessions

 

GPU utilization is again ~ 11 %

GPU 2 Screenshot 2023-10-05 122004.png

 

 

 

 

 

0 Kudos
Ralf_K_
Beginner
3,684 Views

i did another test with oneAPI / oneVPL

 

and MFXVIDEO_CPP_ENABLE_MFXLOAD defined

 

QueryVersion returns

 

Major version = 2

Minor version = 9

 

i got still the same error MFX_ERR_DEVICE_FAILED 

 

 

0 Kudos
Ralf_K_
Beginner
3,674 Views

tried

 

  • Provider Intel Corporation
  • Version 31.0.101.4648
  • Date 9/21/2023

 

... same error

 

0 Kudos
Ralf_K_
Beginner
3,660 Views

tried

 

 

  • Provider Intel Corporation
  • Version 31.0.101.4887
  • Date 6/10/2023

 

... same error

 

0 Kudos
Ralf_K_
Beginner
3,658 Views

Hi,

 

i stumbled across the following, seems to be new  (since 11th generation?)

 

mfxInfoMFX.LowPower

 

is it conceivable that there could be a connection here (since I can't get above 11% GPU load)?

 

 

Thanks,

Ralf

0 Kudos
Ralf_K_
Beginner
3,458 Views

same with

Driver Version 31.0.101.4900

10 / 20 / 2023

0 Kudos
AlekhyaV_Intel
Moderator
3,436 Views

Hi,


We would be contacting you via private email. Please share all the necessary details via mail.


Regards,

Alekhya


0 Kudos
Reply