Tileheight alligned ArrayQPitch for Tile4/TileY (#84)

diff --git a/Source/GmmLib/Texture/GmmGen10Texture.cpp b/Source/GmmLib/Texture/GmmGen10Texture.cpp
index d58172f..b68953c 100644
--- a/Source/GmmLib/Texture/GmmGen10Texture.cpp
+++ b/Source/GmmLib/Texture/GmmGen10Texture.cpp
@@ -351,7 +351,8 @@
     {
         uint32_t Alignment = VAlign;
         if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
-           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
+           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
+	   (pTexInfo->Flags.Wa.MediaPipeUsage))
         {
             Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
 	    //Gmm uses TileY for Stencil allocations, having half TileW height (TileY width compensates)
diff --git a/Source/GmmLib/Texture/GmmGen12Texture.cpp b/Source/GmmLib/Texture/GmmGen12Texture.cpp
index cb6f6ce..fe5aa04 100644
--- a/Source/GmmLib/Texture/GmmGen12Texture.cpp
+++ b/Source/GmmLib/Texture/GmmGen12Texture.cpp
@@ -374,7 +374,8 @@
     {
         uint32_t Alignment = VAlign;
         if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
-           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
+           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
+	   (pTexInfo->Flags.Wa.MediaPipeUsage))
         {
             Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
         }
diff --git a/Source/GmmLib/Texture/GmmGen9Texture.cpp b/Source/GmmLib/Texture/GmmGen9Texture.cpp
index dacbc06..6e6b9f9 100644
--- a/Source/GmmLib/Texture/GmmGen9Texture.cpp
+++ b/Source/GmmLib/Texture/GmmGen9Texture.cpp
@@ -576,7 +576,8 @@
 
         Alignment = pTexInfo->Alignment.VAlign;
         if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
-           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
+           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
+	   (pTexInfo->Flags.Wa.MediaPipeUsage))
          {
             Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
 	    //Gmm uses TileY for Stencil allocations, having half TileW height (TileY width compensates)
@@ -765,7 +766,8 @@
     {
         uint32_t Alignment = VAlign;
         if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
-           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
+           (pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
+           (pTexInfo->Flags.Wa.MediaPipeUsage))
         {
             Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
 	    //Gmm uses TileY for Stencil allocations, having half TileW height (TileY width compensates)
diff --git a/Source/GmmLib/inc/External/Common/GmmResourceFlags.h b/Source/GmmLib/inc/External/Common/GmmResourceFlags.h
index 1ec461f..59ad6cf 100644
--- a/Source/GmmLib/inc/External/Common/GmmResourceFlags.h
+++ b/Source/GmmLib/inc/External/Common/GmmResourceFlags.h
@@ -150,7 +150,7 @@
         uint32_t DisableDisplayCcsClearColor       : 1; // Disables display clear color
         uint32_t DisableDisplayCcsCompression      : 1; // Disables display decompression on the surface (it disables display awareness of both fast clear/render compression)
         uint32_t PreGen12FastClearOnly             : 1; // i.e. AUX_CCS_D (instead of AUX_CCS_E). Flag carried by GMM between UMD’s to support shared resources.
-        uint32_t Reserved                          : 1; // Reserved
+	uint32_t MediaPipeUsage                    : 1; // TileHeight Aligned ArrayQPitch on Tile4/TileY
     } Wa;
 
 } GMM_RESOURCE_FLAG;