From 889b6dabdbe15d10a87aa9fc1f5ea53b3467d258 Mon Sep 17 00:00:00 2001 From: Shaofeng Tang Date: Mon, 28 Aug 2023 14:48:01 +0800 Subject: [PATCH] Use Tile4 format for dGPU codec. 1/ Use TileY for iGPU codec 2/ Use Tile4 format for dGPU codec 3/ detect device is dGPU or iGPU dynamically according to deviceId. dGPU: 0x5690 <= deviceId <= 0x56B3 Tracked-On: OAM-112744 Signed-off-by: Shaofeng Tang --- media_driver/linux/common/ddi/media_libva_util.cpp | 9 ++++++++- media_softlet/linux/common/ddi/media_libva_util_next.cpp | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/media_driver/linux/common/ddi/media_libva_util.cpp b/media_driver/linux/common/ddi/media_libva_util.cpp index fd0f8a063..72cc227dd 100755 --- a/media_driver/linux/common/ddi/media_libva_util.cpp +++ b/media_driver/linux/common/ddi/media_libva_util.cpp @@ -471,10 +471,17 @@ VAStatus DdiMediaUtil_AllocateSurface( gmmCustomParams.BaseAlignment = 4096; gmmCustomParams.NoOfPlanes = mediaSurface->pSurfDesc->uiPlanes; gmmCustomParams.CpTag = cpTag; + + int32_t deviceId = mediaDrvCtx->iDeviceId; + switch (tileformat) { case I915_TILING_Y: - gmmCustomParams.Flags.Info.TiledY = true; + //DG2 pciid from kernel/include/drm/i915_pciids.h#696 + if (deviceId >= 0x5690 && deviceId <= 0x56B3) + gmmCustomParams.Flags.Info.Tile4 = true; + else + gmmCustomParams.Flags.Info.TiledY = true; gmmCustomParams.Flags.Gpu.MMC = false; if (MEDIA_IS_SKU(&mediaDrvCtx->SkuTable, FtrE2ECompression) && (!MEDIA_IS_WA(&mediaDrvCtx->WaTable, WaDisableVPMmc) && diff --git a/media_softlet/linux/common/ddi/media_libva_util_next.cpp b/media_softlet/linux/common/ddi/media_libva_util_next.cpp index e3c49eef8..35f64abc5 100644 --- a/media_softlet/linux/common/ddi/media_libva_util_next.cpp +++ b/media_softlet/linux/common/ddi/media_libva_util_next.cpp @@ -326,10 +326,17 @@ VAStatus MediaLibvaUtilNext::GenerateGmmParamsForNoneCompressionExternalSurface( gmmCustomParams.BaseAlignment = 4096; gmmCustomParams.NoOfPlanes = mediaSurface->pSurfDesc->uiPlanes; gmmCustomParams.CpTag = params.cpTag; + + PDDI_MEDIA_CONTEXT mediaDrvCtx = mediaSurface->pMediaCtx; + int32_t deviceId = mediaDrvCtx->iDeviceId; switch (params.tileFormat) { case I915_TILING_Y: - gmmCustomParams.Flags.Info.TiledY = true; + //DG2 pciid from kernel/include/drm/i915_pciids.h#696 + if (deviceId >= 0x5690 && deviceId <= 0x56B3) + gmmCustomParams.Flags.Info.Tile4 = true; + else + gmmCustomParams.Flags.Info.TiledY = true; break; case I915_TILING_X: gmmCustomParams.Flags.Info.TiledX = true;