Skip to content

Commit 9fd49b4

Browse files
committed
Merge tag 'intel-media-24.4.4' into fancybits-intel-media-24.4.4
2 parents b813073 + d3c30f6 commit 9fd49b4

File tree

177 files changed

+7093
-3521
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

177 files changed

+7093
-3521
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
cmake_minimum_required(VERSION 3.5)
2222
project(IntelMediaDriver)
23-
set(MEDIA_VERSION "24.4.2${MEDIA_VERSION_EXTRA}" CACHE STRING "" FORCE)
23+
set(MEDIA_VERSION "24.4.4${MEDIA_VERSION_EXTRA}" CACHE STRING "" FORCE)
2424

2525

2626

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ Media driver supports below two builds
9898
- **Full Feature Build** is ***default*** driver build, which supports all feature by hardware accelerator and close source shaders(media kernel binaries). Most of OSVs(like RHEL/SUSE/fedora) are using this build.
9999
- **Free Kernel Build**, enables fully open source shaders(media kernels) and hardware features but the features would be limited.
100100
101-
About Ubuntu/Debian OSV, they provide [intel-media-va-driver-non-free](https://packages.ubuntu.com/disco/intel-media-va-driver-non-free) (Full feature build) and [intel-media-va-driver](https://packages.ubuntu.com/disco/intel-media-va-driver) (Free kernel build) two packages. ***Free*** here means open source kernel but not related to fee need to pay. You could refer to [build options](https://github.com/intel/media-driver?tab=readme-ov-file#build-options) for more detail.
101+
About Ubuntu/Debian OSV, they provide [intel-media-va-driver-non-free](https://packages.ubuntu.com/search?keywords=intel-media-driver-non-free&searchon=sourcenames) (Full feature build) and [intel-media-va-driver](https://packages.ubuntu.com/search?keywords=intel-media-driver&searchon=sourcenames) (Free kernel build) two packages. ***Free*** here means open source kernel but not related to fee need to pay. You could refer to [build options](https://github.com/intel/media-driver?tab=readme-ov-file#build-options) for more detail.
102102
103103
If you are looking forward to have a big table to share media component features on these two builds, below tables are good referene for your information.
104104

cmrtlib/linux/hardware/cm_device_os.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,18 +483,20 @@ CmDevice_RT::CmDevice_RT(
483483
m_deviceInUmd(nullptr),
484484
m_cmCreated(true),
485485
m_vaDisplay(vaDisplay),
486+
m_drmIndex(0),
487+
m_fvaCmExtSendReqMsg(nullptr),
486488
#ifdef ANDROID
487489
m_display(nullptr),
488490
#endif
489-
m_drmIndex(0),
490-
m_fvaCmExtSendReqMsg(nullptr),
491491
m_gtpinEnabled(false),
492492
m_gtpinBufferUP0(nullptr),
493493
m_gtpinBufferUP1(nullptr),
494494
m_gtpinBufferUP2(nullptr),
495495
m_createOption(createOption),
496-
m_driverStoreEnabled(0),
497-
m_driFileDescriptor(0)
496+
#if !defined(ANDROID)
497+
m_driFileDescriptor(0),
498+
#endif
499+
m_driverStoreEnabled(0)
498500
{
499501

500502
// New Surface Manager

media_common/agnostic/common/hw/mhw_mi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,11 +281,13 @@ typedef struct _MHW_MI_ATOMIC_PARAMS
281281
typedef struct _MHW_MI_SEMAPHORE_WAIT_PARAMS
282282
{
283283
PMOS_RESOURCE presSemaphoreMem; // Semaphore memory Resource
284+
uint64_t gpuVirtualAddress; // Semaphore memory Resource
284285
uint32_t dwResourceOffset;
285286
bool bRegisterPollMode;
286287
bool bPollingWaitMode;
287288
uint32_t dwCompareOperation;
288289
uint32_t dwSemaphoreData;
290+
bool b64bComparEnableWithGPR;
289291
MHW_COMMON_MI_SEMAPHORE_COMPARE_OPERATION CompareOperation;
290292
}MHW_MI_SEMAPHORE_WAIT_PARAMS, *PMHW_MI_SEMAPHORE_WAIT_PARAMS;
291293

media_common/agnostic/common/hw/mhw_state_heap.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ typedef struct _MHW_KERNEL_PARAM
253253
void *pExtra; //!< Kernel parameter
254254
uint8_t *pBinary; //!< Pointer to kernel binary
255255
int32_t iSize; //!< Kernel size
256+
int32_t iPaddingSize; //!< Padding size
256257
int32_t iGrfCount; //!< Number of registers
257258
int32_t iBTCount; //!< Number of BT entries
258259
int32_t iThreadCount; //!< Number of threads (max)

media_common/agnostic/common/os/mos_os.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
#include "mos_oca_interface.h"
5151
#include "mos_cache_manager.h"
5252

53+
class MhwInterfacesNext;
5354
#define MOS_NAL_UNIT_LENGTH 4
5455
#define MOS_NAL_UNIT_STARTCODE_LENGTH 3
5556
#define MOS_MAX_PATH_LENGTH 256
@@ -254,12 +255,15 @@ typedef int32_t MOS_SUBMISSION_TYPE;
254255
#define EXTRA_PADDING_NEEDED 4096
255256
#define MEDIA_CMF_UNCOMPRESSED_WRITE 0xC
256257

258+
struct _MHW_BATCH_BUFFER;
259+
typedef struct _MHW_BATCH_BUFFER MHW_BATCH_BUFFER, * PMHW_BATCH_BUFFER;
257260
//!
258261
//! \brief Structure to command buffer
259262
//!
260263
typedef struct _MOS_COMMAND_BUFFER
261264
{
262265
MOS_RESOURCE OsResource; //!< OS Resource
266+
PMHW_BATCH_BUFFER syncMhwBatchBuffer; //!< Pointer to sync mhw batch buffer
263267

264268
// Common fields
265269
uint32_t *pCmdBase; //!< Base address (CPU)
@@ -573,7 +577,7 @@ struct MosStreamState
573577
uint32_t dwEnableMediaSoloFrameNum = 0; //!< The frame number at which MediaSolo will be enabled, 0 is not valid.
574578
int32_t bSoloInUse = 0; //!< Flag to indicate if MediaSolo is enabled
575579
#endif // MOS_MEDIASOLO_SUPPORTED
576-
580+
MhwInterfacesNext *mhwInterface = nullptr;
577581
};
578582

579583
// OS agnostic MOS objects
@@ -2056,6 +2060,8 @@ typedef struct _MOS_INTERFACE
20562060

20572061
bool (*pfnGetCacheSetting)(MOS_COMPONENT id, uint32_t feature, bool bOut, ENGINE_TYPE engineType, MOS_CACHE_ELEMENT &element, bool isHeapSurf);
20582062

2063+
bool (* pfnIsGpuSyncByCmd) (PMOS_INTERFACE osInterface);
2064+
20592065
// Virtual Engine related
20602066
int32_t bSupportVirtualEngine; //!< Enable virtual engine flag
20612067
int32_t bUseHwSemaForResSyncInVE; //!< Flag to indicate if UMD need to send HW sema cmd under this OS when there is a resource sync need with Virtual Engine interface
@@ -2094,6 +2100,7 @@ typedef struct _MOS_INTERFACE
20942100

20952101
//!< os interface extension
20962102
void *pOsExt;
2103+
MhwInterfacesNext *mhwInterface;
20972104
} MOS_INTERFACE;
20982105

20992106
#ifdef __cplusplus

media_common/agnostic/common/os/user_setting/media_user_setting_configure.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#define __MEDIA_USER_SETTING_CONFIGURE__H__
2929

3030
#include <string>
31+
#include <set>
3132
#include "media_user_setting_definition.h"
3233
#include "mos_utilities.h"
3334

@@ -229,6 +230,7 @@ class Configure
229230
std::string m_statedReportPath = "";
230231
#if (_DEBUG || _RELEASE_INTERNAL)
231232
std::string m_pidPath = "";
233+
static std::set<std::string> m_nonPidRegPaths; // Record non-pid reg path which does not have inner pid path
232234
#endif
233235
};
234236
}

media_common/agnostic/common/vp/hal/vp_common_defs.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,14 +190,15 @@ enum VpKernelID
190190
kernelOclFc444PL3Output,
191191
kernelOclFc420PL3Input,
192192
kernelOclFc420PL3Output,
193+
kernelOclFc422HVInput,
193194
baseKernelMaxNumID
194195
};
195196

