mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-19 06:24:51 +08:00
feature(debugger): Force GRF count to 128
System Routine changes for implementing large-grf debugging will result in GRF count of 256 being reported for kernels in all GRF modes. Applications using L0 Debug API do not yet have a way to determine actual GRF count for kernel. This commit is a temporary adjustment to avoid breaking debug API users after new system routine is enabled. This problem will be fully solved in follow up patch with switch to zetDebugGetThreadRegisterSetProperties Related-to: NEO-7370 Signed-off-by: Brandon Yates <brandon.yates@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
5bfcb07b49
commit
bef89a3a7c
@@ -1192,6 +1192,7 @@ ze_result_t DebugSession::getRegisterSetProperties(Device *device, uint32_t *pCo
|
||||
auto parseRegsetDesc = [&](const SIP::regset_desc ®setDesc, zet_debug_regset_type_intel_gpu_t regsetType) {
|
||||
if (regsetDesc.num) {
|
||||
if (totalRegsetNum < *pCount) {
|
||||
uint16_t num = (regsetType == ZET_DEBUG_REGSET_TYPE_GRF_INTEL_GPU) ? 128 : regsetDesc.num;
|
||||
zet_debug_regset_properties_t regsetProps = {
|
||||
ZET_STRUCTURE_TYPE_DEBUG_REGSET_PROPERTIES,
|
||||
nullptr,
|
||||
@@ -1199,7 +1200,7 @@ ze_result_t DebugSession::getRegisterSetProperties(Device *device, uint32_t *pCo
|
||||
0,
|
||||
DebugSessionImp::typeToRegsetFlags(regsetType),
|
||||
0,
|
||||
regsetDesc.num,
|
||||
num,
|
||||
regsetDesc.bits,
|
||||
regsetDesc.bytes,
|
||||
};
|
||||
|
||||
@@ -318,6 +318,21 @@ TEST_F(DebugApiTest, givenNonZeroCountAndNullRegsetPointerWhenGetRegisterSetProp
|
||||
EXPECT_EQ(ZE_RESULT_ERROR_INVALID_NULL_POINTER, zetDebugGetRegisterSetProperties(device->toHandle(), &count, nullptr));
|
||||
}
|
||||
|
||||
TEST_F(DebugApiTest, givenSIPHeaderGRFCountNotEqualTo128ThenGetRegisterSetPropertiesReturns128) {
|
||||
mockBuiltins = new MockBuiltins();
|
||||
mockBuiltins->stateSaveAreaHeader = MockSipData::createStateSaveAreaHeader(2, 256);
|
||||
neoDevice->executionEnvironment->rootDeviceEnvironments[0]->builtins.reset(mockBuiltins);
|
||||
uint32_t count = 0;
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, zetDebugGetRegisterSetProperties(device->toHandle(), &count, nullptr));
|
||||
EXPECT_EQ(12u, count);
|
||||
|
||||
std::vector<zet_debug_regset_properties_t> regsetProps(count);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, zetDebugGetRegisterSetProperties(device->toHandle(), &count, regsetProps.data()));
|
||||
|
||||
EXPECT_EQ(12u, count);
|
||||
EXPECT_EQ(128u, regsetProps[0].count);
|
||||
}
|
||||
|
||||
TEST_F(DebugApiTest, givenGetRegisterSetPropertiesCalledCorrectPropertiesReturned) {
|
||||
uint32_t count = 0;
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, zetDebugGetRegisterSetProperties(device->toHandle(), &count, nullptr));
|
||||
|
||||
@@ -29,6 +29,10 @@ void clearUseFlags() {
|
||||
}
|
||||
|
||||
std::vector<char> createStateSaveAreaHeader(uint32_t version) {
|
||||
return createStateSaveAreaHeader(version, 128);
|
||||
}
|
||||
|
||||
std::vector<char> createStateSaveAreaHeader(uint32_t version, uint16_t grfNum) {
|
||||
SIP::StateSaveAreaHeader stateSaveAreaHeader = {
|
||||
{
|
||||
// versionHeader
|
||||
@@ -53,7 +57,7 @@ std::vector<char> createStateSaveAreaHeader(uint32_t version) {
|
||||
0, // slm_bank_size
|
||||
0, // slm_bank_valid
|
||||
4740, // sr_magic_offset
|
||||
{0, 128, 256, 32}, // grf
|
||||
{0, grfNum, 256, 32}, // grf
|
||||
{4096, 1, 256, 32}, // addr
|
||||
{4128, 2, 32, 4}, // flag
|
||||
{4156, 1, 32, 4}, // emask
|
||||
@@ -96,7 +100,7 @@ std::vector<char> createStateSaveAreaHeader(uint32_t version) {
|
||||
0, // slm_bank_size
|
||||
0, // slm_bank_valid
|
||||
4740, // sr_magic_offset
|
||||
{0, 128, 256, 32}, // grf
|
||||
{0, grfNum, 256, 32}, // grf
|
||||
{4096, 1, 256, 32}, // addr
|
||||
{4128, 2, 32, 4}, // flag
|
||||
{4156, 1, 32, 4}, // emask
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
* Copyright (C) 2018-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -47,5 +47,6 @@ extern bool useMockSip;
|
||||
|
||||
void clearUseFlags();
|
||||
std::vector<char> createStateSaveAreaHeader(uint32_t version);
|
||||
std::vector<char> createStateSaveAreaHeader(uint32_t version, uint16_t grfNum);
|
||||
} // namespace MockSipData
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user