- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Intel Arc A770
returns API 1.255
and fails with
MFX_ERR_DEVICE_FAILED
from a number of approx. 13 decoding session
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Same with i9 14900k
Problem still exists ...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
with oneVPL also image errors occur, which do not occur with MediaSDK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 %
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
tried
- Provider Intel Corporation
- Version 31.0.101.4648
- Date 9/21/2023
... same error
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
tried
- Provider Intel Corporation
- Version 31.0.101.4887
- Date 6/10/2023
... same error
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
same with
Driver Version 31.0.101.4900
10 / 20 / 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We would be contacting you via private email. Please share all the necessary details via mail.
Regards,
Alekhya
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page