Skip to content

Commit

Permalink
[Media_Common] Use Env Var for compressible surface creation
Browse files Browse the repository at this point in the history
Use Env Var for compressible surface creation for easy testing
  • Loading branch information
Guangyao-Bai authored and intel-mediadev committed Jan 28, 2022
1 parent 7e12a32 commit ed0876c
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 31 deletions.
1 change: 0 additions & 1 deletion media_common/agnostic/common/os/mos_utilities_common.h
Expand Up @@ -393,7 +393,6 @@ typedef enum _MOS_USER_FEATURE_VALUE_ID
__MEDIA_USER_FEATURE_ENABLE_RENDER_ENGINE_MMC_ID,
__MEDIA_USER_FEATURE_VALUE_DISABLE_MMC_ID,
__MEDIA_USER_FEATURE_VALUE_FORCE_MMC_ON_ID,
__MEDIA_USER_FEATURE_VALUE_COMPRESSIBLE_DEFAULT_ON_ID,
__MEDIA_USER_FEATURE_MCPY_MODE_ID,
__MEDIA_USER_FEATURE_ENABLE_HW_DEBUG_HOOKS_ID,
__MEDIA_USER_FEATURE_VALUE_CODECHAL_FRAME_NUMBER_TO_STOP_ID,
Expand Down
9 changes: 0 additions & 9 deletions media_driver/agnostic/common/os/mos_utilities.cpp
Expand Up @@ -3276,15 +3276,6 @@ static MOS_USER_FEATURE_VALUE MOSUserFeatureDescFields[__MOS_USER_FEATURE_KEY_MA
MOS_USER_FEATURE_VALUE_TYPE_BOOL,
"0",
"Disable MMC for all components"),
MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_COMPRESSIBLE_DEFAULT_ON_ID,
"Enable Compressible Surface",
__MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
__MEDIA_USER_FEATURE_SUBKEY_REPORT,
"Media",
MOS_USER_FEATURE_TYPE_USER,
MOS_USER_FEATURE_VALUE_TYPE_BOOL,
"0",
"Enable Compressible Surface Creation"),
MOS_DECLARE_UF_KEY(__MEDIA_USER_FEATURE_VALUE_FORCE_MMC_ON_ID,
"Force MMC Enable",
__MEDIA_USER_FEATURE_SUBKEY_INTERNAL,
Expand Down
18 changes: 16 additions & 2 deletions media_driver/linux/Xe_M/ddi/media_sku_wa_xe.cpp
Expand Up @@ -30,6 +30,8 @@
#include "linux_skuwa_debug.h"
#include "linux_media_skuwa.h"
#include "mos_utilities.h"
#include "mos_os_specific.h"
#include "media_user_setting.h"

#ifndef SI_REV_LO
#define SI_REV_LO(SteppingID) (SteppingID & 0xFFFF)
Expand Down Expand Up @@ -330,8 +332,20 @@ static bool InitTglMediaSkuExt(struct GfxDeviceInfo *devInfo,
MEDIA_WR_SKU(skuTable, FtrE2ECompression, 0);
}

// Create compressible surface by default
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 1);
// Create uncompressible surface by default
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 0);

bool compressibleSurfaceEnable = false;

ReadUserSetting(compressibleSurfaceEnable,
"Enable Compressible Surface Creation",
MediaUserSetting::Group::Device,
(PMOS_CONTEXT)nullptr);

if (compressibleSurfaceEnable)
{
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 1);
}

if (drvInfo->devId == 0xFF20)
{
Expand Down
35 changes: 16 additions & 19 deletions media_driver/linux/gen12/ddi/media_sku_wa_g12.cpp
Expand Up @@ -30,6 +30,8 @@
#include "linux_skuwa_debug.h"
#include "linux_media_skuwa.h"
#include "mos_utilities.h"
#include "mos_os_specific.h"
#include "media_user_setting.h"

static constexpr uint32_t singleVeboxSubSliceNumMax = 24;

Expand Down Expand Up @@ -273,8 +275,20 @@ static bool InitTglMediaSku(struct GfxDeviceInfo *devInfo,
MEDIA_WR_SKU(skuTable, FtrUseSwSwizzling, 1);
MEDIA_WR_SKU(skuTable, FtrScalingFirst, 1);

// Create compressible surface by default
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 1);
// Create uncompressible surface by default
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 0);

bool compressibleSurfaceEnable = false;

ReadUserSetting(compressibleSurfaceEnable,
"Enable Compressible Surface Creation",
MediaUserSetting::Group::Device,
(PMOS_CONTEXT)nullptr);

if (compressibleSurfaceEnable)
{
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 1);
}

return true;
}
Expand Down Expand Up @@ -549,23 +563,6 @@ static bool InitAdlpMediaSku(struct GfxDeviceInfo *devInfo,
MEDIA_WR_SKU(skuTable, FtrAV1VLDLSTDecoding, 1);
MEDIA_WR_SKU(skuTable, FtrGucSubmission, 1);

// Default set as uncompressible surface
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 0);

MOS_USER_FEATURE_VALUE_DATA userFeatureData;
MOS_ZeroMemory(&userFeatureData, sizeof(userFeatureData));
MOS_UserFeature_ReadValue_ID(
nullptr,
__MEDIA_USER_FEATURE_VALUE_COMPRESSIBLE_DEFAULT_ON_ID,
&userFeatureData,
(MOS_CONTEXT_HANDLE)nullptr);

if (userFeatureData.bData)
{
// Create as compressible surfaceif key is set
MEDIA_WR_SKU(skuTable, FtrCompressibleSurfaceDefault, 1);
}

return true;
}

Expand Down
6 changes: 6 additions & 0 deletions media_softlet/agnostic/common/os/mos_user_setting.cpp
Expand Up @@ -56,6 +56,12 @@ MOS_STATUS MosUtilities::InitMosCommonUserSetting()
0,
true);

DeclareUserSettingKey(
"Enable Compressible Surface Creation",
MediaUserSetting::Group::Device,
0,
true);

return MOS_STATUS_SUCCESS;
}

Expand Down

0 comments on commit ed0876c

Please sign in to comment.