diff --git a/media_softlet/linux/media_srcs.cmake b/media_softlet/linux/media_srcs.cmake index e9331c5486..41bbc39ae0 100644 --- a/media_softlet/linux/media_srcs.cmake +++ b/media_softlet/linux/media_srcs.cmake @@ -27,3 +27,8 @@ endif() if(MTL OR ARL) media_include_subdirectory(Xe_M_plus) endif() + +if(XE2_LPM_SUPPORT) +media_include_subdirectory(xe2_lpm) +media_include_subdirectory(xe2_lpm_r0) +endif() \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm/ddi/caps_register_specific_xe2_lpm.cpp b/media_softlet/linux/xe2_lpm/ddi/caps_register_specific_xe2_lpm.cpp new file mode 100644 index 0000000000..e97ec7d9c7 --- /dev/null +++ b/media_softlet/linux/xe2_lpm/ddi/caps_register_specific_xe2_lpm.cpp @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2022-2023, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file caps_register_specific_xe2_lpm.cpp +//! \brief This file register all caps data for xe2_lpm +//! + +// Only for new platforms init, should be removed once new platform caps init done +#include "capstable_data_xe2_lpm_r0_specific.h" + +static bool capsTableXe2_Lpm_r0Registered = MediaCapsTable::RegisterCaps(plt_Xe2_Lpm_r0, capsData_Xe2_Lpm_r0); diff --git a/media_softlet/linux/xe2_lpm/ddi/media_sku_wa_lnl.cpp b/media_softlet/linux/xe2_lpm/ddi/media_sku_wa_lnl.cpp new file mode 100644 index 0000000000..7688b06f0f --- /dev/null +++ b/media_softlet/linux/xe2_lpm/ddi/media_sku_wa_lnl.cpp @@ -0,0 +1,314 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ + +//! +//! \file media_sku_wa_lnl.cpp +//! + +#include "igfxfmid.h" +#include "linux_system_info.h" +#include "skuwa_factory.h" +#include "linux_skuwa_debug.h" +#include "linux_media_skuwa.h" +#include "media_user_setting_specific.h" + +static constexpr uint32_t singleVeboxSubSliceNumMax = 24; + +//extern template class DeviceInfoFactory; +typedef DeviceInfoFactory DeviceInit; + +static struct LinuxCodecInfo lnlCodecInfo = +{ + .avcDecoding = 1, + .mpeg2Decoding = 1, + .vp8Decoding = 1, + .vc1Decoding = 0, + .jpegDecoding = 1, + .avcEncoding = SET_STATUS_BY_FULL_OPEN_SOURCE(1, 0), + .mpeg2Encoding = SET_STATUS_BY_FULL_OPEN_SOURCE(1, 0), + .hevcDecoding = 1, + .hevcEncoding = SET_STATUS_BY_FULL_OPEN_SOURCE(1, 0), + .jpegEncoding = 1, + .avcVdenc = 1, + .vp9Decoding = 1, + .hevc10Decoding = 1, + .vp9b10Decoding = 1, + .hevc10Encoding = SET_STATUS_BY_FULL_OPEN_SOURCE(1, 0), + .hevc12Encoding = 0, + .vp8Encoding = 0, + .hevcVdenc = 1, + .vp9Vdenc = 1, + .adv0Decoding = 1, + .adv1Decoding = 1, +}; + +static bool InitLnlMediaSkuExt(struct GfxDeviceInfo *devInfo, + MediaFeatureTable *skuTable, + struct LinuxDriverInfo *drvInfo, + MediaUserSettingSharedPtr userSettingPtr) +{ + if ((devInfo == nullptr) || (skuTable == nullptr) || (drvInfo == nullptr)) + { + DEVINFO_ERROR("null ptr is passed\n"); + return false; + } + + if (drvInfo->hasBsd) + { + LinuxCodecInfo *codecInfo = &lnlCodecInfo; + + MEDIA_WR_SKU(skuTable, FtrAVCVLDLongDecoding, codecInfo->avcDecoding); + MEDIA_WR_SKU(skuTable, FtrMPEG2VLDDecoding, codecInfo->mpeg2Decoding); + MEDIA_WR_SKU(skuTable, FtrIntelVP8VLDDecoding, codecInfo->vp8Decoding); + MEDIA_WR_SKU(skuTable, FtrVC1VLDDecoding, codecInfo->vc1Decoding); + MEDIA_WR_SKU(skuTable, FtrIntelJPEGDecoding, codecInfo->jpegDecoding); + MEDIA_WR_SKU(skuTable, FtrEncodeAVC, codecInfo->avcEncoding); + MEDIA_WR_SKU(skuTable, FtrEncodeMPEG2, codecInfo->mpeg2Encoding); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMainDecoding, codecInfo->hevcDecoding); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain10Decoding, codecInfo->hevc10Decoding); + MEDIA_WR_SKU(skuTable, FtrIntelVVCVLDDecodingMain10, 1); + MEDIA_WR_SKU(skuTable, FtrIntelVVCVLDDecodingMultilayerMain10, 0); + + MEDIA_WR_SKU(skuTable, FtrEncodeHEVC, codecInfo->hevcEncoding); + MEDIA_WR_SKU(skuTable, FtrEncodeHEVC10bit, codecInfo->hevc10Encoding); + MEDIA_WR_SKU(skuTable, FtrEncodeJPEG, codecInfo->jpegEncoding); + MEDIA_WR_SKU(skuTable, FtrEncodeAVCVdenc, codecInfo->avcVdenc); + MEDIA_WR_SKU(skuTable, FtrVP9VLDDecoding, codecInfo->vp9Decoding); + MEDIA_WR_SKU(skuTable, FtrIntelVP9VLDProfile0Decoding8bit420, codecInfo->vp9Decoding); + MEDIA_WR_SKU(skuTable, FtrVP9VLD10bProfile2Decoding, codecInfo->vp9b10Decoding); + MEDIA_WR_SKU(skuTable, FtrIntelVP9VLDProfile2Decoding, codecInfo->vp9b10Decoding); + MEDIA_WR_SKU(skuTable, FtrIntelAV1VLDDecoding8bit420, codecInfo->adv0Decoding); + MEDIA_WR_SKU(skuTable, FtrIntelAV1VLDDecoding10bit420, codecInfo->adv1Decoding); + + /* HEVC VDENC */ + MEDIA_WR_SKU(skuTable, FtrEncodeHEVCVdencMain, codecInfo->hevcVdenc); + MEDIA_WR_SKU(skuTable, FtrEncodeHEVCVdencMain10, codecInfo->hevcVdenc); + + /* Vp9 VDENC */ + MEDIA_WR_SKU(skuTable, FtrEncodeVP9Vdenc, codecInfo->vp9Vdenc); + + /* HEVC Main8/10bit-422/444 Decoding. Currently it is enabled. */ + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLD42210bitDecoding, 1); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLD4448bitDecoding, 1); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLD44410bitDecoding, 1); + + /* SFC Histogram Streamout. */ + MEDIA_WR_SKU(skuTable, FtrSFCHistogramStreamOut, 1); + + /* Subset buffer for realtile decoding. */ + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDDecodingSubsetBuffer, 1); + + /* HEVC Main8/10bit-420/422/444 Scc Decoding. Currently it is enabled. */ + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain8bit420SCC, 1); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain10bit420SCC, 1); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain8bit444SCC, 1); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain10bit444SCC, 1); + + /* HEVC VDENC Main8/10 422/444 Encoding. */ + MEDIA_WR_SKU(skuTable, FtrEncodeHEVCVdencMain444, codecInfo->hevcVdenc); + MEDIA_WR_SKU(skuTable, FtrEncodeHEVCVdencMain422, codecInfo->hevcVdenc); + MEDIA_WR_SKU(skuTable, FtrEncodeHEVCVdencMain10bit422, codecInfo->hevcVdenc); + MEDIA_WR_SKU(skuTable, FtrEncodeHEVCVdencMain10bit444, codecInfo->hevcVdenc); + + /* HEVC 12bit Decoding. Currently it is enabled */ + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain12bit420Decoding, 1); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain12bit422Decoding, 1); + MEDIA_WR_SKU(skuTable, FtrIntelHEVCVLDMain12bit444Decoding, 1); + + /* VP9 8 bit 444 */ + MEDIA_WR_SKU(skuTable, FtrIntelVP9VLDProfile1Decoding8bit444, 1); + /* VP9 10 Bit 444*/ + MEDIA_WR_SKU(skuTable, FtrIntelVP9VLDProfile3Decoding10bit444, 1); + /* VP9 12 bit 420/444 */ + MEDIA_WR_SKU(skuTable, FtrIntelVP9VLDProfile2Decoding12bit420, 1); + MEDIA_WR_SKU(skuTable, FtrIntelVP9VLDProfile3Decoding12bit444, 1); + + /* VP9 VDENC 8Bit 444 */ + MEDIA_WR_SKU(skuTable, FtrEncodeVP9Vdenc8bit444, codecInfo->vp9Vdenc); + /* VP9 VDENC 10Bit 420/444 */ + MEDIA_WR_SKU(skuTable, FtrEncodeVP9Vdenc10bit420, codecInfo->vp9Vdenc); + MEDIA_WR_SKU(skuTable, FtrEncodeVP9Vdenc10bit444, codecInfo->vp9Vdenc); + + /* AV1 VDENC 8/10Bit 420 */ + MEDIA_WR_SKU(skuTable, FtrEncodeAV1Vdenc, 1); + MEDIA_WR_SKU(skuTable, FtrEncodeAV1Vdenc10bit420, 1); + } + + MEDIA_WR_SKU(skuTable, FtrEnableProtectedHuc, drvInfo->hasProtectedHuc); + MEDIA_WR_SKU(skuTable, FtrEnableMediaKernels, drvInfo->hasHuc); + MEDIA_WR_SKU(skuTable, FtrVERing, drvInfo->hasVebox); + MEDIA_WR_SKU(skuTable, FtrPPGTT, drvInfo->hasPpgtt); + MEDIA_WR_SKU(skuTable, FtrEDram, devInfo->hasERAM); + + /* Virtual VDBOX ring is used on MTL */ + MEDIA_WR_SKU(skuTable, FtrVcs2, 0); + + MEDIA_WR_SKU(skuTable, FtrSingleVeboxSlice, 1); + if (devInfo->SubSliceCount >= singleVeboxSubSliceNumMax) + { + MEDIA_WR_SKU(skuTable, FtrSingleVeboxSlice, 0); + } + + MEDIA_WR_SKU(skuTable, FtrSFCPipe, 1); + MEDIA_WR_SKU(skuTable, FtrHCP2SFCPipe, 1); + MEDIA_WR_SKU(skuTable, FtrSSEUPowerGating, 1); + MEDIA_WR_SKU(skuTable, FtrSSEUPowerGatingControlByUMD, 1); + + MEDIA_WR_SKU(skuTable, FtrPerCtxtPreemptionGranularityControl, 1); + + /* It is disabled by default. It can be enabled based on HW */ + MEDIA_WR_SKU(skuTable, FtrMemoryCompression, 0); + MEDIA_WR_SKU(skuTable, FtrHcpDecMemoryCompression, 0); + MEDIA_WR_SKU(skuTable, Ftr10bitDecMemoryCompression, 0); + + MEDIA_WR_SKU(skuTable, FtrCCSNode, 1); + + MEDIA_WR_SKU(skuTable, FtrVpP010Output, 1); + MEDIA_WR_SKU(skuTable, FtrVp10BitSupport, 1); + MEDIA_WR_SKU(skuTable, FtrVp16BitSupport, 1); + + MEDIA_WR_SKU(skuTable, FtrContextBasedScheduling, 1); + MEDIA_WR_SKU(skuTable, FtrSfcScalability, 1); + + MEDIA_WR_SKU(skuTable, FtrSWMediaReset, 1); + MEDIA_WR_SKU(skuTable, FtrGucSubmission, 1); + + MEDIA_WR_SKU(skuTable, FtrTileY, 0); + MEDIA_WR_SKU(skuTable, FtrLinearCCS, 1); + MEDIA_WR_SKU(skuTable, FtrFlatPhysCCS, 1); + + MEDIA_WR_SKU(skuTable, FtrWithSlimVdbox, 0); + + MEDIA_WR_SKU(skuTable, FtrE2ECompression, 1); + MEDIA_WR_SKU(skuTable, FtrHDR, 1); + MEDIA_WR_SKU(skuTable, FtrDisableRenderTargetWidthAdjust, 1); + + MOS_USER_FEATURE_VALUE_DATA userFeatureData; + // Disable MMC for all components if set reg key + MOS_ZeroMemory(&userFeatureData, sizeof(userFeatureData)); + MOS_UserFeature_ReadValue_ID( + nullptr, + __MEDIA_USER_FEATURE_VALUE_DISABLE_MMC_ID, + &userFeatureData, + (MOS_CONTEXT_HANDLE)nullptr); + if (userFeatureData.bData) + { + MEDIA_WR_SKU(skuTable, FtrE2ECompression, 0); + } + + // Create uncompressible surface by default + MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 0); + + bool compressibleSurfaceEnable = false; + + ReadUserSetting(userSettingPtr, + compressibleSurfaceEnable, + "Enable Compressible Surface Creation", + MediaUserSetting::Group::Device); + +#ifdef _MMC_SUPPORTED + if (compressibleSurfaceEnable) + { + MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 1); + } +#endif + + //Disable LocalMemory for all iGraphics + MEDIA_WR_SKU(skuTable, FtrLocalMemory, 0); + + MEDIA_WR_SKU(skuTable, FtrConditionalBatchBuffEnd, 1); + MEDIA_WR_SKU(skuTable, FtrUseSwSwizzling, 0); + MEDIA_WR_SKU(skuTable, FtrMemoryRemapSupport, 1); + + + MEDIA_WR_SKU(skuTable, FtrAV1VLDLSTDecoding, 1); + MEDIA_WR_SKU(skuTable, FtrMediaIPSeparation , 1); + MEDIA_WR_SKU(skuTable, FtrXe2Compression , 1); + if (!compressibleSurfaceEnable) + { + MEDIA_WR_SKU(skuTable, FtrXe2Compression , 0); + } + + return true; +} + +static bool InitLnlMediaWaExt(struct GfxDeviceInfo *devInfo, + MediaWaTable *waTable, + struct LinuxDriverInfo *drvInfo) +{ + if ((devInfo == nullptr) || (waTable == nullptr) || (drvInfo == nullptr)) + { + DEVINFO_ERROR("null ptr is passed\n"); + return false; + } + + MEDIA_WR_WA(waTable, WaForceGlobalGTT, !drvInfo->hasPpgtt); + MEDIA_WR_WA(waTable, WaMidBatchPreemption, 0); + MEDIA_WR_WA(waTable, WaArbitraryNumMbsInSlice, 1); + + MEDIA_WR_WA(waTable, WaSFC270DegreeRotation, 0); + + MEDIA_WR_WA(waTable, WaEnableYV12BugFixInHalfSliceChicken7, 1); + + MOS_USER_FEATURE_VALUE_DATA userFeatureData; + MOS_ZeroMemory(&userFeatureData, sizeof(userFeatureData)); + MOS_UserFeature_ReadValue_ID( + nullptr, + __MEDIA_USER_FEATURE_VALUE_AUX_TABLE_16K_GRANULAR_ID, + &userFeatureData, + (MOS_CONTEXT_HANDLE)nullptr); + + MEDIA_WR_WA(waTable, Wa16KInputHeightNV12Planar420, 1); + + /*software wa to disable calculate the UV offset by gmmlib + CPU blt call will add/remove padding on the platform*/ + MEDIA_WR_WA(waTable, WaDisableGmmLibOffsetInDeriveImage, 1); + + /* Turn off MMC for codec, need to remove once turn it on */ + MEDIA_WR_WA(waTable, WaDisableCodecMmc, 0); + + /* Turn off MMC for VPP, need to remove once turn it on */ + MEDIA_WR_WA(waTable, WaDisableVPMmc, 0); + + MEDIA_WR_WA(waTable, WaDisableSetObjectCapture, 1); + + MEDIA_WR_WA(waTable, Wa_Vp9UnalignedHeight, 1); + + MEDIA_WR_WA(waTable, Wa_15013355402, 1); + + MEDIA_WR_WA(waTable, Wa_15014143531, 1); + + MEDIA_WR_WA(waTable, Wa_16021867713, 1); + + return true; +} + + +static struct LinuxDeviceInit lnlDeviceInit = +{ + .productFamily = IGFX_LUNARLAKE, + .InitMediaFeature = InitLnlMediaSkuExt, + .InitMediaWa = InitLnlMediaWaExt, +}; + +static bool lnlDeviceRegister = DeviceInfoFactory:: + RegisterDevice(IGFX_LUNARLAKE, &lnlDeviceInit); diff --git a/media_softlet/linux/xe2_lpm/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm/ddi/media_srcs.cmake new file mode 100644 index 0000000000..c521ec86ef --- /dev/null +++ b/media_softlet/linux/xe2_lpm/ddi/media_srcs.cmake @@ -0,0 +1,35 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set(TMP_SOURCES_ + ${CMAKE_CURRENT_LIST_DIR}/caps_register_specific_xe2_lpm.cpp + ${CMAKE_CURRENT_LIST_DIR}/media_sysinfo_lnl.cpp + ${CMAKE_CURRENT_LIST_DIR}/media_sku_wa_lnl.cpp +) + +set(SOFTLET_DDI_SOURCES_ + ${SOFTLET_DDI_SOURCES_} + ${TMP_SOURCES_} + ) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm/ddi/media_sysinfo_lnl.cpp b/media_softlet/linux/xe2_lpm/ddi/media_sysinfo_lnl.cpp new file mode 100644 index 0000000000..a00b7ebd18 --- /dev/null +++ b/media_softlet/linux/xe2_lpm/ddi/media_sysinfo_lnl.cpp @@ -0,0 +1,192 @@ +/*===================== begin_copyright_notice ================================== + +Copyright (c) 2022, Intel Corporation + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +======================= end_copyright_notice ==================================*/ +//! +//! \file media_sysinfo_lnl.cpp +//! + +#include "igfxfmid.h" +#include "linux_system_info.h" +#include "skuwa_factory.h" +#include "linux_skuwa_debug.h" +#include "linux_media_skuwa.h" +#include "linux_shadow_skuwa.h" +#include "media_user_setting_specific.h" + +//extern template class DeviceInfoFactory; +typedef DeviceInfoFactory base_fact; + +#define THREADS_NUMBER_PER_EU 7 + +static bool InitLnlMediaSysInfo(struct GfxDeviceInfo *devInfo, MEDIA_GT_SYSTEM_INFO *sysInfo) +{ + if ((devInfo == nullptr) || (sysInfo == nullptr)) + { + DEVINFO_ERROR("null ptr is passed\n"); + return false; + } + + if (!sysInfo->SliceCount) + { + sysInfo->SliceCount = devInfo->SliceCount; + } + + if (!sysInfo->SubSliceCount) + { + sysInfo->SubSliceCount = devInfo->SubSliceCount; + } + + if (!sysInfo->EUCount) + { + sysInfo->EUCount = devInfo->EUCount; + } + + sysInfo->L3BankCount = devInfo->L3BankCount; + sysInfo->VEBoxInfo.Instances.Bits.VEBox0Enabled = 1; + sysInfo->MaxEuPerSubSlice = devInfo->MaxEuPerSubSlice; + sysInfo->MaxSlicesSupported = sysInfo->SliceCount; + sysInfo->MaxSubSlicesSupported = sysInfo->SubSliceCount; + + sysInfo->VEBoxInfo.NumberOfVEBoxEnabled = 0; /*Query the VEBox engine info from KMD*/ + sysInfo->VDBoxInfo.NumberOfVDBoxEnabled = 0; /*Query the VDBox engine info from KMD*/ + + sysInfo->ThreadCount = sysInfo->EUCount * THREADS_NUMBER_PER_EU; + + sysInfo->VEBoxInfo.IsValid = true; + sysInfo->VDBoxInfo.IsValid = true; + + //Media driver does not set the other gtsysinfo fileds such as L3CacheSizeInKb, EdramSizeInKb and LLCCacheSizeInKb now. + //If needed in the future, query them from KMD. + + return true; +} + +static bool InitLnlShadowSku(struct GfxDeviceInfo *devInfo, + SHADOW_MEDIA_FEATURE_TABLE *skuTable, + struct LinuxDriverInfo *drvInfo) +{ + if ((devInfo == nullptr) || (skuTable == nullptr) || (drvInfo == nullptr)) + { + DEVINFO_ERROR("null ptr is passed\n"); + return false; + } + + skuTable->FtrVERing = 0; + if (drvInfo->hasVebox) + { + skuTable->FtrVERing = 1; + } + + skuTable->FtrVcs2 = 0; + + skuTable->FtrULT = 0; + + skuTable->FtrPPGTT = 1; + skuTable->FtrIA32eGfxPTEs = 1; + + skuTable->FtrDisplayYTiling = 1; + skuTable->FtrEDram = devInfo->hasERAM; + + bool disableMMC = false; + skuTable->FtrE2ECompression = 1; + // Disable MMC for all components if set reg key + MOS_USER_FEATURE_VALUE_DATA userFeatureData; + MOS_ZeroMemory(&userFeatureData, sizeof(userFeatureData)); + MOS_UserFeature_ReadValue_ID( + nullptr, + __MEDIA_USER_FEATURE_VALUE_DISABLE_MMC_ID, + &userFeatureData, + (MOS_CONTEXT_HANDLE)nullptr); + if (userFeatureData.bData) + { + disableMMC = true; + } + + if (disableMMC) + { + skuTable->FtrE2ECompression = 0; + } + + skuTable->FtrLinearCCS = 1; + skuTable->FtrTileY = 0; + skuTable->FtrFlatPhysCCS = 1; + + return true; +} + +static bool InitLnlShadowWa(struct GfxDeviceInfo *devInfo, + SHADOW_MEDIA_WA_TABLE *waTable, + struct LinuxDriverInfo *drvInfo) +{ + if ((devInfo == nullptr) || (waTable == nullptr) || (drvInfo == nullptr)) + { + DEVINFO_ERROR("null ptr is passed\n"); + return false; + } + + /* by default PPGTT is enabled */ + waTable->WaForceGlobalGTT = 0; + if (drvInfo->hasPpgtt == 0) + { + waTable->WaForceGlobalGTT = 1; + } + + waTable->WaDisregardPlatformChecks = 1; + waTable->Wa4kAlignUVOffsetNV12LinearSurface = 1; + + //source and recon surfaces need to be aligned to the LCU size + waTable->WaAlignYUVResourceToLCU = 1; + + return true; +} + + +static struct GfxDeviceInfo lnlInfo = { + .platformType = PLATFORM_MOBILE, + .productFamily = IGFX_LUNARLAKE, + .displayFamily = IGFX_UNKNOWN_CORE, + .renderFamily = IGFX_XE2_HPG_CORE, + .mediaFamily = IGFX_XE2_LPM, + .eGTType = GTTYPE_GT2, + .L3CacheSizeInKb = 0, + .L3BankCount = 0, + .EUCount = 0, + .SliceCount = 0, + .SubSliceCount = 0, + .MaxEuPerSubSlice = 0, + .isLCIA = 0, + .hasLLC = 0, + .hasERAM = 0, + .InitMediaSysInfo = InitLnlMediaSysInfo, + .InitShadowSku = InitLnlShadowSku, + .InitShadowWa = InitLnlShadowWa, +}; + +static bool lnlDevice6480 = DeviceInfoFactory:: + RegisterDevice(0x6480, &lnlInfo); + +static bool lnlDevice64a0 = DeviceInfoFactory:: + RegisterDevice(0x64A0, &lnlInfo); + +static bool lnlDevice64B0 = DeviceInfoFactory:: + RegisterDevice(0x64B0, &lnlInfo); diff --git a/media_softlet/linux/xe2_lpm/media_srcs.cmake b/media_softlet/linux/xe2_lpm/media_srcs.cmake new file mode 100644 index 0000000000..26bf2f5558 --- /dev/null +++ b/media_softlet/linux/xe2_lpm/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/ddi/capstable_data_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/ddi/capstable_data_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..1c925f5e60 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/ddi/capstable_data_xe2_lpm_r0_specific.h @@ -0,0 +1,443 @@ +/* +* Copyright (c) 2023, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_xe2_lpm_r0_specific.h +//! \brief This file defines the data for xe2_lpm r0 +//! + +#ifndef __CAPSTABLE_DATA_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_vp_xe2_lpm_r0_specific.h" +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) +#include "capstable_data_hevc_encode_xe2_lpm_r0_specific.h" +#endif +#if defined(_AVC_ENCODE_VDENC_SUPPORTED) +#include "capstable_data_avc_encode_xe2_lpm_r0_specific.h" +#endif +#if defined(_JPEG_ENCODE_SUPPORTED) +#include "capstable_data_jpeg_encode_xe2_lpm_r0_specific.h" +#endif +#if defined(_AV1_ENCODE_VDENC_SUPPORTED) +#include "capstable_data_av1_encode_xe2_lpm_r0_specific.h" +#endif +#if defined(_VP9_ENCODE_VDENC_SUPPORTED) +#include "capstable_data_vp9_encode_xe2_lpm_r0_specific.h" +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) +#include "capstable_data_hevc_decode_xe2_lpm_r0_specific.h" +#endif +#if defined(_AVC_DECODE_SUPPORTED) +#include "capstable_data_avc_decode_xe2_lpm_r0_specific.h" +#endif +#if defined(_AV1_DECODE_SUPPORTED) +#include "capstable_data_av1_decode_xe2_lpm_r0_specific.h" +#endif +#if defined(_JPEG_DECODE_SUPPORTED) +#include "capstable_data_jpeg_decode_xe2_lpm_r0_specific.h" +#endif +#if defined(_MPEG2_DECODE_SUPPORTED) +#include "capstable_data_mpeg2_decode_xe2_lpm_r0_specific.h" +#endif +#if defined(_VP8_DECODE_SUPPORTED) +#include "capstable_data_vp8_decode_xe2_lpm_r0_specific.h" +#endif +#if defined(_VP9_DECODE_SUPPORTED) +#include "capstable_data_vp9_decode_xe2_lpm_r0_specific.h" +#endif +#if defined(_VVC_DECODE_SUPPORTED) +#include "capstable_data_vvc_decode_xe2_lpm_r0_specific.h" +#endif + +#include "capstable_data_image_format_definition.h" + +#define IP_VERSION_XE2_LPM 0x1500 +const PlatformInfo plt_Xe2_Lpm_r0 = {IP_VERSION_XE2_LPM, 0}; + +static const std::map imgtbl_Xe2_lpm_r0 +{ + {VA_FOURCC_BGRA, &formatBGRA}, + {VA_FOURCC_ARGB, &formatARGB}, + {VA_FOURCC_RGBA, &formatRGBA}, + {VA_FOURCC_ABGR, &formatABGR}, + {VA_FOURCC_BGRX, &formatBGRX}, + {VA_FOURCC_XRGB, &formatXRGB}, + {VA_FOURCC_RGBX, &formatRGBX}, + {VA_FOURCC_XBGR, &formatXBGR}, + {VA_FOURCC_A2R10G10B10, &formatA2R10G10B10}, + {VA_FOURCC_A2B10G10R10, &formatA2B10G10R10}, + {VA_FOURCC_X2R10G10B10, &formatX2R10G10B10}, + {VA_FOURCC_X2B10G10R10, &formatX2B10G10R10}, + {VA_FOURCC_RGB565, &formatRGB565}, + {VA_FOURCC_AYUV, &formatAYUV}, + {VA_FOURCC_Y800, &formatY800}, + {VA_FOURCC_NV12, &formatNV12}, + {VA_FOURCC_NV21, &formatNV21}, + {VA_FOURCC_YUY2, &formatYUY2}, + {VA_FOURCC_UYVY, &formatUYVY}, + {VA_FOURCC_YV12, &formatYV12}, + {VA_FOURCC_I420, &formatI420}, + {VA_FOURCC_411P, &format411P}, + {VA_FOURCC_422H, &format422H}, + {VA_FOURCC_422V, &format422V}, + {VA_FOURCC_444P, &format444P}, + {VA_FOURCC_IMC3, &formatIMC3}, + {VA_FOURCC_P010, &formatP010}, + {VA_FOURCC_P012, &formatP012}, + {VA_FOURCC_P016, &formatP016}, + {VA_FOURCC_Y210, &formatY210}, +#if VA_CHECK_VERSION(1, 9, 0) + {VA_FOURCC_Y212, &formatY212}, +#endif + {VA_FOURCC_Y216, &formatY216}, + {VA_FOURCC_Y410, &formatY410}, +#if VA_CHECK_VERSION(1, 9, 0) + {VA_FOURCC_Y412, &formatY412}, +#endif + {VA_FOURCC_Y416, &formatY416}, + {VA_FOURCC_RGBP, &formatRGBP}, + {VA_FOURCC_BGRP, &formatBGRP}, +#if VA_CHECK_VERSION(1, 13, 0) + {VA_FOURCC_XYUV, &formatXYUV}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCSccMain444_10_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCSccMain444_10_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCSccMain444_10Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCSccMain444_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCSccMain444_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCSccMain444Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCSccMain10_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCSccMain10_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCSccMain10Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCSccMain_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCSccMain_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCSccMainDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain444_10_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCMain444_10_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMain444_10Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain444_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCMain444_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMain444Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain10_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCMain10_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMain10Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain_Xe2_Lpm_r0 +{ +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileHEVCMain_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMainDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain12_Xe2_Lpm_r0 +{ +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMain12Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain422_10_Xe2_Lpm_r0 +{ +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMain422_10Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain422_12_Xe2_Lpm_r0 +{ +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMain422_12Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileHEVCMain444_12_Xe2_Lpm_r0 +{ +#if defined(_HEVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileHEVCMain444_12Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileH264Main_Xe2_Lpm_r0 +{ +#if defined(_AVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileH264Main_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_AVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileH264MainDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileH264High_Xe2_Lpm_r0 +{ +#if defined(_AVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileH264High_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_AVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileH264HighDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileH264ConstrainedBaseline_Xe2_Lpm_r0 +{ +#if defined(_AVC_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileH264ConstrainedBaseline_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_AVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileH264ConstrainedBaselineDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileJPEGBaseline_Xe2_Lpm_r0 +{ +#if defined(_JPEG_ENCODE_SUPPORTED) + {VAEntrypointEncPicture, &entrypointMap_VAProfileJPEGBaseline_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_JPEG_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileJPEGBaselineDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileAV1Profile0_Xe2_Lpm_r0 +{ +#if defined(_AV1_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileAV1Profile0_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_AV1_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileAV1Profile0Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileVP9Profile0_Xe2_Lpm_r0 +{ +#if defined(_VP9_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileVP9Profile0_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_VP9_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileVP9Profile0Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileVP9Profile1_Xe2_Lpm_r0 +{ +#if defined(_VP9_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileVP9Profile1_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_VP9_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileVP9Profile1Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileVP9Profile2_Xe2_Lpm_r0 +{ +#if defined(_VP9_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileVP9Profile2_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_VP9_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileVP9Profile2Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileVP9Profile3_Xe2_Lpm_r0 +{ +#if defined(_VP9_ENCODE_VDENC_SUPPORTED) + {VAEntrypointEncSlice, &entrypointMap_VAProfileVP9Profile3_Data_Xe2_Lpm_r0}, +#endif + +#if defined(_VP9_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileVP9Profile3Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileMPEG2Simple_Xe2_Lpm_r0 +{ +#if defined(_MPEG2_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileMPEG2SimpleDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileMPEG2Main_Xe2_Lpm_r0 +{ +#if defined(_MPEG2_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileMPEG2MainDec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileVP8Version0_3_Xe2_Lpm_r0 +{ +#if defined(_VP8_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileVP8Version0_3Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileVVCMain10_Xe2_Lpm_r0 +{ +#if defined(_VVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileVVCMain10Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +static const EntrypointMap entrypointMap_VAProfileVVCMultilayerMain10_Xe2_Lpm_r0 +{ +#if defined(_VVC_DECODE_SUPPORTED) + {VAEntrypointVLD, &entrypointMap_VAProfileVVCMultilayerMain10Dec_Data_Xe2_Lpm_r0}, +#endif +}; + +//! +//! \brief ProfileMap for Xe2_Lpm_r0 +//! +//! \brief Definion for ProfileMap +//! +static const ProfileMap profileMap_Xe2_Lpm_r0 +{ + {VAProfileNone, &entrypointMap_VAProfileNone_Xe2_lpm_r0}, +#if defined(_HEVC_ENCODE_VDENC_SUPPORTED) || defined(_HEVC_DECODE_SUPPORTED) + {VAProfileHEVCSccMain444_10, &entrypointMap_VAProfileHEVCSccMain444_10_Xe2_Lpm_r0}, + {VAProfileHEVCSccMain444, &entrypointMap_VAProfileHEVCSccMain444_Xe2_Lpm_r0}, + {VAProfileHEVCSccMain10, &entrypointMap_VAProfileHEVCSccMain10_Xe2_Lpm_r0}, + {VAProfileHEVCSccMain, &entrypointMap_VAProfileHEVCSccMain_Xe2_Lpm_r0}, + {VAProfileHEVCMain444_10, &entrypointMap_VAProfileHEVCMain444_10_Xe2_Lpm_r0}, + {VAProfileHEVCMain444, &entrypointMap_VAProfileHEVCMain444_Xe2_Lpm_r0}, + {VAProfileHEVCMain10, &entrypointMap_VAProfileHEVCMain10_Xe2_Lpm_r0}, + {VAProfileHEVCMain, &entrypointMap_VAProfileHEVCMain_Xe2_Lpm_r0}, +#endif + +#if defined(_HEVC_DECODE_SUPPORTED) + {VAProfileHEVCMain12, &entrypointMap_VAProfileHEVCMain12_Xe2_Lpm_r0}, + {VAProfileHEVCMain422_10, &entrypointMap_VAProfileHEVCMain422_10_Xe2_Lpm_r0}, + {VAProfileHEVCMain422_12, &entrypointMap_VAProfileHEVCMain422_12_Xe2_Lpm_r0}, + {VAProfileHEVCMain444_12, &entrypointMap_VAProfileHEVCMain444_12_Xe2_Lpm_r0}, +#endif + +#if defined(_AVC_ENCODE_VDENC_SUPPORTED) || defined(_AVC_DECODE_SUPPORTED) + {VAProfileH264Main, &entrypointMap_VAProfileH264Main_Xe2_Lpm_r0}, + {VAProfileH264High, &entrypointMap_VAProfileH264High_Xe2_Lpm_r0}, + {VAProfileH264ConstrainedBaseline, &entrypointMap_VAProfileH264ConstrainedBaseline_Xe2_Lpm_r0}, +#endif + +#if defined(_JPEG_ENCODE_SUPPORTED) || defined(_JPEG_DECODE_SUPPORTED) + {VAProfileJPEGBaseline, &entrypointMap_VAProfileJPEGBaseline_Xe2_Lpm_r0}, +#endif + +#if defined(_AV1_ENCODE_VDENC_SUPPORTED) || defined(_AV1_DECODE_SUPPORTED) + {VAProfileAV1Profile0, &entrypointMap_VAProfileAV1Profile0_Xe2_Lpm_r0}, +#endif + +#if defined(_VP9_ENCODE_VDENC_SUPPORTED) || defined(_VP9_DECODE_SUPPORTED) + {VAProfileVP9Profile3, &entrypointMap_VAProfileVP9Profile3_Xe2_Lpm_r0}, + {VAProfileVP9Profile2, &entrypointMap_VAProfileVP9Profile2_Xe2_Lpm_r0}, + {VAProfileVP9Profile1, &entrypointMap_VAProfileVP9Profile1_Xe2_Lpm_r0}, + {VAProfileVP9Profile0, &entrypointMap_VAProfileVP9Profile0_Xe2_Lpm_r0}, +#endif + +#if defined(_MPEG2_DECODE_SUPPORTED) + {VAProfileMPEG2Simple, &entrypointMap_VAProfileMPEG2Simple_Xe2_Lpm_r0}, + {VAProfileMPEG2Main, &entrypointMap_VAProfileMPEG2Main_Xe2_Lpm_r0}, +#endif + +#if defined(_VP8_DECODE_SUPPORTED) + {VAProfileVP8Version0_3, &entrypointMap_VAProfileVP8Version0_3_Xe2_Lpm_r0}, +#endif + +#if defined(_VVC_DECODE_SUPPORTED) + {(VAProfile)VAProfileVVCMain10, &entrypointMap_VAProfileVVCMain10_Xe2_Lpm_r0}, + {(VAProfile)VAProfileVVCMultilayerMain10, &entrypointMap_VAProfileVVCMultilayerMain10_Xe2_Lpm_r0}, +#endif +}; + +static const CapsData capsData_Xe2_Lpm_r0 +{ + &profileMap_Xe2_Lpm_r0, + &imgtbl_Xe2_lpm_r0 +}; + +#endif //__CAPSTABLE_DATA_XE2_LPM_R0_SPECIFIC_H__ diff --git a/media_softlet/linux/xe2_lpm_r0/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/ddi/media_srcs.cmake new file mode 100644 index 0000000000..ba3e9e5857 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/ddi/media_srcs.cmake @@ -0,0 +1,33 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set(TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_xe2_lpm_r0_specific.h +) + +set(SOFTLET_DDI_HEADERS_ + ${SOFTLET_DDI_HEADERS_} + ${TMP_HEADERS_} +) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/decode/av1/ddi/capstable_data_av1_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/av1/ddi/capstable_data_av1_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..8cb1027699 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/av1/ddi/capstable_data_av1_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_av1_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_AV1_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_AV1_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" + +#ifndef VA_CENC_TYPE_NONE +#define VA_CENC_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileAV1Profile0_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_CENC_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_CENC_TYPE_NONE, VA_DEC_PROCESSING_NONE}, +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileAV1Profile0_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING_NONE}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +#if VA_CHECK_VERSION(1, 11, 0) + {VAConfigAttribDecAV1Features, 1}, +#endif +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileAV1Profile0_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileAV1Profile0Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileAV1Profile0_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileAV1Profile0_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileAV1Profile0_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/av1/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/av1/ddi/media_srcs.cmake new file mode 100644 index 0000000000..a603541c05 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/av1/ddi/media_srcs.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_av1_decode_xe2_lpm_r0_specific.h +) + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/av1/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/av1/media_srcs.cmake new file mode 100644 index 0000000000..94f84ef3d1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/av1/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/decode/avc/ddi/capstable_data_avc_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/avc/ddi/capstable_data_avc_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..2fc0072c97 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/avc/ddi/capstable_data_avc_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2022-2023, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_avc_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_AVC_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_AVC_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" + +#ifndef VA_ENCRYPTION_TYPE_NONE +#define VA_ENCRYPTION_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileH264Main_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileH264High_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileH264ConstrainedBaseline_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileH264Main_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileH264High_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileH264ConstrainedBaseline_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264Main_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA| VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264High_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA| VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264ConstrainedBaseline_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA| VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EntrypointMap +//! +static const EntrypointData entrypointMap_VAProfileH264MainDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileH264Main_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileH264Main_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileH264Main_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileH264HighDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileH264High_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileH264High_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileH264High_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileH264ConstrainedBaselineDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileH264ConstrainedBaseline_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileH264ConstrainedBaseline_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileH264ConstrainedBaseline_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/avc/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/avc/ddi/media_srcs.cmake new file mode 100644 index 0000000000..fb43a41324 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/avc/ddi/media_srcs.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_avc_decode_xe2_lpm_r0_specific.h +) + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/avc/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/avc/media_srcs.cmake new file mode 100644 index 0000000000..94f84ef3d1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/avc/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/decode/hevc/ddi/capstable_data_hevc_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/hevc/ddi/capstable_data_hevc_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..82399350d4 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/hevc/ddi/capstable_data_hevc_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,493 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_hevc_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_HEVC_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_HEVC_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" + +#ifndef VA_ENCRYPTION_TYPE_NONE +#define VA_ENCRYPTION_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileHEVCMain422_10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCSccMain_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCSccMain444_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCMain444_12_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCSccMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCSccMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCMain422_12_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCMain_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCMain12_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileHEVCMain444_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileHEVCMain_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCMain12_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV420_12 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCMain422_10_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV422_10 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCMain422_12_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV420_12 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV422_10 | VA_RT_FORMAT_YUV422_12 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCMain444_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCSccMain444_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV422_10 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCSccMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV422_10 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCMain444_12_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV420_12 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV422_10 | VA_RT_FORMAT_YUV422_12 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_YUV444_12 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCSccMain_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileHEVCSccMain10_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV400}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain12_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P012}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P016}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain422_10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_YUY2}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y210}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain422_12_VAEntrypointVLD_Xe2_Lpm_r0 = +{ +#if VA_CHECK_VERSION(1, 9, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y212}}}, +#endif + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y216}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P012}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain444_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, +#if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, +#endif + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain444_12_VAEntrypointVLD_Xe2_Lpm_r0 = +{ +#if VA_CHECK_VERSION(1, 9, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y412}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y212}}}, +#endif + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y416}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P012}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain444_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_YUY2}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y210}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, +#if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, +#endif + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, +#if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, +#endif + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EntrypointMap +//! +static const EntrypointData entrypointMap_VAProfileHEVCMainDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain10Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain12Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain12_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain12_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain12_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain422_10Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain422_10_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain422_10_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain422_10_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain422_12Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain422_12_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain422_12_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain422_12_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain444Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain444_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain444_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain444_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMain444Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain444_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain444_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain444_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain444_10Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain444_10_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain444_10_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMain444_10Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain444_10_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain444_10_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain444_10_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain444_12Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain444_12_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain444_12_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain444_12_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMainDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMain10Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain10_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/hevc/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/hevc/ddi/media_srcs.cmake new file mode 100644 index 0000000000..30a999e6ff --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/hevc/ddi/media_srcs.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_hevc_decode_xe2_lpm_r0_specific.h +) + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/hevc/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/hevc/media_srcs.cmake new file mode 100644 index 0000000000..5a00add372 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/hevc/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/decode/jpeg/ddi/capstable_data_jpeg_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/jpeg/ddi/capstable_data_jpeg_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..b4261d5b91 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/jpeg/ddi/capstable_data_jpeg_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,88 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_jpeg_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_JPEG_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_JPEG_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" + +#ifndef VA_ENCRYPTION_TYPE_NONE +#define VA_ENCRYPTION_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileJPEGBaseline_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileJPEGBaseline_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV400 | VA_RT_FORMAT_YUV411 | VA_RT_FORMAT_RGB16 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribDecJPEG, ((1 << VA_ROTATION_NONE) | (1 << VA_ROTATION_90) | (1 << VA_ROTATION_180) | (1 << VA_ROTATION_270))}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileJPEGBaseline_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_IMC3}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y800}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_411P}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_422H}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_422V}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_444P}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_RGBP}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EntrypointMap +//! +static const EntrypointData entrypointMap_VAProfileJPEGBaselineDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileJPEGBaseline_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileJPEGBaseline_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileJPEGBaseline_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/jpeg/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/jpeg/ddi/media_srcs.cmake new file mode 100644 index 0000000000..805886738f --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/jpeg/ddi/media_srcs.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_jpeg_decode_xe2_lpm_r0_specific.h +) + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/jpeg/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/jpeg/media_srcs.cmake new file mode 100644 index 0000000000..94f84ef3d1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/jpeg/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/decode/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/media_srcs.cmake new file mode 100644 index 0000000000..79935ad983 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/media_srcs.cmake @@ -0,0 +1,44 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +if(${AV1_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(av1) +endif() +if(${AVC_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(avc) +endif() +if(${JPEG_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(jpeg) +endif() +if(${HEVC_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(hevc) +endif() +if(${MPEG2_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(mpeg2) +endif() +if(${VP8_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(vp8) +endif() +if(${VP9_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(vp9) +endif() +if(${VVC_Decode_Supported} STREQUAL "yes") + media_include_subdirectory(vvc) +endif() \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/ddi/capstable_data_mpeg2_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/ddi/capstable_data_mpeg2_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..d78a969bc1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/ddi/capstable_data_mpeg2_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,113 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_mpeg2_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_MPEG2_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_MPEG2_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" + +#ifndef VA_ENCRYPTION_TYPE_NONE +#define VA_ENCRYPTION_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for bitset value +//! +//! \brief Definition for ConfigDataList +static ConfigDataList configDataList_VAProfileMPEG2Simple_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE} +}; + +static ConfigDataList configDataList_VAProfileMPEG2Main_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileMPEG2Simple_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING_NONE}, + {VAConfigAttribMaxPictureWidth, CODEC_2K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_2K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileMPEG2Main_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING_NONE}, + {VAConfigAttribMaxPictureWidth, CODEC_2K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_2K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileMPEG2Simple_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_2K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_2K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileMPEG2Main_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_2K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_2K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EntrypointMap +//! +static const EntrypointData entrypointMap_VAProfileMPEG2SimpleDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileMPEG2Simple_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileMPEG2Simple_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileMPEG2Simple_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileMPEG2MainDec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileMPEG2Main_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileMPEG2Main_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileMPEG2Main_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/ddi/media_srcs.cmake new file mode 100644 index 0000000000..e90bd0ebe6 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/ddi/media_srcs.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_mpeg2_decode_xe2_lpm_r0_specific.h +) + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/media_srcs.cmake new file mode 100644 index 0000000000..94f84ef3d1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/mpeg2/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vp8/ddi/capstable_data_vp8_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/vp8/ddi/capstable_data_vp8_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..75f424f52d --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vp8/ddi/capstable_data_vp8_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,80 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_vp8_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_VP8_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_VP8_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" + +#ifndef VA_ENCRYPTION_TYPE_NONE +#define VA_ENCRYPTION_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileVP8Version0_3_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileVP8Version0_3_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING_NONE}, + {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP8Version0_3_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EntrypointMap +//! +static const EntrypointData entrypointMap_VAProfileVP8Version0_3Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP8Version0_3_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileVP8Version0_3_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP8Version0_3_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vp8/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/vp8/ddi/media_srcs.cmake new file mode 100644 index 0000000000..34df59f9ca --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vp8/ddi/media_srcs.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_vp8_decode_xe2_lpm_r0_specific.h +) + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vp8/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/vp8/media_srcs.cmake new file mode 100644 index 0000000000..94f84ef3d1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vp8/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vp9/ddi/capstable_data_vp9_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/vp9/ddi/capstable_data_vp9_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..90ef16eb7b --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vp9/ddi/capstable_data_vp9_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,197 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_vp9_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_VP9_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_VP9_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" + +#ifndef VA_ENCRYPTION_TYPE_NONE +#define VA_ENCRYPTION_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileVP9Profile0_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileVP9Profile2_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileVP9Profile1_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +static ConfigDataList configDataList_VAProfileVP9Profile3_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_NORMAL, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING_NONE}, + {VA_DEC_SLICE_MODE_BASE, VA_ENCRYPTION_TYPE_NONE, VA_DEC_PROCESSING} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileVP9Profile0_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileVP9Profile1_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileVP9Profile2_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV420_12}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +static const AttribList attribList_VAProfileVP9Profile3_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV422_10 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_YUV422_12 | VA_RT_FORMAT_YUV444_12}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL | VA_DEC_SLICE_MODE_BASE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_MAX_PIC_HEIGHT}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile2_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, { VA_FOURCC_P012}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P016}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile1_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, +#if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, +#endif + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile3_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, +#if VA_CHECK_VERSION(1, 9, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y412}}}, +#endif + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y416}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile0_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EntrypointMap +//! +static const EntrypointData entrypointMap_VAProfileVP9Profile0Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile0_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile0_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile0_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileVP9Profile1Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile1_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile1_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile1_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileVP9Profile2Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile2_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile2_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile2_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileVP9Profile3Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile3_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile3_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile3_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vp9/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/vp9/ddi/media_srcs.cmake new file mode 100644 index 0000000000..0ad3c352e9 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vp9/ddi/media_srcs.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_vp9_decode_xe2_lpm_r0_specific.h +) + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vp9/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/vp9/media_srcs.cmake new file mode 100644 index 0000000000..94f84ef3d1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vp9/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vvc/ddi/capstable_data_vvc_decode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/decode/vvc/ddi/capstable_data_vvc_decode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..d2fee85a8b --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vvc/ddi/capstable_data_vvc_decode_xe2_lpm_r0_specific.h @@ -0,0 +1,128 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_vvc_decode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_VVC_DECODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_VVC_DECODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_common.h" +#include "va_dec_vvc_private.h" +#include "codec_def_decode_vvc.h" + +#ifndef VA_CENC_TYPE_NONE +#define VA_CENC_TYPE_NONE 0x00000000 +#endif + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileVVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_CENC_TYPE_NONE, VA_DEC_PROCESSING_NONE}, +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileVVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_VVC_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_VVC_MAX_PIC_HEIGHT}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING_NONE}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_VVC_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_VVC_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileVVCMain10Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVVCMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileVVCMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVVCMain10_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +//! +//! \brief Definition for ConfigDataList +//! +static ConfigDataList configDataList_VAProfileVVCMultilayerMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VA_DEC_SLICE_MODE_NORMAL, VA_CENC_TYPE_NONE, VA_DEC_PROCESSING_NONE}, +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileVVCMultilayerMain10_VAEntrypointVLD_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_VVC_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_16K_VVC_MAX_PIC_HEIGHT}, + {VAConfigAttribDecSliceMode, VA_DEC_SLICE_MODE_NORMAL}, + {VAConfigAttribDecProcessing, VA_DEC_PROCESSING_NONE}, + {VAConfigAttribEncryption, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_DECODE}, + {VAConfigAttribCustomRoundingControl, 1}, +}; + +//! +//! \brief Definition for ProfileSurfaceAttribInfo +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVVCMultilayerMain10_VAEntrypointVLD_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_VVC_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_VVC_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileVVCMultilayerMain10Dec_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVVCMultilayerMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &configDataList_VAProfileVVCMultilayerMain10_VAEntrypointVLD_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVVCMultilayerMain10_VAEntrypointVLD_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vvc/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/vvc/ddi/media_srcs.cmake new file mode 100644 index 0000000000..f488a591ec --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vvc/ddi/media_srcs.cmake @@ -0,0 +1,34 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set(TMP_HEADERS_ "") + +if(${VVC_Decode_Supported} STREQUAL "yes") + set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_vvc_decode_xe2_lpm_r0_specific.h + ) +endif() + +set (HEADERS_ + ${HEADERS_} + ${TMP_HEADERS_} +) + +media_add_curr_to_include_path() diff --git a/media_softlet/linux/xe2_lpm_r0/decode/vvc/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/decode/vvc/media_srcs.cmake new file mode 100644 index 0000000000..94f84ef3d1 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/decode/vvc/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/encode/av1/ddi/capstable_data_av1_encode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/encode/av1/ddi/capstable_data_av1_encode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..b563081a9f --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/av1/ddi/capstable_data_av1_encode_xe2_lpm_r0_specific.h @@ -0,0 +1,115 @@ +/* +* Copyright (c) 2023, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_av1_encode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_AV1_ENCODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_AV1_ENCODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_encode_av1.h" + +//! +//! \brief Definition for bitset value +//! +static const VAConfigAttribValEncAV1Ext2 VAProfileAV1Profile0_VAEntrypointEncSlice_encAV1Ext2_Xe2_Lpm_r0 +{ + {TILE_SIZE_BYTES - 1,3,AV1_TX_MODE_SELECT_SUPPORTED,511,0} +}; + +static const VAConfigAttribValEncAV1 VAProfileAV1Profile0_VAEntrypointEncSlice_encAV1_Xe2_Lpm_r0 +{ + {0,0,0,0,0,0,1,0,0,0,0,0,1,1,0} +}; + +static const VAConfigAttribValEncAV1Ext1 VAProfileAV1Profile0_VAEntrypointEncSlice_encAV1Ext1_Xe2_Lpm_r0 +{ + {31,32,1,0} +}; + +static const VAConfigAttribValEncROI VAProfileAV1Profile0_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0 +{ + {0,0,1,0} +}; + +//! \brief Definition for ConfigDataList +static ConfigDataList configDataList_VAProfileAV1Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileAV1Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10}, + {VAConfigAttribEncDynamicScaling, 0}, + {VAConfigAttribEncDirtyRect, VA_ATTRIB_NOT_SUPPORTED}, + {VAConfigAttribEncAV1Ext2, VAProfileAV1Profile0_VAEntrypointEncSlice_encAV1Ext2_Xe2_Lpm_r0.value}, + {VAConfigAttribEncAV1, VAProfileAV1Profile0_VAEntrypointEncSlice_encAV1_Xe2_Lpm_r0.value}, + {VAConfigAttribMaxPictureWidth, CODEC_8K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_8K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncAV1Ext1, VAProfileAV1Profile0_VAEntrypointEncSlice_encAV1Ext1_Xe2_Lpm_r0.value}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_ICQ}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribEncMaxRefFrames, CODEC_AV1_NUM_REFL0P_FRAMES | CODEC_AV1_NUM_REFL1B_FRAMES<<16}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncQuantization, 0}, + {VAConfigAttribEncIntraRefresh, 0}, + {VAConfigAttribEncSkipFrame, 0}, + {VAConfigAttribEncROI, VAProfileAV1Profile0_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribFEIMVPredictors, 0}, +}; + +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileAV1Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {128}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {96}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileAV1Profile0_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileAV1Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileAV1Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileAV1Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/encode/av1/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/av1/ddi/media_srcs.cmake new file mode 100644 index 0000000000..391b4937ea --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/av1/ddi/media_srcs.cmake @@ -0,0 +1,33 @@ +# Copyright (c) 2023, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_av1_encode_xe2_lpm_r0_specific.h +) + +set (SOFTLET_DDI_HEADERS_ + ${SOFTLET_DDI_HEADERS_} + ${TMP_HEADERS_} +) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) diff --git a/media_softlet/linux/xe2_lpm_r0/encode/av1/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/av1/media_srcs.cmake new file mode 100644 index 0000000000..1c7c836b96 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/av1/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2023, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) diff --git a/media_softlet/linux/xe2_lpm_r0/encode/avc/ddi/capstable_data_avc_encode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/encode/avc/ddi/capstable_data_avc_encode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..dd4988d7e9 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/avc/ddi/capstable_data_avc_encode_xe2_lpm_r0_specific.h @@ -0,0 +1,232 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_avc_encode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_AVC_ENCODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_AVC_ENCODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_encode_avc.h" +//! +//! \brief Definition for bitset value +//! +static const VAConfigAttribValEncROI VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0 +{ + {ENCODE_VDENC_AVC_MAX_ROI_NUMBER_ADV,0,1,0} +}; + +static const VAConfigAttribValMaxFrameSize VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0 +{ + {1,1,0} +}; + +//! \brief Definition for ConfigDataList +static const ConfigDataList configDataList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0}, + {VA_RC_QVBR, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC, 0}, +#endif + {VA_RC_CBR | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_MB, 0}, +}; + +static const ConfigDataList configDataList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0}, + {VA_RC_QVBR, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC, 0}, +#endif + {VA_RC_CBR | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_MB, 0}, +}; + +static const ConfigDataList configDataList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0}, + {VA_RC_QVBR, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC, 0}, +#endif + {VA_RC_CBR | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_MB, 0}, + +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList AttribList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_ICQ +#if VA_CHECK_VERSION(1, 10, 0) + | VA_RC_TCBRC +#endif + }, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES | (DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_RAB_AVC << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_AVC_MAX_SLICES_SUPPORTED}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, + {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncSkipFrame, 1}, + {VAConfigAttribEncROI, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 4}, + {VAConfigAttribMaxFrameSize, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0.value}, + {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, + {VAConfigAttribCustomRoundingControl, 1}, + {VAConfigAttribFEIMVPredictors, DDI_CODEC_FEI_MAX_NUM_MVPREDICTOR}, +}; + +static const AttribList AttribList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_ICQ +#if VA_CHECK_VERSION(1, 10, 0) + | VA_RC_TCBRC +#endif + }, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES | (DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_RAB_AVC << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_AVC_MAX_SLICES_SUPPORTED}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, + {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncSkipFrame, 1}, + {VAConfigAttribEncROI, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 4}, + {VAConfigAttribMaxFrameSize, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0.value}, + {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, + {VAConfigAttribCustomRoundingControl, 1}, + {VAConfigAttribFEIMVPredictors, DDI_CODEC_FEI_MAX_NUM_MVPREDICTOR}, +}; + +static const AttribList AttribList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_ICQ +#if VA_CHECK_VERSION(1, 10, 0) + | VA_RC_TCBRC +#endif + }, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES | (DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_RAB_AVC << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_AVC_MAX_SLICES_SUPPORTED}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, + {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_TRELLIS_SUPPORTED}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncSkipFrame, 1}, + {VAConfigAttribEncROI, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 4}, + {VAConfigAttribMaxFrameSize, VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_maxFrameSize_Xe2_Lpm_r0.value}, + {VAConfigAttribMaxPictureWidth, CODEC_4K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_4K_MAX_PIC_HEIGHT}, + {VAConfigAttribCustomRoundingControl, 1}, + {VAConfigAttribFEIMVPredictors, DDI_CODEC_FEI_MAX_NUM_MVPREDICTOR}, +}; + +//! +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_4K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {32}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileH264Main_Data_Xe2_Lpm_r0 +{ + &AttribList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileH264Main_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileH264High_Data_Xe2_Lpm_r0 +{ + &AttribList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileH264High_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileH264ConstrainedBaseline_Data_Xe2_Lpm_r0 +{ + &AttribList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileH264ConstrainedBaseline_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/encode/avc/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/avc/ddi/media_srcs.cmake new file mode 100644 index 0000000000..c54f8b5747 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/avc/ddi/media_srcs.cmake @@ -0,0 +1,33 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_avc_encode_xe2_lpm_r0_specific.h +) + +set (SOFTLET_DDI_HEADERS_ + ${SOFTLET_DDI_HEADERS_} + ${TMP_HEADERS_} +) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/encode/avc/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/avc/media_srcs.cmake new file mode 100644 index 0000000000..d4cabf72d9 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/avc/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/encode/hevc/ddi/capstable_data_hevc_encode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/encode/hevc/ddi/capstable_data_hevc_encode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..ad4ef39b8f --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/hevc/ddi/capstable_data_hevc_encode_xe2_lpm_r0_specific.h @@ -0,0 +1,560 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_hevc_encode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_HEVC_ENCODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_HEVC_ENCODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_encode_hevc.h" + +//! +//! \brief Definion for bitset value +//! +static const VAConfigAttribValEncROI HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0 +{ + {CODECHAL_ENCODE_HEVC_MAX_NUM_ROI,0,1,0} +}; + +//! \brief Definition for ConfigDataList +static const ConfigDataList configDataList_VAProfileHEVCMain_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_CBR | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_MB, 0}, + {VA_RC_ICQ, 0}, + {VA_RC_VCM, 0}, + {VA_RC_QVBR, 0}, + {VA_RC_AVBR, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC, 0}, +#endif + {VA_RC_CBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_ICQ | VA_RC_PARALLEL, 0}, + {VA_RC_VCM | VA_RC_PARALLEL, 0}, + {VA_RC_QVBR | VA_RC_PARALLEL, 0}, + {VA_RC_AVBR | VA_RC_PARALLEL, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC | VA_RC_PARALLEL, 0}, +#endif +}; + +static const ConfigDataList configDataList_VAProfileHEVCMain10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_CBR | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_MB, 0}, + {VA_RC_ICQ, 0}, + {VA_RC_VCM, 0}, + {VA_RC_QVBR, 0}, + {VA_RC_AVBR, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC, 0}, +#endif + {VA_RC_CBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_ICQ | VA_RC_PARALLEL, 0}, + {VA_RC_VCM | VA_RC_PARALLEL, 0}, + {VA_RC_QVBR | VA_RC_PARALLEL, 0}, + {VA_RC_AVBR | VA_RC_PARALLEL, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC | VA_RC_PARALLEL, 0}, +#endif + {VA_RC_VBR | VA_RC_MB, 0} +}; + +static const ConfigDataList configDataList_VAProfileHEVCMain444_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_CBR | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_MB, 0}, + {VA_RC_ICQ, 0}, + {VA_RC_VCM, 0}, + {VA_RC_QVBR, 0}, + {VA_RC_AVBR, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC, 0}, +#endif + {VA_RC_CBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_ICQ | VA_RC_PARALLEL, 0}, + {VA_RC_VCM | VA_RC_PARALLEL, 0}, + {VA_RC_QVBR | VA_RC_PARALLEL, 0}, + {VA_RC_AVBR | VA_RC_PARALLEL, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC | VA_RC_PARALLEL, 0}, +#endif +}; + +static const ConfigDataList configDataList_VAProfileHEVCMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_CBR | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_MB, 0}, + {VA_RC_ICQ, 0}, + {VA_RC_VCM, 0}, + {VA_RC_QVBR, 0}, + {VA_RC_AVBR, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC, 0}, +#endif + {VA_RC_CBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_VBR | VA_RC_PARALLEL | VA_RC_MB, 0}, + {VA_RC_ICQ | VA_RC_PARALLEL, 0}, + {VA_RC_VCM | VA_RC_PARALLEL, 0}, + {VA_RC_QVBR | VA_RC_PARALLEL, 0}, + {VA_RC_AVBR | VA_RC_PARALLEL, 0}, +#if VA_CHECK_VERSION(1, 10, 0) + {VA_RC_TCBRC | VA_RC_PARALLEL, 0}, +#endif +}; + +static const ConfigDataList configDataList_VAProfileHEVCSccMain_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, +}; + +static const ConfigDataList configDataList_VAProfileHEVCSccMain10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, +}; + +static const ConfigDataList configDataList_VAProfileHEVCSccMain444_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, +}; + +static const ConfigDataList configDataList_VAProfileHEVCSccMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, +}; + +#if VA_CHECK_VERSION(1, 12, 0) +static VAConfigAttribValEncHEVCFeatures vaConfigAttribValEncHEVCFeatures = +{ + { + .separate_colour_planes = VA_FEATURE_NOT_SUPPORTED, + .scaling_lists = VA_FEATURE_SUPPORTED, + .amp = VA_FEATURE_REQUIRED, + .sao = VA_FEATURE_SUPPORTED, + .pcm = VA_FEATURE_NOT_SUPPORTED, + .temporal_mvp = VA_FEATURE_SUPPORTED, + .strong_intra_smoothing = VA_FEATURE_NOT_SUPPORTED, + .dependent_slices = VA_FEATURE_NOT_SUPPORTED, + .sign_data_hiding = VA_FEATURE_NOT_SUPPORTED, + .constrained_intra_pred = VA_FEATURE_NOT_SUPPORTED, + .transform_skip = VA_FEATURE_SUPPORTED, + .cu_qp_delta = VA_FEATURE_REQUIRED, + .weighted_prediction = VA_FEATURE_SUPPORTED, + .transquant_bypass = VA_FEATURE_NOT_SUPPORTED, + .deblocking_filter_disable = VA_FEATURE_NOT_SUPPORTED + } +}; + +static VAConfigAttribValEncHEVCBlockSizes vaConfigAttribValEncHEVCBlockSizes = +{ + { + .log2_max_coding_tree_block_size_minus3 = 3, + .log2_min_coding_tree_block_size_minus3 = 3, + .log2_min_luma_coding_block_size_minus3 = 0, + .log2_max_luma_transform_block_size_minus2 = 3, + .log2_min_luma_transform_block_size_minus2 = 0, + .max_max_transform_hierarchy_depth_inter = 2, + .min_max_transform_hierarchy_depth_inter = 0, + .max_max_transform_hierarchy_depth_intra = 2, + .min_max_transform_hierarchy_depth_intra = 0, + .log2_max_pcm_coding_block_size_minus3 = 0, + .log2_min_pcm_coding_block_size_minus3 = 0 + } +}; +#endif + +//! +//! \brief Definion for AttribList +//! +static const AttribList attribList_VAProfileHEVCMain_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_VCM | VA_RC_TCBRC | VA_RC_ICQ}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +static const AttribList attribList_VAProfileHEVCMain10_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_VCM | VA_RC_TCBRC | VA_RC_ICQ}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +static const AttribList attribList_VAProfileHEVCMain444_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_VCM | VA_RC_TCBRC | VA_RC_ICQ}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +static const AttribList attribList_VAProfileHEVCMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_QVBR | VA_RC_MB | VA_RC_VCM | VA_RC_TCBRC | VA_RC_ICQ}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +static const AttribList attribList_VAProfileHEVCSccMain_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +static const AttribList attribList_VAProfileHEVCSccMain10_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +static const AttribList attribList_VAProfileHEVCSccMain444_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +static const AttribList attribList_VAProfileHEVCSccMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10BPP}, + {VAConfigAttribRateControl, VA_RC_CQP}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_PICTURE | VA_ENC_PACKED_HEADER_SEQUENCE | VA_ENC_PACKED_HEADER_SLICE | VA_ENC_PACKED_HEADER_RAW_DATA | VA_ENC_PACKED_HEADER_MISC}, + {VAConfigAttribEncInterlaced, 0}, + {VAConfigAttribEncMaxRefFrames, DDI_CODEC_VDENC_MAX_L0_REF_FRAMES_LDB |(DDI_CODEC_VDENC_MAX_L1_REF_FRAMES_LDB << DDI_CODEC_LEFT_SHIFT_FOR_REFLIST1)}, + {VAConfigAttribEncMaxSlices, ENCODE_HEVC_VDENC_NUM_MAX_SLICES}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE}, + {VAConfigAttribMaxPictureWidth, CODEC_16K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_12K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_ROLLING_COLUMN | VA_ENC_INTRA_REFRESH_ROLLING_ROW}, + {VAConfigAttribEncROI, HEVCCommon_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncDirtyRect, 16}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribPredictionDirection, VA_PREDICTION_DIRECTION_PREVIOUS | VA_PREDICTION_DIRECTION_FUTURE}, + {VAConfigAttribContextPriority, 1024}, +#if VA_CHECK_VERSION(1, 12, 0) + {VAConfigAttribEncHEVCFeatures, vaConfigAttribValEncHEVCFeatures.value}, + {VAConfigAttribEncHEVCBlockSizes, vaConfigAttribValEncHEVCBlockSizes.value}, +#endif +}; + +//! +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain444_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, + #if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, + #endif + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain444_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, + #if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, + #endif + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileHEVCSccMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_16K_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_12K_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_WIDTH}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {CODEC_128_MIN_PIC_HEIGHT}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, +}; + +//! +//! \brief Definion for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileHEVCMain_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain10_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain10_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain444_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain444_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain444_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain444_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +static const EntrypointData entrypointMap_VAProfileHEVCMain444_10_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMain_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMain10_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain10_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMain444_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain444_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain444_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain444_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +static const EntrypointData entrypointMap_VAProfileHEVCSccMain444_10_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileHEVCSccMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileHEVCSccMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileHEVCSccMain444_10_VAEntrypointEncSlice_Xe2_Lpm_r0, +}; + +#endif // __CAPSTABLE_DATA_HEVC_ENCODE_XE2_LPM_R0_SPECIFIC_H__ diff --git a/media_softlet/linux/xe2_lpm_r0/encode/hevc/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/hevc/ddi/media_srcs.cmake new file mode 100644 index 0000000000..d0b87724d2 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/hevc/ddi/media_srcs.cmake @@ -0,0 +1,33 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_hevc_encode_xe2_lpm_r0_specific.h +) + +set (SOFTLET_DDI_HEADERS_ + ${SOFTLET_DDI_HEADERS_} + ${TMP_HEADERS_} +) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/encode/hevc/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/hevc/media_srcs.cmake new file mode 100644 index 0000000000..26bf2f5558 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/hevc/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/encode/jpeg/ddi/capstable_data_jpeg_encode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/encode/jpeg/ddi/capstable_data_jpeg_encode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..40dd879f02 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/jpeg/ddi/capstable_data_jpeg_encode_xe2_lpm_r0_specific.h @@ -0,0 +1,75 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_jpeg_encode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_JPEG_ENCODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_JPEG_ENCODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" + +//! \brief Definition for ConfigDataList +static const ConfigDataList configDataList_VAProfileJPEGBaseline_VAEntrypointEncPicture_Xe2_Lpm_r0 = +{ + {VA_RC_NONE, 0}, +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList AttribList_VAProfileJPEGBaseline_VAEntrypointEncPicture_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV422 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV400 | VA_RT_FORMAT_YUV411 | VA_RT_FORMAT_RGB16 | VA_RT_FORMAT_RGB32}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_RAW_DATA}, + {VAConfigAttribMaxPictureWidth, ENCODE_JPEG_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, ENCODE_JPEG_MAX_PIC_HEIGHT}, + {VAConfigAttribEncJPEG, 53424}, + {VAConfigAttribEncQualityRange, 1}, +}; + +//! +static const ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileJPEGBaseline_VAEntrypointEncPicture_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_YUY2}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_UYVY}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y800}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_ABGR}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {ENCODE_JPEG_MAX_PIC_WIDTH}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {ENCODE_JPEG_MAX_PIC_HEIGHT}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {16}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {16}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileJPEGBaseline_Data_Xe2_Lpm_r0 +{ + &AttribList_VAProfileJPEGBaseline_VAEntrypointEncPicture_Xe2_Lpm_r0, + &configDataList_VAProfileJPEGBaseline_VAEntrypointEncPicture_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileJPEGBaseline_VAEntrypointEncPicture_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/encode/jpeg/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/jpeg/ddi/media_srcs.cmake new file mode 100644 index 0000000000..edf4eb5cfb --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/jpeg/ddi/media_srcs.cmake @@ -0,0 +1,33 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_jpeg_encode_xe2_lpm_r0_specific.h +) + +set (SOFTLET_DDI_HEADERS_ + ${SOFTLET_DDI_HEADERS_} + ${TMP_HEADERS_} +) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) diff --git a/media_softlet/linux/xe2_lpm_r0/encode/jpeg/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/jpeg/media_srcs.cmake new file mode 100644 index 0000000000..d4cabf72d9 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/jpeg/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/encode/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/media_srcs.cmake new file mode 100644 index 0000000000..08c8c4ee08 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/media_srcs.cmake @@ -0,0 +1,25 @@ +# Copyright (c) 2023, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(hevc) +media_include_subdirectory(avc) +media_include_subdirectory(jpeg) +media_include_subdirectory(av1) +media_include_subdirectory(vp9) diff --git a/media_softlet/linux/xe2_lpm_r0/encode/vp9/ddi/capstable_data_vp9_encode_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/encode/vp9/ddi/capstable_data_vp9_encode_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..c65ea90d62 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/vp9/ddi/capstable_data_vp9_encode_xe2_lpm_r0_specific.h @@ -0,0 +1,258 @@ +/* +* Copyright (c) 2023, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_vp9_encode_xe2_lpm_r0_specific.h +//! \brief This file register all caps data +//! + +#ifndef __CAPSTABLE_DATA_VP9_ENCODE_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_VP9_ENCODE_XE2_LPM_R0_SPECIFIC_H__ + +#include "capstable_data_xe2_lpm_r0_specific.h" +#include "codec_def_encode_vp9.h" + +//! +//! \brief Definition for bitset value +//! +static const VAConfigAttribValEncROI VP9Common_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0 +{ + {0,0,1,0} +}; + +static const VAConfigAttribValEncRateControlExt VP9Common_VAEntrypointEncSlice_encRateControlExt_Xe2_Lpm_r0 +{ + {CODECHAL_ENCODE_VP9_MAX_NUM_TEMPORAL_LAYERS - 1,1,0} +}; + +//! \brief Definition for ConfigDataList +static ConfigDataList configDataList_VAProfileVP9Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0} +}; + +static ConfigDataList configDataList_VAProfileVP9Profile1_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0} +}; + +static ConfigDataList configDataList_VAProfileVP9Profile2_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0} +}; + +static ConfigDataList configDataList_VAProfileVP9Profile3_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VA_RC_CQP, 0}, + {VA_RC_CBR, 0}, + {VA_RC_VBR, 0}, + {VA_RC_ICQ, 0} +}; + +//! +//! \brief Definition for AttribList +//! +static const AttribList attribList_VAProfileVP9Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10}, + {VAConfigAttribMaxPictureWidth, CODEC_8K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_8K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_RAW_DATA}, + {VAConfigAttribEncMaxRefFrames, 2}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_ICQ | VA_RC_CBR | VA_RC_VBR | VA_RC_MB}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribEncDirtyRect, 4}, + {VAConfigAttribEncDynamicScaling, 1}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_NONE}, + {VAConfigAttribEncMaxSlices, 0}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_NONE}, + {VAConfigAttribEncSkipFrame, 0}, + {VAConfigAttribEncROI, VP9Common_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribFEIMVPredictors, 0}, + {VAConfigAttribEncRateControlExt, VP9Common_VAEntrypointEncSlice_encRateControlExt_Xe2_Lpm_r0.value}, +}; + +static const AttribList attribList_VAProfileVP9Profile1_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10}, + {VAConfigAttribMaxPictureWidth, CODEC_8K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_8K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_RAW_DATA}, + {VAConfigAttribEncMaxRefFrames, 2}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_ICQ | VA_RC_CBR | VA_RC_VBR | VA_RC_MB}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribEncDirtyRect, 4}, + {VAConfigAttribEncDynamicScaling, 1}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_NONE}, + {VAConfigAttribEncMaxSlices, 0}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_NONE}, + {VAConfigAttribEncSkipFrame, 0}, + {VAConfigAttribEncROI, VP9Common_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribFEIMVPredictors, 0}, + {VAConfigAttribEncRateControlExt, VP9Common_VAEntrypointEncSlice_encRateControlExt_Xe2_Lpm_r0.value}, +}; + +static const AttribList attribList_VAProfileVP9Profile2_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10}, + {VAConfigAttribMaxPictureWidth, CODEC_8K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_8K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_RAW_DATA}, + {VAConfigAttribEncMaxRefFrames, 2}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_ICQ | VA_RC_CBR | VA_RC_VBR | VA_RC_MB}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribEncDirtyRect, 4}, + {VAConfigAttribEncDynamicScaling, 1}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_NONE}, + {VAConfigAttribEncMaxSlices, 0}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_NONE}, + {VAConfigAttribEncSkipFrame, 0}, + {VAConfigAttribEncROI, VP9Common_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribFEIMVPredictors, 0}, + {VAConfigAttribEncRateControlExt, VP9Common_VAEntrypointEncSlice_encRateControlExt_Xe2_Lpm_r0.value}, +}; + +static const AttribList attribList_VAProfileVP9Profile3_VAEntrypointEncSlice_Xe2_Lpm_r0 +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10 | VA_RT_FORMAT_YUV444 | VA_RT_FORMAT_YUV444_10 | VA_RT_FORMAT_RGB32 | VA_RT_FORMAT_RGB32_10}, + {VAConfigAttribMaxPictureWidth, CODEC_8K_MAX_PIC_WIDTH}, + {VAConfigAttribMaxPictureHeight, CODEC_8K_MAX_PIC_HEIGHT}, + {VAConfigAttribEncPackedHeaders, VA_ENC_PACKED_HEADER_RAW_DATA}, + {VAConfigAttribEncMaxRefFrames, 2}, + {VAConfigAttribRateControl, VA_RC_CQP | VA_RC_ICQ | VA_RC_CBR | VA_RC_VBR | VA_RC_MB}, + {VAConfigAttribProcessingRate, VA_PROCESSING_RATE_ENCODE}, + {VAConfigAttribEncTileSupport, 1}, + {VAConfigAttribEncDirtyRect, 4}, + {VAConfigAttribEncDynamicScaling, 1}, + {VAConfigAttribEncQualityRange, NUM_TARGET_USAGE_MODES - 1}, + {VAConfigAttribEncInterlaced, VA_ENC_INTERLACED_NONE}, + {VAConfigAttribEncQuantization, VA_ENC_QUANTIZATION_NONE}, + {VAConfigAttribEncMaxSlices, 0}, + {VAConfigAttribEncSliceStructure, VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS | VA_ENC_SLICE_STRUCTURE_MAX_SLICE_SIZE | VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS | VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS}, + {VAConfigAttribEncIntraRefresh, VA_ENC_INTRA_REFRESH_NONE}, + {VAConfigAttribEncSkipFrame, 0}, + {VAConfigAttribEncROI, VP9Common_VAEntrypointEncSlice_encROI_Xe2_Lpm_r0.value}, + {VAConfigAttribEncParallelRateControl, 0}, + {VAConfigAttribFEIMVPredictors, 0}, + {VAConfigAttribEncRateControlExt, VP9Common_VAEntrypointEncSlice_encRateControlExt_Xe2_Lpm_r0.value}, +}; + +//! +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_NV12}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {128}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {96}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile1_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, +#if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, +#endif + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {128}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {96}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile2_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_P010}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {128}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {96}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAProfileVP9Profile3_VAEntrypointEncSlice_Xe2_Lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_ARGB}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_ABGR}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {8192}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {128}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE, {VAGenericValueTypeInteger, {96}}}, + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}} +}; + +//! +//! \brief Definition for EmtrypointMap +//! +static const EntrypointData entrypointMap_VAProfileVP9Profile0_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile0_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileVP9Profile1_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile1_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile1_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile1_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileVP9Profile2_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile2_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile2_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile2_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + +static const EntrypointData entrypointMap_VAProfileVP9Profile3_Data_Xe2_Lpm_r0 +{ + &attribList_VAProfileVP9Profile3_VAEntrypointEncSlice_Xe2_Lpm_r0, + &configDataList_VAProfileVP9Profile3_VAEntrypointEncSlice_Xe2_Lpm_r0, + &surfaceAttribInfo_VAProfileVP9Profile3_VAEntrypointEncSlice_Xe2_Lpm_r0 +}; + +#endif diff --git a/media_softlet/linux/xe2_lpm_r0/encode/vp9/ddi/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/vp9/ddi/media_srcs.cmake new file mode 100644 index 0000000000..b9b8032a1d --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/vp9/ddi/media_srcs.cmake @@ -0,0 +1,33 @@ +# Copyright (c) 2023, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set (TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_vp9_encode_xe2_lpm_r0_specific.h +) + +set (SOFTLET_DDI_HEADERS_ + ${SOFTLET_DDI_HEADERS_} + ${TMP_HEADERS_} +) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/encode/vp9/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/encode/vp9/media_srcs.cmake new file mode 100644 index 0000000000..c98836a05e --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/encode/vp9/media_srcs.cmake @@ -0,0 +1,21 @@ +# Copyright (c) 2023, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/media_srcs.cmake new file mode 100644 index 0000000000..da5be45b4f --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/media_srcs.cmake @@ -0,0 +1,24 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +media_include_subdirectory(ddi) +media_include_subdirectory(decode) +media_include_subdirectory(vp) +media_include_subdirectory(encode) \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/vp/capstable_data_vp_xe2_lpm_r0_specific.h b/media_softlet/linux/xe2_lpm_r0/vp/capstable_data_vp_xe2_lpm_r0_specific.h new file mode 100644 index 0000000000..5f5e4634c6 --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/vp/capstable_data_vp_xe2_lpm_r0_specific.h @@ -0,0 +1,99 @@ +/* +* Copyright (c) 2022, Intel Corporation +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +*/ +//! +//! \file capstable_data_vp_xe2_lpm_r0_specific.h +//! \brief This file defines the data for vp xe2_lpm r0 +//! + +#ifndef __CAPSTABLE_DATA_VP_XE2_LPM_R0_SPECIFIC_H__ +#define __CAPSTABLE_DATA_VP_XE2_LPM_R0_SPECIFIC_H__ + +#include "media_capstable_specific.h" + +static AttribList VAConfigAttribList_VAProfileNone_VAEntrypointVideoProc_Xe2_lpm_r0 = +{ + {VAConfigAttribRTFormat, VA_RT_FORMAT_YUV420 | + VA_RT_FORMAT_YUV422 | + VA_RT_FORMAT_YUV444 | + VA_RT_FORMAT_YUV400 | + VA_RT_FORMAT_YUV411 | + VA_RT_FORMAT_RGB16 | + VA_RT_FORMAT_RGB32 | + VA_RT_FORMAT_RGBP} +}; + +static ProfileSurfaceAttribInfo surfaceAttribInfo_VAEntrypointVideoProc_VAProfileNone_Xe2_lpm_r0 = +{ + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('N', 'V', '1', '2')}}}, + {VASurfaceAttribMaxWidth, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {16384}}}, + {VASurfaceAttribMaxHeight, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {16384}}}, + {VASurfaceAttribMinWidth, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {16}}}, + {VASurfaceAttribMinHeight, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {16}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('I', '4', '2', '0')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('Y', 'V', '1', '2')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('Y', 'U', 'Y', '2')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('4', '2', '2', 'H')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('4', '2', '2', 'V')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('R', 'G', 'B', 'A')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('B', 'G', 'R', 'A')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('R', 'G', 'B', 'P')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('R', 'G', 'B', 'X')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('P', '0', '1', '0')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC('R', 'G', '2', '4')}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_ARGB}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_ABGR}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_A2R10G10B10}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_A2B10G10R10}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_X2R10G10B10}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_X2B10G10R10}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_AYUV}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y210}}}, + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_Y410}}}, +#if VA_CHECK_VERSION(1, 13, 0) + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_FOURCC_XYUV}}}, +#else + {VASurfaceAttribPixelFormat, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {0}}}, +#endif + {VASurfaceAttribMemoryType, VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypeInteger, {VA_SURFACE_ATTRIB_MEM_TYPE_VA | + VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR | + VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM | + VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME | + VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2}}}, + {VASurfaceAttribExternalBufferDescriptor, VA_SURFACE_ATTRIB_SETTABLE, {VAGenericValueTypePointer, {0}}} +}; + +//! +//! \brief Definion for EntrypointMap +//! +static EntrypointData entrypointMap_VAProfileNone_Data_Xe2_lpm_r0 +{ + &VAConfigAttribList_VAProfileNone_VAEntrypointVideoProc_Xe2_lpm_r0, + nullptr, // not needed for vp + &surfaceAttribInfo_VAEntrypointVideoProc_VAProfileNone_Xe2_lpm_r0 +}; + +static EntrypointMap entrypointMap_VAProfileNone_Xe2_lpm_r0 +{ + {VAEntrypointVideoProc, &entrypointMap_VAProfileNone_Data_Xe2_lpm_r0}, +}; + +#endif \ No newline at end of file diff --git a/media_softlet/linux/xe2_lpm_r0/vp/media_srcs.cmake b/media_softlet/linux/xe2_lpm_r0/vp/media_srcs.cmake new file mode 100644 index 0000000000..f2f8f27c1b --- /dev/null +++ b/media_softlet/linux/xe2_lpm_r0/vp/media_srcs.cmake @@ -0,0 +1,33 @@ +# Copyright (c) 2022, Intel Corporation +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +set(TMP_HEADERS_ + ${CMAKE_CURRENT_LIST_DIR}/capstable_data_vp_xe2_lpm_r0_specific.h +) + +set(SOFTLET_DDI_HEADERS_ + ${SOFTLET_DDI_HEADERS_} + ${TMP_HEADERS_} +) + +set(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ + ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} + ${CMAKE_CURRENT_LIST_DIR} +) \ No newline at end of file