196197
enum VpKernelIDNext
197198
{
198199
vpKernelIDNextBase = 0x200,
199200
kernelHdr3DLutCalc = vpKernelIDNextBase,
200-
kernelHdr3DLutCalcL0,
201+
kernelHdr3DLutCalcOcl,
201202
kernelHVSCalc,
202203
vpKernelIDNextMax
203204
};
@@ -1074,6 +1075,8 @@ struct VPHAL_RENDER_PARAMS
10741075

10751076
bool bForceToRender = false; // Force to render to perform scaling.
10761077

1078+
HANDLE gpuAppTaskEvent; //!< GPU App task event
1079+
10771080
VPHAL_RENDER_PARAMS() : uSrcCount(0),
10781081
pSrc(),
10791082
uDstCount(0),
@@ -1096,7 +1099,8 @@ struct VPHAL_RENDER_PARAMS
10961099
pExtensionData(nullptr),
10971100
bPathKernel(false),
10981101
bUseVEHdrSfc(false),
1099-
bNonFirstFrame(false)
1102+
bNonFirstFrame(false),
1103+
gpuAppTaskEvent(nullptr)
11001104
{
11011105
}
11021106
};

media_common/agnostic/common/vp/kdll/hal_kerneldll_next.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,7 @@ typedef struct tagKdll_CacheEntry
636636
// Kernel binary
637637
uint8_t *pBinary; // kernel binary
638638
int iSize; // kernel size
639+
int iPaddingSize; //kernel padding size
639640

