Skip to content

Commit 30daede

Browse files
LhGuintel-mediadev
authored andcommitted
[VP] Fix engine id overwrite issues in multi-processes/multi-threads
Fix engine id overwrite issues
1 parent 28fff67 commit 30daede

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

media_softlet/agnostic/common/hw/mhw_vebox_impl.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,7 @@ class Impl : public Itf, public mhw::Impl
901901
{
902902
MHW_CHK_NULL_RETURN(m_veboxHeap);
903903
MHW_CHK_NULL_RETURN(m_veboxHeap->pStates);
904+
uint32_t reportedUsedID = 0;
904905
for (uint32_t index = 0; index < m_veboxSettings.uiNumInstances; index++)
905906
{
906907
const MHW_VEBOX_HEAP_STATE &curInstance = m_veboxHeap->pStates[index];
@@ -909,10 +910,21 @@ class Impl : public Itf, public mhw::Impl
909910
m_usedVeboxID |= 1 << (*curInstance.engineData).instanceId;
910911
}
911912
}
913+
// It is only used in debugging scenarios for multi-Vebox platforms.
914+
// No need to add any locks here.
915+
// This approach can handle all current debugging scenarios with multiple threads/processes.
916+
ReadUserSettingForDebug(
917+
m_userSettingPtr,
918+
reportedUsedID,
919+
__MEDIA_USER_FEATURE_VALUE_USED_VEBOX_ID,
920+
MediaUserSetting::Group::Sequence,
921+
0,
922+
false,
923+
MEDIA_USER_SETTING_INTERNAL_REPORT);
912924
ReportUserSettingForDebug(
913925
m_userSettingPtr,
914926
__MEDIA_USER_FEATURE_VALUE_USED_VEBOX_ID,
915-
m_usedVeboxID,
927+
reportedUsedID | m_usedVeboxID,
916928
MediaUserSetting::Group::Sequence);
917929
}
918930
return MOS_STATUS_SUCCESS;

0 commit comments

Comments
 (0)