Skip to content

Commit da982b4

Browse files
Add readSbaBuffer() interface
Related-To: NEO-6277 Signed-off-by: Igor Venevtsev <[email protected]>
1 parent 1028295 commit da982b4

File tree

7 files changed

+43
-0
lines changed

7 files changed

+43
-0
lines changed

level_zero/tools/source/debug/debug_session.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ struct DebugSession : _zet_debug_session_handle_t {
7979

8080
virtual bool isBindlessSystemRoutine();
8181
virtual bool readModuleDebugArea() = 0;
82+
virtual ze_result_t readSbaBuffer(EuThread::ThreadId threadId, SbaTrackedAddresses &sbaBuffer) = 0;
8283

8384
void fillDevicesFromThread(ze_device_thread_t thread, std::vector<uint8_t> &devices);
8485

level_zero/tools/test/unit_tests/sources/debug/mock_debug_session.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ struct DebugSessionMock : public L0::DebugSession {
6262
ze_result_t writeRegisters(ze_device_thread_t thread, uint32_t type, uint32_t start, uint32_t count, void *pRegisterValues) override {
6363
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
6464
}
65+
ze_result_t readSbaBuffer(EuThread::ThreadId threadId, SbaTrackedAddresses &sbaBuffer) override {
66+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
67+
}
6568
void startAsyncThread() override {
6669
asyncThreadStarted = true;
6770
}

opencl/test/unit_test/helpers/hw_helper_tests.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1318,3 +1318,23 @@ HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformPlatformWhenCheckingIfEngineTyp
13181318
const auto &hwHelper = HwHelper::get(renderCoreFamily);
13191319
EXPECT_FALSE(hwHelper.isEngineTypeRemappingToHwSpecificRequired());
13201320
}
1321+
1322+
HWTEST2_F(HwHelperTest, givenAtMostGen12lpPlatformiWhenCheckingIfScratchSpaceSurfaceStateAccessibleThenFalseIsReturned, IsAtMostGen12lp) {
1323+
const auto &hwHelper = HwHelper::get(renderCoreFamily);
1324+
EXPECT_FALSE(hwHelper.isScratchSpaceSurfaceStateAccessible());
1325+
}
1326+
1327+
HWTEST2_F(HwHelperTest, givenAtLeastXeHpPlatformWhenCheckingIfScratchSpaceSurfaceStateAccessibleTheniTrueIsReturned, IsAtLeastXeHpCore) {
1328+
const auto &hwHelper = HwHelper::get(renderCoreFamily);
1329+
EXPECT_TRUE(hwHelper.isScratchSpaceSurfaceStateAccessible());
1330+
}
1331+
1332+
HWTEST_F(HwHelperTest, givenGetRenderSurfaceStateBaseAddressCalledThenCorrectValueIsReturned) {
1333+
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
1334+
1335+
RENDER_SURFACE_STATE renderSurfaceState;
1336+
uint64_t expectedBaseAddress = 0x1122334455667788;
1337+
renderSurfaceState.setSurfaceBaseAddress(expectedBaseAddress);
1338+
const auto &hwHelper = HwHelper::get(renderCoreFamily);
1339+
EXPECT_EQ(expectedBaseAddress, hwHelper.getRenderSurfaceStateBaseAddress(&renderSurfaceState));
1340+
}

shared/source/helpers/hw_helper.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ class HwHelper {
146146
virtual void adjustPreemptionSurfaceSize(size_t &csrSize) const = 0;
147147
virtual size_t getSamplerStateSize() const = 0;
148148

149+
virtual bool isScratchSpaceSurfaceStateAccessible() const = 0;
150+
virtual uint64_t getRenderSurfaceStateBaseAddress(void *renderSurfaceState) const = 0;
151+
149152
protected:
150153
HwHelper() = default;
151154
};
@@ -367,6 +370,9 @@ class HwHelperHw : public HwHelper {
367370

368371
void adjustPreemptionSurfaceSize(size_t &csrSize) const override;
369372

373+
bool isScratchSpaceSurfaceStateAccessible() const override;
374+
uint64_t getRenderSurfaceStateBaseAddress(void *renderSurfaceState) const override;
375+
370376
protected:
371377
static const AuxTranslationMode defaultAuxTranslationMode;
372378
HwHelperHw() = default;

shared/source/helpers/hw_helper_base.inl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,4 +626,8 @@ template <typename GfxFamily>
626626
void HwHelperHw<GfxFamily>::adjustPreemptionSurfaceSize(size_t &csrSize) const {
627627
}
628628

629+
template <typename GfxFamily>
630+
uint64_t HwHelperHw<GfxFamily>::getRenderSurfaceStateBaseAddress(void *renderSurfaceState) const {
631+
return reinterpret_cast<typename GfxFamily::RENDER_SURFACE_STATE *>(renderSurfaceState)->getSurfaceBaseAddress();
632+
}
629633
} // namespace NEO

shared/source/helpers/hw_helper_bdw_and_later.inl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,8 @@ bool HwHelperHw<GfxFamily>::additionalPipeControlArgsRequired() const {
124124
return false;
125125
}
126126

127+
template <typename GfxFamily>
128+
bool HwHelperHw<GfxFamily>::isScratchSpaceSurfaceStateAccessible() const {
129+
return false;
130+
}
127131
} // namespace NEO

shared/source/helpers/hw_helper_xehp_and_later.inl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,4 +177,9 @@ inline bool HwHelperHw<GfxFamily>::preferSmallWorkgroupSizeForKernel(const size_
177177
}
178178
return true;
179179
}
180+
181+
template <typename GfxFamily>
182+
bool HwHelperHw<GfxFamily>::isScratchSpaceSurfaceStateAccessible() const {
183+
return true;
184+
}
180185
} // namespace NEO

0 commit comments

Comments
 (0)