640641
// Component kernel information
641642
int iKUID; // kernel unique id (static kernel)

media_driver/agnostic/common/codec/hal/codechal_encode_avc_base.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3270,6 +3270,11 @@ MOS_STATUS CodechalEncodeAvcBase::SetSliceStructs()
32703270
{
32713271
for (uint8_t i = 0; i < (slcParams->num_ref_idx_l0_active_minus1 + 1); i++)
32723272
{
3273+
if (slcParams->RefPicList[0][i].FrameIdx >= CODEC_AVC_MAX_NUM_REF_FRAME)
3274+
{
3275+
CODECHAL_ENCODE_ASSERTMESSAGE("Invalid slice parameters.");
3276+
return MOS_STATUS_INVALID_PARAMETER;
3277+
}
32733278
slcParams->PicOrder[0][i].Picture.FrameIdx =
32743279
m_picIdx[slcParams->RefPicList[0][i].FrameIdx].ucPicIdx;
32753280
slcParams->PicOrder[0][i].Picture.PicFlags =
@@ -3280,6 +3285,11 @@ MOS_STATUS CodechalEncodeAvcBase::SetSliceStructs()
32803285
{
32813286
for (uint8_t i = 0; i < (slcParams->num_ref_idx_l1_active_minus1 + 1); i++)
32823287
{
3288+
if (slcParams->RefPicList[1][i].FrameIdx >= CODEC_AVC_MAX_NUM_REF_FRAME)
3289+
{
3290+
CODECHAL_ENCODE_ASSERTMESSAGE("Invalid slice parameters.");
3291+
return MOS_STATUS_INVALID_PARAMETER;
3292+
}
32833293
slcParams->PicOrder[1][i].Picture.FrameIdx =
32843294
m_picIdx[slcParams->RefPicList[1][i].FrameIdx].ucPicIdx;
32853295
slcParams->PicOrder[1][i].Picture.PicFlags =

0 commit comments

Comments
 (0)