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) {
|
auto parseRegsetDesc = [&](const SIP::regset_desc ®setDesc, zet_debug_regset_type_intel_gpu_t regsetType) {
|
||||||
if (regsetDesc.num) {
|
if (regsetDesc.num) {
|
||||||
if (totalRegsetNum < *pCount) {
|
if (totalRegsetNum < *pCount) {
|
||||||
|
uint16_t num = (regsetType == ZET_DEBUG_REGSET_TYPE_GRF_INTEL_GPU) ? 128 : regsetDesc.num;
|
||||||
zet_debug_regset_properties_t regsetProps = {
|
zet_debug_regset_properties_t regsetProps = {
|
||||||
ZET_STRUCTURE_TYPE_DEBUG_REGSET_PROPERTIES,
|
ZET_STRUCTURE_TYPE_DEBUG_REGSET_PROPERTIES,
|
||||||
nullptr,
|
nullptr,
|
||||||
@@ -1199,7 +1200,7 @@ ze_result_t DebugSession::getRegisterSetProperties(Device *device, uint32_t *pCo
|
|||||||
0,
|
0,
|
||||||
DebugSessionImp::typeToRegsetFlags(regsetType),
|
DebugSessionImp::typeToRegsetFlags(regsetType),
|
||||||
0,
|
0,
|
||||||
regsetDesc.num,
|
num,
|
||||||
regsetDesc.bits,
|
regsetDesc.bits,
|
||||||
regsetDesc.bytes,
|
regsetDesc.bytes,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -318,6 +318,21 @@ TEST_F(DebugApiTest, givenNonZeroCountAndNullRegsetPointerWhenGetRegisterSetProp
|
|||||||
EXPECT_EQ(ZE_RESULT_ERROR_INVALID_NULL_POINTER, zetDebugGetRegisterSetProperties(device->toHandle(), &count, nullptr));
|
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) {
|
TEST_F(DebugApiTest, givenGetRegisterSetPropertiesCalledCorrectPropertiesReturned) {
|
||||||
uint32_t count = 0;
|
uint32_t count = 0;
|
||||||
EXPECT_EQ(ZE_RESULT_SUCCESS, zetDebugGetRegisterSetProperties(device->toHandle(), &count, nullptr));
|
EXPECT_EQ(ZE_RESULT_SUCCESS, zetDebugGetRegisterSetProperties(device->toHandle(), &count, nullptr));
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ void clearUseFlags() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<char> createStateSaveAreaHeader(uint32_t version) {
|
std::vector<char> createStateSaveAreaHeader(uint32_t version) {
|
||||||
|
return createStateSaveAreaHeader(version, 128);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<char> createStateSaveAreaHeader(uint32_t version, uint16_t grfNum) {
|
||||||
SIP::StateSaveAreaHeader stateSaveAreaHeader = {
|
SIP::StateSaveAreaHeader stateSaveAreaHeader = {
|
||||||
{
|
{
|
||||||
// versionHeader
|
// versionHeader
|
||||||
@@ -43,32 +47,32 @@ std::vector<char> createStateSaveAreaHeader(uint32_t version) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
// regHeader
|
// regHeader
|
||||||
1, // num_slices
|
1, // num_slices
|
||||||
6, // num_subslices_per_slice
|
6, // num_subslices_per_slice
|
||||||
16, // num_eus_per_subslice
|
16, // num_eus_per_subslice
|
||||||
7, // num_threads_per_eu
|
7, // num_threads_per_eu
|
||||||
0, // state_area_offset
|
0, // state_area_offset
|
||||||
6144, // state_save_size
|
6144, // state_save_size
|
||||||
0, // slm_area_offset
|
0, // slm_area_offset
|
||||||
0, // slm_bank_size
|
0, // slm_bank_size
|
||||||
0, // slm_bank_valid
|
0, // slm_bank_valid
|
||||||
4740, // sr_magic_offset
|
4740, // sr_magic_offset
|
||||||
{0, 128, 256, 32}, // grf
|
{0, grfNum, 256, 32}, // grf
|
||||||
{4096, 1, 256, 32}, // addr
|
{4096, 1, 256, 32}, // addr
|
||||||
{4128, 2, 32, 4}, // flag
|
{4128, 2, 32, 4}, // flag
|
||||||
{4156, 1, 32, 4}, // emask
|
{4156, 1, 32, 4}, // emask
|
||||||
{4160, 2, 128, 16}, // sr
|
{4160, 2, 128, 16}, // sr
|
||||||
{4192, 1, 128, 16}, // cr
|
{4192, 1, 128, 16}, // cr
|
||||||
{4256, 1, 96, 12}, // notification
|
{4256, 1, 96, 12}, // notification
|
||||||
{4288, 1, 128, 16}, // tdr
|
{4288, 1, 128, 16}, // tdr
|
||||||
{4320, 10, 256, 32}, // acc
|
{4320, 10, 256, 32}, // acc
|
||||||
{0, 0, 0, 0}, // mme
|
{0, 0, 0, 0}, // mme
|
||||||
{4672, 1, 32, 4}, // ce
|
{4672, 1, 32, 4}, // ce
|
||||||
{4704, 1, 128, 16}, // sp
|
{4704, 1, 128, 16}, // sp
|
||||||
{0, 0, 0, 0}, // cmd
|
{0, 0, 0, 0}, // cmd
|
||||||
{4640, 1, 128, 16}, // tm
|
{4640, 1, 128, 16}, // tm
|
||||||
{0, 1, 32, 4}, // fc
|
{0, 1, 32, 4}, // fc
|
||||||
{4736, 1, 32, 4}, // dbg
|
{4736, 1, 32, 4}, // dbg
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -96,7 +100,7 @@ std::vector<char> createStateSaveAreaHeader(uint32_t version) {
|
|||||||
0, // slm_bank_size
|
0, // slm_bank_size
|
||||||
0, // slm_bank_valid
|
0, // slm_bank_valid
|
||||||
4740, // sr_magic_offset
|
4740, // sr_magic_offset
|
||||||
{0, 128, 256, 32}, // grf
|
{0, grfNum, 256, 32}, // grf
|
||||||
{4096, 1, 256, 32}, // addr
|
{4096, 1, 256, 32}, // addr
|
||||||
{4128, 2, 32, 4}, // flag
|
{4128, 2, 32, 4}, // flag
|
||||||
{4156, 1, 32, 4}, // emask
|
{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
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
@@ -47,5 +47,6 @@ extern bool useMockSip;
|
|||||||
|
|
||||||
void clearUseFlags();
|
void clearUseFlags();
|
||||||
std::vector<char> createStateSaveAreaHeader(uint32_t version);
|
std::vector<char> createStateSaveAreaHeader(uint32_t version);
|
||||||
|
std::vector<char> createStateSaveAreaHeader(uint32_t version, uint16_t grfNum);
|
||||||
} // namespace MockSipData
|
} // namespace MockSipData
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|||||||
Reference in New Issue
Block a user