From cff49a8270832b0fd8973cac6937e0287b25a289 Mon Sep 17 00:00:00 2001 From: johnbasha shaik Date: Tue, 16 Jun 2020 13:11:31 +0530 Subject: [PATCH] Add new media P216 format. Change-Id: I5d18b98d6fb5cada123dbb0ac8010c86c1cdf1fb --- Source/GmmLib/Texture/GmmGen10Texture.cpp | 4 +++- Source/GmmLib/Texture/GmmGen11Texture.cpp | 5 ++++- Source/GmmLib/Texture/GmmGen12Texture.cpp | 4 +++- Source/GmmLib/Texture/GmmTexture.cpp | 1 + Source/GmmLib/Texture/GmmTextureAlloc.cpp | 4 +++- Source/GmmLib/Utility/GmmUtility.cpp | 3 +++ Source/GmmLib/inc/External/Common/GmmFormatTable.h | 1 + 7 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Source/GmmLib/Texture/GmmGen10Texture.cpp b/Source/GmmLib/Texture/GmmGen10Texture.cpp index 1e6d378..644db9b 100644 --- a/Source/GmmLib/Texture/GmmGen10Texture.cpp +++ b/Source/GmmLib/Texture/GmmGen10Texture.cpp @@ -682,6 +682,7 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen10TextureCalc::FillTexPlanar(GMM_TEXTURE_IN case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: { // YYYYYYYY // YYYYYYYY @@ -709,7 +710,8 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen10TextureCalc::FillTexPlanar(GMM_TEXTURE_IN (pTexInfo->Format == GMM_FORMAT_P010) || (pTexInfo->Format == GMM_FORMAT_P012) || (pTexInfo->Format == GMM_FORMAT_P016) || - (pTexInfo->Format == GMM_FORMAT_P208)) + (pTexInfo->Format == GMM_FORMAT_P208) || + (pTexInfo->Format == GMM_FORMAT_P216)) { WidthBytesPhysical = GFX_ALIGN(WidthBytesPhysical, 2); // If odd YWidth, pitch bumps-up to fit rounded-up U/V planes. } diff --git a/Source/GmmLib/Texture/GmmGen11Texture.cpp b/Source/GmmLib/Texture/GmmGen11Texture.cpp index 24bb090..cd1bbdb 100644 --- a/Source/GmmLib/Texture/GmmGen11Texture.cpp +++ b/Source/GmmLib/Texture/GmmGen11Texture.cpp @@ -296,6 +296,7 @@ void GmmLib::GmmGen11TextureCalc::FillPlanarOffsetAddress(GMM_TEXTURE_INFO *pTex case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: { // YYYYYYYY // YYYYYYYY @@ -872,6 +873,7 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen11TextureCalc::FillTexPlanar(GMM_TEXTURE_IN case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: { // YYYYYYYY // YYYYYYYY @@ -899,7 +901,8 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen11TextureCalc::FillTexPlanar(GMM_TEXTURE_IN (pTexInfo->Format == GMM_FORMAT_P010) || (pTexInfo->Format == GMM_FORMAT_P012) || (pTexInfo->Format == GMM_FORMAT_P016) || - (pTexInfo->Format == GMM_FORMAT_P208)) + (pTexInfo->Format == GMM_FORMAT_P208) || + (pTexInfo->Format == GMM_FORMAT_P216)) { WidthBytesPhysical = GFX_ALIGN(WidthBytesPhysical, 2); // If odd YWidth, pitch bumps-up to fit rounded-up U/V planes. pTexInfo->OffsetInfo.Plane.NoOfPlanes = 2; diff --git a/Source/GmmLib/Texture/GmmGen12Texture.cpp b/Source/GmmLib/Texture/GmmGen12Texture.cpp index 432178d..f9c444d 100644 --- a/Source/GmmLib/Texture/GmmGen12Texture.cpp +++ b/Source/GmmLib/Texture/GmmGen12Texture.cpp @@ -675,6 +675,7 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen12TextureCalc::FillTexPlanar(GMM_TEXTURE_IN case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: { // YYYYYYYY // YYYYYYYY @@ -702,7 +703,8 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen12TextureCalc::FillTexPlanar(GMM_TEXTURE_IN (pTexInfo->Format == GMM_FORMAT_P010) || (pTexInfo->Format == GMM_FORMAT_P012) || (pTexInfo->Format == GMM_FORMAT_P016) || - (pTexInfo->Format == GMM_FORMAT_P208)) + (pTexInfo->Format == GMM_FORMAT_P208) || + (pTexInfo->Format == GMM_FORMAT_P216)) { WidthBytesPhysical = GFX_ALIGN(WidthBytesPhysical, 2); // If odd YWidth, pitch bumps-up to fit rounded-up U/V planes. pTexInfo->OffsetInfo.Plane.NoOfPlanes = 2; diff --git a/Source/GmmLib/Texture/GmmTexture.cpp b/Source/GmmLib/Texture/GmmTexture.cpp index 89831ff..a421766 100644 --- a/Source/GmmLib/Texture/GmmTexture.cpp +++ b/Source/GmmLib/Texture/GmmTexture.cpp @@ -292,6 +292,7 @@ void GmmLib::GmmTextureCalc::FillPlanarOffsetAddress(GMM_TEXTURE_INFO *pTexInfo) case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: { // YYYYYYYY // YYYYYYYY diff --git a/Source/GmmLib/Texture/GmmTextureAlloc.cpp b/Source/GmmLib/Texture/GmmTextureAlloc.cpp index 604a32b..4fea8fc 100644 --- a/Source/GmmLib/Texture/GmmTextureAlloc.cpp +++ b/Source/GmmLib/Texture/GmmTextureAlloc.cpp @@ -1154,6 +1154,7 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmTextureCalc::FillTexPlanar(GMM_TEXTURE_INFO * case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: { // YYYYYYYY // YYYYYYYY @@ -1181,7 +1182,8 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmTextureCalc::FillTexPlanar(GMM_TEXTURE_INFO * (pTexInfo->Format == GMM_FORMAT_P010) || (pTexInfo->Format == GMM_FORMAT_P012) || (pTexInfo->Format == GMM_FORMAT_P016) || - (pTexInfo->Format == GMM_FORMAT_P208)) + (pTexInfo->Format == GMM_FORMAT_P208) || + (pTexInfo->Format == GMM_FORMAT_P216)) { WidthBytesPhysical = GFX_ALIGN(WidthBytesPhysical, 2); // If odd YWidth, pitch bumps-up to fit rounded-up U/V planes. } diff --git a/Source/GmmLib/Utility/GmmUtility.cpp b/Source/GmmLib/Utility/GmmUtility.cpp index 19d1100..c9e5081 100644 --- a/Source/GmmLib/Utility/GmmUtility.cpp +++ b/Source/GmmLib/Utility/GmmUtility.cpp @@ -151,6 +151,7 @@ uint8_t GMM_STDCALL GmmIsUVPacked(GMM_RESOURCE_FORMAT Format) case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: Status = 1; break; default: @@ -277,6 +278,7 @@ uint8_t GMM_STDCALL GmmIsPlanar(GMM_RESOURCE_FORMAT Format) case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: Status = 1; break; default: @@ -453,6 +455,7 @@ namespace GmmLib case GMM_FORMAT_P012: case GMM_FORMAT_P016: case GMM_FORMAT_P208: + case GMM_FORMAT_P216: Planes = 2; break; default: diff --git a/Source/GmmLib/inc/External/Common/GmmFormatTable.h b/Source/GmmLib/inc/External/Common/GmmFormatTable.h index f394b99..56612b6 100644 --- a/Source/GmmLib/inc/External/Common/GmmFormatTable.h +++ b/Source/GmmLib/inc/External/Common/GmmFormatTable.h @@ -465,6 +465,7 @@ GMM_FORMAT( MEDIA_Y16_SNORM , 16, 1, 1, 1, x, x, NA , FC(2, x GMM_FORMAT( MEDIA_Y16_UNORM , 16, 1, 1, 1, x, x, NA , FC(2, x, P010, , ), GEN(8) ) GMM_FORMAT( MEDIA_Y32_UNORM , 1, 1, 1, 1, x, x, NA , NC , GEN(8) ) // Y32 is BDW name for SKL Y1, and is 1bpp with 32b granularity GMM_FORMAT( B16G16R16A16_UNORM , 64, 1, 1, 1, R, x, NA , FC(3, 16, RGBA, 16, U), ALWAYS ) // Swapped ARGB16 for media-SFC output +GMM_FORMAT( P216 , 16, 1, 1, 1, R, x, NA , NC , ALWAYS ) #if _WIN32 GMM_FORMAT( WGBOX_YUV444 , 32, 1, 1, 1, x, x, NA , NC , GEN(9) ) // For testing purposes only. GMM_FORMAT( WGBOX_PLANAR_YUV444 , 32, 1, 1, 1, x, x, NA , NC , GEN(9) ) // For testing purposes only.