mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
Enable state base address tracking
Related-To: NEO-5055 Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
78cad1e3c0
commit
6a08d29869
@@ -55,14 +55,17 @@ ze_result_t CommandListImp::destroy() {
|
||||
|
||||
auto memoryManager = device->getNEODevice()->getMemoryManager();
|
||||
|
||||
auto heapAllocation = this->commandContainer.getIndirectHeap(NEO::HeapType::SURFACE_STATE)->getGraphicsAllocation();
|
||||
for (auto &engine : memoryManager->getRegisteredEngines()) {
|
||||
if (NEO::EngineHelpers::isComputeEngine(engine.getEngineType())) {
|
||||
auto contextId = engine.osContext->getContextId();
|
||||
auto surfaceStateHeap = this->commandContainer.getIndirectHeap(NEO::HeapType::SURFACE_STATE);
|
||||
if (surfaceStateHeap) {
|
||||
auto heapAllocation = surfaceStateHeap->getGraphicsAllocation();
|
||||
for (auto &engine : memoryManager->getRegisteredEngines()) {
|
||||
if (NEO::EngineHelpers::isComputeEngine(engine.getEngineType())) {
|
||||
auto contextId = engine.osContext->getContextId();
|
||||
|
||||
if (heapAllocation->isUsedByOsContext(contextId)) {
|
||||
engine.commandStreamReceiver->sendRenderStateCacheFlush();
|
||||
engine.commandStreamReceiver->waitForCompletionWithTimeout(NEO::WaitParams{false, false, NEO::TimeoutControls::maxTimeout}, engine.commandStreamReceiver->peekTaskCount());
|
||||
if (heapAllocation->isUsedByOsContext(contextId)) {
|
||||
engine.commandStreamReceiver->sendRenderStateCacheFlush();
|
||||
engine.commandStreamReceiver->waitForCompletionWithTimeout(NEO::WaitParams{false, false, NEO::TimeoutControls::maxTimeout}, engine.commandStreamReceiver->peekTaskCount());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ bool L0GfxCoreHelperHw<Family>::platformSupportsPipelineSelectTracking() const {
|
||||
|
||||
template <typename Family>
|
||||
bool L0GfxCoreHelperHw<Family>::platformSupportsStateBaseAddressTracking() const {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename Family>
|
||||
|
||||
@@ -44,6 +44,9 @@ struct CommandQueueExecuteCommandLists : public Test<DeviceFixture> {
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
auto tagAddress = device->getNEODevice()->getDefaultEngine().commandStreamReceiver->getTagAddress();
|
||||
*tagAddress = std::numeric_limits<TagAddressType>::max();
|
||||
|
||||
for (auto i = 0u; i < numCommandLists; i++) {
|
||||
auto commandList = CommandList::fromHandle(commandLists[i]);
|
||||
commandList->destroy();
|
||||
|
||||
@@ -49,9 +49,9 @@ XE_HPC_CORETEST_F(L0GfxCoreHelperTestXeHpc, GivenXeHpcWhenCheckingL0HelperForPip
|
||||
EXPECT_TRUE(l0GfxCoreHelper.platformSupportsPipelineSelectTracking());
|
||||
}
|
||||
|
||||
XE_HPC_CORETEST_F(L0GfxCoreHelperTestXeHpc, GivenXeHpcWhenCheckingL0HelperForStateBaseAddressTrackingSupportThenReturnFalse) {
|
||||
XE_HPC_CORETEST_F(L0GfxCoreHelperTestXeHpc, GivenXeHpcWhenCheckingL0HelperForStateBaseAddressTrackingSupportThenReturnTrue) {
|
||||
auto &l0GfxCoreHelper = getHelper<L0GfxCoreHelper>();
|
||||
EXPECT_FALSE(l0GfxCoreHelper.platformSupportsStateBaseAddressTracking());
|
||||
EXPECT_TRUE(l0GfxCoreHelper.platformSupportsStateBaseAddressTracking());
|
||||
}
|
||||
|
||||
XE_HPC_CORETEST_F(L0GfxCoreHelperTestXeHpc, GivenXeHpcWhenCheckingL0HelperForRayTracingSupportThenReturnTrue) {
|
||||
|
||||
@@ -51,9 +51,9 @@ XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenCheckingL0HelperForPip
|
||||
EXPECT_TRUE(l0GfxCoreHelper.platformSupportsPipelineSelectTracking());
|
||||
}
|
||||
|
||||
XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenCheckingL0HelperForStateBaseAddressTrackingSupportThenReturnFalse) {
|
||||
XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenCheckingL0HelperForStateBaseAddressTrackingSupportThenReturnTrue) {
|
||||
auto &l0GfxCoreHelper = getHelper<L0GfxCoreHelper>();
|
||||
EXPECT_FALSE(l0GfxCoreHelper.platformSupportsStateBaseAddressTracking());
|
||||
EXPECT_TRUE(l0GfxCoreHelper.platformSupportsStateBaseAddressTracking());
|
||||
}
|
||||
|
||||
XE_HPG_CORETEST_F(L0GfxCoreHelperTestXeHpg, GivenXeHpgWhenCheckingL0HelperForRayTracingSupportThenReturnTrue) {
|
||||
|
||||
Reference in New Issue
Block a user