feature: save command buffer gpu address for front end command in command list

Related-To: NEO-15376

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2025-08-04 13:36:33 +00:00
committed by Compute-Runtime-Automation
parent 3e2acefac1
commit 841267ecbd
21 changed files with 108 additions and 47 deletions

View File

@@ -37,7 +37,8 @@ struct PreambleHelper {
static void appendProgramVFEState(const RootDeviceEnvironment &rootDeviceEnvironment, const StreamProperties &streamProperties, void *cmd);
static void *getSpaceForVfeState(LinearStream *pCommandStream,
const HardwareInfo &hwInfo,
EngineGroupType engineGroupType);
EngineGroupType engineGroupType,
uint64_t *cmdBufferGpuAddress);
static void programVfeState(void *pVfeState,
const RootDeviceEnvironment &rootDeviceEnvironment,
uint32_t scratchSize,

View File

@@ -32,10 +32,15 @@ uint32_t PreambleHelper<GfxFamily>::getUrbEntryAllocationSize() {
template <typename GfxFamily>
void *PreambleHelper<GfxFamily>::getSpaceForVfeState(LinearStream *pCommandStream,
const HardwareInfo &hwInfo,
EngineGroupType engineGroupType) {
EngineGroupType engineGroupType,
uint64_t *cmdBufferGpuAddress) {
if constexpr (GfxFamily::isHeaplessRequired() == false) {
using CFE_STATE = typename GfxFamily::CFE_STATE;
return pCommandStream->getSpace(sizeof(CFE_STATE));
void *cmdPtr = pCommandStream->getSpace(sizeof(CFE_STATE));
if (cmdBufferGpuAddress) {
*cmdBufferGpuAddress = (pCommandStream->getCurrentGpuAddressPosition() - sizeof(CFE_STATE));
}
return cmdPtr;
} else {
return nullptr;
}