Use GPU address in calculateNewGSH()
Change-Id: I82add7aab4b26444f288a9c4dbce6328578a03d2 Signed-off-by: Pawel Wilma <pawel.wilma@intel.com>
This commit is contained in:
parent
13f23dffdb
commit
fe228ea5f7
|
@ -49,7 +49,7 @@ void ScratchSpaceControllerBase::createScratchSpaceAllocation() {
|
|||
uint64_t ScratchSpaceControllerBase::calculateNewGSH() {
|
||||
auto &hwHelper = HwHelper::get(hwInfo.pPlatform->eRenderCoreFamily);
|
||||
auto scratchSpaceOffsetFor64bit = hwHelper.getScratchSpaceOffsetFor64bit();
|
||||
return reinterpret_cast<uint64_t>(scratchAllocation->getUnderlyingBuffer()) - scratchSpaceOffsetFor64bit;
|
||||
return scratchAllocation->getGpuAddress() - scratchSpaceOffsetFor64bit;
|
||||
}
|
||||
uint64_t ScratchSpaceControllerBase::getScratchPatchAddress() {
|
||||
//for 32 bit scratch space pointer is being programmed in Media VFE State and is relative to 0 as General State Base Address
|
||||
|
|
|
@ -219,3 +219,19 @@ HWTEST_F(CommandStreamReceiverHwTest, WhenScratchSpaceIsNotRequiredThenScratchAl
|
|||
EXPECT_FALSE(stateBaseAddressDirty);
|
||||
EXPECT_EQ(nullptr, scratchController->getScratchSpaceAllocation());
|
||||
}
|
||||
|
||||
HWTEST_F(CommandStreamReceiverHwTest, WhenScratchSpaceIsRequiredThenCorrectAddressIsReturned) {
|
||||
auto commandStreamReceiver = std::make_unique<MockCsrHw<FamilyType>>(*platformDevices[0], *pDevice->executionEnvironment);
|
||||
auto scratchController = commandStreamReceiver->scratchSpaceController.get();
|
||||
|
||||
bool cfeStateDirty = false;
|
||||
bool stateBaseAddressDirty = false;
|
||||
|
||||
std::unique_ptr<void, std::function<decltype(alignedFree)>> surfaceHeap(alignedMalloc(0x1000, 0x1000), alignedFree);
|
||||
scratchController->setRequiredScratchSpace(surfaceHeap.get(), 0x1000u, 0u, 0u, stateBaseAddressDirty, cfeStateDirty);
|
||||
|
||||
uint64_t expectedScratchAddress = 0xAAABBBCCCDDD000ull;
|
||||
scratchController->getScratchSpaceAllocation()->setCpuPtrAndGpuAddress(scratchController->getScratchSpaceAllocation()->getUnderlyingBuffer(), expectedScratchAddress);
|
||||
|
||||
EXPECT_EQ(expectedScratchAddress - MemoryConstants::pageSize, scratchController->calculateNewGSH());
|
||||
}
|
Loading…
Reference in New Issue