mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-07 21:27:04 +08:00
feature: Enabling Blitter Remapping for REGISTER_MEM
Related-To: NEO-11934 Signed-off-by: Andrzej Koska <andrzej.koska@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
334b6e0d51
commit
d4f59c1b09
@@ -680,6 +680,83 @@ HWTEST2_F(CommandEncoderTests, whenUsingDefaultFilteringAndAppendSamplerStatePar
|
||||
EXPECT_EQ(SAMPLER_STATE::LOW_QUALITY_FILTER_DISABLE, state.getLowQualityFilter());
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandEncoderTests, givenMiStoreRegisterMemwhenRemapAndIsBcsThenRegisterOffsetsBcs0Base, IsAtLeastGen12lp) {
|
||||
using MI_STORE_REGISTER_MEM = typename FamilyType::MI_STORE_REGISTER_MEM;
|
||||
|
||||
uint64_t baseAddr = 0x10;
|
||||
uint32_t offset = 0x2000; // remapable
|
||||
|
||||
constexpr size_t bufferSize = 2100;
|
||||
uint8_t buffer[bufferSize];
|
||||
LinearStream cmdStream(buffer, bufferSize);
|
||||
auto buf = cmdStream.getSpaceForCmd<MI_STORE_REGISTER_MEM>();
|
||||
|
||||
bool isBcs = true;
|
||||
EncodeStoreMMIO<FamilyType>::encode(buf, offset, baseAddr, true, isBcs);
|
||||
auto storeRegMem = genCmdCast<MI_STORE_REGISTER_MEM *>(buffer);
|
||||
ASSERT_NE(nullptr, storeRegMem);
|
||||
EXPECT_EQ(storeRegMem->getRegisterAddress(), RegisterOffsets::bcs0Base + offset);
|
||||
|
||||
isBcs = false;
|
||||
EncodeStoreMMIO<FamilyType>::encode(buf, offset, baseAddr, true, isBcs);
|
||||
storeRegMem = genCmdCast<MI_STORE_REGISTER_MEM *>(buffer);
|
||||
ASSERT_NE(nullptr, storeRegMem);
|
||||
EXPECT_EQ(storeRegMem->getRegisterAddress(), offset);
|
||||
|
||||
offset = 0x1900; // not remapable
|
||||
isBcs = true;
|
||||
EncodeStoreMMIO<FamilyType>::encode(buf, offset, baseAddr, true, isBcs);
|
||||
storeRegMem = genCmdCast<MI_STORE_REGISTER_MEM *>(buffer);
|
||||
ASSERT_NE(nullptr, storeRegMem);
|
||||
EXPECT_EQ(storeRegMem->getRegisterAddress(), offset);
|
||||
|
||||
isBcs = false;
|
||||
EncodeStoreMMIO<FamilyType>::encode(buf, offset, baseAddr, true, isBcs);
|
||||
storeRegMem = genCmdCast<MI_STORE_REGISTER_MEM *>(buffer);
|
||||
ASSERT_NE(nullptr, storeRegMem);
|
||||
EXPECT_EQ(storeRegMem->getRegisterAddress(), offset);
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandEncoderTests, givenMiLoadRegisterMemwhenRemapAndIsBcsThenRegisterOffsetsBcs0Base, IsAtLeastGen12lp) {
|
||||
using MI_LOAD_REGISTER_MEM = typename FamilyType::MI_LOAD_REGISTER_MEM;
|
||||
|
||||
uint64_t baseAddr = 0x10;
|
||||
uint32_t offset = 0x2000; // remapable
|
||||
|
||||
constexpr size_t bufferSize = 2100;
|
||||
uint8_t buffer[bufferSize];
|
||||
LinearStream cmdStream(buffer, bufferSize);
|
||||
uint8_t *ptr = buffer;
|
||||
bool isBcs = true;
|
||||
|
||||
EncodeSetMMIO<FamilyType>::encodeMEM(cmdStream, offset, baseAddr, isBcs);
|
||||
auto loadRegMem = genCmdCast<MI_LOAD_REGISTER_MEM *>(ptr);
|
||||
ASSERT_NE(nullptr, loadRegMem);
|
||||
EXPECT_EQ(loadRegMem->getRegisterAddress(), RegisterOffsets::bcs0Base + offset);
|
||||
|
||||
isBcs = false;
|
||||
ptr += sizeof(MI_LOAD_REGISTER_MEM);
|
||||
EncodeSetMMIO<FamilyType>::encodeMEM(cmdStream, offset, baseAddr, isBcs);
|
||||
loadRegMem = genCmdCast<MI_LOAD_REGISTER_MEM *>(ptr);
|
||||
ASSERT_NE(nullptr, loadRegMem);
|
||||
EXPECT_EQ(loadRegMem->getRegisterAddress(), offset);
|
||||
|
||||
offset = 0x1900; // not remapable
|
||||
isBcs = true;
|
||||
ptr += sizeof(MI_LOAD_REGISTER_MEM);
|
||||
EncodeSetMMIO<FamilyType>::encodeMEM(cmdStream, offset, baseAddr, isBcs);
|
||||
loadRegMem = genCmdCast<MI_LOAD_REGISTER_MEM *>(ptr);
|
||||
ASSERT_NE(nullptr, loadRegMem);
|
||||
EXPECT_EQ(loadRegMem->getRegisterAddress(), offset);
|
||||
|
||||
isBcs = false;
|
||||
ptr += sizeof(MI_LOAD_REGISTER_MEM);
|
||||
EncodeSetMMIO<FamilyType>::encodeMEM(cmdStream, offset, baseAddr, isBcs);
|
||||
loadRegMem = genCmdCast<MI_LOAD_REGISTER_MEM *>(ptr);
|
||||
ASSERT_NE(nullptr, loadRegMem);
|
||||
EXPECT_EQ(loadRegMem->getRegisterAddress(), offset);
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandEncoderTests, whenForcingLowQualityFilteringAndAppendSamplerStateParamsThenEnableLowQualityFilter, IsAtLeastGen12lp) {
|
||||
|
||||
DebugManagerStateRestore dbgRestore;
|
||||
|
||||
Reference in New Issue
Block a user