mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
fix: Set compression parameter when resource imported
Related-To: NEO-12375 Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
ec0e493ca8
commit
ed04190d77
@@ -170,6 +170,18 @@ HWTEST2_F(GmmAdditionalCompressionSettingsTests, givenEnabledAndPreferredE2ECWhe
|
||||
EXPECT_TRUE(gmm->isCompressionEnabled());
|
||||
}
|
||||
|
||||
HWTEST2_F(GmmAdditionalCompressionSettingsTests, givenGmmCreatedFromExistingGmmWithCompressionThenCompressionTrueForSecondResource, IsAtLeastXe2HpgCore) {
|
||||
auto gmm = std::make_unique<MockGmm>(getGmmHelper());
|
||||
gmm->resourceParams.Flags.Info.NotCompressed = 0;
|
||||
|
||||
auto &gfxCoreHelper = this->executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
gfxCoreHelper.applyAdditionalCompressionSettings(*gmm, false);
|
||||
EXPECT_EQ(0u, gmm->resourceParams.Flags.Info.NotCompressed);
|
||||
|
||||
auto gmmRes2 = std::make_unique<Gmm>(getGmmHelper(), gmm->gmmResourceInfo->peekGmmResourceInfo(), false);
|
||||
EXPECT_TRUE(gmmRes2->isCompressionEnabled());
|
||||
}
|
||||
|
||||
HWTEST2_F(GmmAdditionalCompressionSettingsTests, givenDisabledE2ECAndEnabledDebugFlagWhenApplyingForBuffersThenSetValidFlags, IsAtLeastXe2HpgCore) {
|
||||
DebugManagerStateRestore restore;
|
||||
GmmRequirements gmmRequirements{};
|
||||
|
||||
@@ -1446,6 +1446,42 @@ TEST_F(GmmCompressionTests, givenMediaCompressedImageApplyAuxFlagsForImageThenSe
|
||||
EXPECT_TRUE(gmm.isCompressionEnabled());
|
||||
}
|
||||
|
||||
HWTEST2_F(GmmCompressionTests, givenGmmCreatedFromExistingGmmWithRenderCompressionThenCompressionTrueForSecondResource, IsAtMostXeCore) {
|
||||
GmmRequirements gmmRequirements{};
|
||||
gmmRequirements.allowLargePages = true;
|
||||
gmmRequirements.preferCompressed = false;
|
||||
MockGmm gmm(getGmmHelper(), nullptr, 1, 0, GMM_RESOURCE_USAGE_OCL_BUFFER, {}, gmmRequirements);
|
||||
auto flags = gmm.gmmResourceInfo->getResourceFlags();
|
||||
flags->Gpu.CCS = true;
|
||||
flags->Gpu.UnifiedAuxSurface = true;
|
||||
flags->Info.MediaCompressed = true;
|
||||
flags->Info.RenderCompressed = false;
|
||||
gmm.resourceParams.Flags.Info.MediaCompressed = false;
|
||||
gmm.resourceParams.Flags.Info.RenderCompressed = true;
|
||||
gmm.setupImageResourceParams(imgInfo, true);
|
||||
|
||||
EXPECT_TRUE(gmm.isCompressionEnabled());
|
||||
|
||||
auto gmmRes2 = std::make_unique<Gmm>(getGmmHelper(), gmm.gmmResourceInfo->peekGmmResourceInfo(), false);
|
||||
EXPECT_TRUE(gmmRes2->isCompressionEnabled());
|
||||
}
|
||||
|
||||
HWTEST2_F(GmmCompressionTests, givenGmmCreatedFromExistingGmmWithCompressionDisabledThenCompressionFalseForSecondResource, IsAtMostXeCore) {
|
||||
localPlatformDevice->capabilityTable.ftrRenderCompressedImages = false;
|
||||
GmmRequirements gmmRequirements{};
|
||||
gmmRequirements.allowLargePages = true;
|
||||
gmmRequirements.preferCompressed = false;
|
||||
MockGmm gmm(getGmmHelper(), nullptr, 1, 0, GMM_RESOURCE_USAGE_OCL_BUFFER, {}, gmmRequirements);
|
||||
gmm.resourceParams.Flags.Info.MediaCompressed = false;
|
||||
gmm.resourceParams.Flags.Info.RenderCompressed = false;
|
||||
gmm.setupImageResourceParams(imgInfo, false);
|
||||
|
||||
EXPECT_FALSE(gmm.isCompressionEnabled());
|
||||
|
||||
auto gmmRes2 = std::make_unique<Gmm>(getGmmHelper(), gmm.gmmResourceInfo->peekGmmResourceInfo(), false);
|
||||
EXPECT_FALSE(gmmRes2->isCompressionEnabled());
|
||||
}
|
||||
|
||||
TEST_F(GmmCompressionTests, givenRenderCompressedImageApplyAuxFlagsForImageThenSetFlagsToCompressed) {
|
||||
GmmRequirements gmmRequirements{};
|
||||
gmmRequirements.allowLargePages = true;
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "shared/source/command_container/command_encoder.h"
|
||||
#include "shared/source/command_container/encode_surface_state.h"
|
||||
#include "shared/source/gmm_helper/gmm_helper.h"
|
||||
#include "shared/source/gmm_helper/resource_info.h"
|
||||
#include "shared/source/helpers/aligned_memory.h"
|
||||
#include "shared/source/helpers/gfx_core_helper.h"
|
||||
#include "shared/source/helpers/pipe_control_args.h"
|
||||
@@ -1258,6 +1259,32 @@ HWTEST_F(GfxCoreHelperTest, whenSetCompressedFlagThenProperFlagSet) {
|
||||
EXPECT_EQ(0u, gmm->resourceParams.Flags.Info.RenderCompressed);
|
||||
}
|
||||
|
||||
HWTEST2_F(GfxCoreHelperTest, whenSetNotCompressedFlagThenProperValueReturned, IsAtLeastXe2HpgCore) {
|
||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||
auto gmm = std::make_unique<MockGmm>(pDevice->getGmmHelper());
|
||||
auto gmmFlags = gmm->gmmResourceInfo->getResourceFlags();
|
||||
gmmFlags->Info.NotCompressed = 0;
|
||||
EXPECT_TRUE(gfxCoreHelper.isCompressionAppliedForImportedResource(*gmm));
|
||||
}
|
||||
|
||||
HWTEST2_F(GfxCoreHelperTest, whenSetRenderCompressedFlagThenProperValueReturned, IsAtMostDg2) {
|
||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||
auto gmm = std::make_unique<MockGmm>(pDevice->getGmmHelper());
|
||||
auto gmmFlags = gmm->gmmResourceInfo->getResourceFlags();
|
||||
gmmFlags->Info.RenderCompressed = 1;
|
||||
gmmFlags->Info.MediaCompressed = 0;
|
||||
EXPECT_TRUE(gfxCoreHelper.isCompressionAppliedForImportedResource(*gmm));
|
||||
}
|
||||
|
||||
HWTEST2_F(GfxCoreHelperTest, whenSetMediaCompressedFlagThenProperValueReturned, IsAtMostDg2) {
|
||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||
auto gmm = std::make_unique<MockGmm>(pDevice->getGmmHelper());
|
||||
auto gmmFlags = gmm->gmmResourceInfo->getResourceFlags();
|
||||
gmmFlags->Info.RenderCompressed = 0;
|
||||
gmmFlags->Info.MediaCompressed = 1;
|
||||
EXPECT_TRUE(gfxCoreHelper.isCompressionAppliedForImportedResource(*gmm));
|
||||
}
|
||||
|
||||
HWTEST_F(GfxCoreHelperTest, whenAdjustPreemptionSurfaceSizeIsCalledThenCsrSizeDoesntChange) {
|
||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||
size_t csrSize = 1024;
|
||||
|
||||
Reference in New Issue
Block a user