Skip to content

Commit c76f450

Browse files
authored
Tileheight alligned ArrayQPitch for Tile4/TileY (#84)
1 parent 30a7fbd commit c76f450

File tree

4 files changed

+9
-5
lines changed

4 files changed

+9
-5
lines changed

Source/GmmLib/Texture/GmmGen10Texture.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,8 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen10TextureCalc::FillTex2D(GMM_TEXTURE_INFO *
351351
{
352352
uint32_t Alignment = VAlign;
353353
if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
354-
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
354+
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
355+
(pTexInfo->Flags.Wa.MediaPipeUsage))
355356
{
356357
Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
357358
//Gmm uses TileY for Stencil allocations, having half TileW height (TileY width compensates)

Source/GmmLib/Texture/GmmGen12Texture.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,8 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen12TextureCalc::FillTex2D(GMM_TEXTURE_INFO *
374374
{
375375
uint32_t Alignment = VAlign;
376376
if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
377-
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
377+
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
378+
(pTexInfo->Flags.Wa.MediaPipeUsage))
378379
{
379380
Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
380381
}

Source/GmmLib/Texture/GmmGen9Texture.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,8 @@ void GmmLib::GmmGen9TextureCalc::Fill2DTexOffsetAddress(GMM_TEXTURE_INFO *pTexIn
576576

577577
Alignment = pTexInfo->Alignment.VAlign;
578578
if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
579-
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
579+
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
580+
(pTexInfo->Flags.Wa.MediaPipeUsage))
580581
{
581582
Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
582583
//Gmm uses TileY for Stencil allocations, having half TileW height (TileY width compensates)
@@ -765,7 +766,8 @@ GMM_STATUS GMM_STDCALL GmmLib::GmmGen9TextureCalc::FillTex2D(GMM_TEXTURE_INFO *
765766
{
766767
uint32_t Alignment = VAlign;
767768
if((pTexInfo->Type == RESOURCE_3D && !pTexInfo->Flags.Info.Linear) ||
768-
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d))
769+
(pTexInfo->Flags.Gpu.S3dDx && pGmmLibContext->GetSkuTable().FtrDisplayEngineS3d) ||
770+
(pTexInfo->Flags.Wa.MediaPipeUsage))
769771
{
770772
Alignment = pPlatform->TileInfo[pTexInfo->TileMode].LogicalTileHeight;
771773
//Gmm uses TileY for Stencil allocations, having half TileW height (TileY width compensates)

Source/GmmLib/inc/External/Common/GmmResourceFlags.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ typedef struct GMM_RESOURCE_FLAG_REC
150150
uint32_t DisableDisplayCcsClearColor : 1; // Disables display clear color
151151
uint32_t DisableDisplayCcsCompression : 1; // Disables display decompression on the surface (it disables display awareness of both fast clear/render compression)
152152
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.
153-
uint32_t Reserved : 1; // Reserved
153+
uint32_t MediaPipeUsage : 1; // TileHeight Aligned ArrayQPitch on Tile4/TileY
154154
} Wa;
155155

156156
} GMM_RESOURCE_FLAG;

0 commit comments

Comments
 (0)