2021-05-18 02:46:21 +00:00
|
|
|
/*
|
2025-07-28 11:32:46 +00:00
|
|
|
* Copyright (C) 2021-2025 Intel Corporation
|
2021-05-18 02:46:21 +00:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "stream_properties.inl"
|
|
|
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
|
|
2025-07-28 11:32:46 +00:00
|
|
|
struct PipelineSelectPropertiesSupport {
|
|
|
|
|
bool systolicMode = false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct PipelineSelectProperties {
|
|
|
|
|
StreamProperty modeSelected{};
|
|
|
|
|
StreamProperty systolicMode{};
|
|
|
|
|
|
|
|
|
|
void initSupport(const RootDeviceEnvironment &rootDeviceEnvironment);
|
|
|
|
|
void resetState();
|
|
|
|
|
|
|
|
|
|
void setPropertiesAll(bool modeSelected, bool systolicMode);
|
|
|
|
|
void setPropertiesModeSelected(bool modeSelected, bool clearDirtyState);
|
|
|
|
|
void setPropertySystolicMode(bool systolicMode);
|
|
|
|
|
|
|
|
|
|
void copyPropertiesAll(const PipelineSelectProperties &properties);
|
|
|
|
|
void copyPropertiesSystolicMode(const PipelineSelectProperties &properties);
|
|
|
|
|
|
|
|
|
|
bool isDirty() const;
|
|
|
|
|
void clearIsDirty();
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
PipelineSelectPropertiesSupport pipelineSelectPropertiesSupport = {};
|
|
|
|
|
bool propertiesSupportLoaded = false;
|
|
|
|
|
};
|
|
|
|
|
|
2021-05-18 02:46:21 +00:00
|
|
|
struct StreamProperties {
|
|
|
|
|
StateComputeModeProperties stateComputeMode{};
|
|
|
|
|
FrontEndProperties frontEndState{};
|
2022-09-12 19:11:56 +00:00
|
|
|
PipelineSelectProperties pipelineSelect{};
|
2022-11-22 17:17:04 +00:00
|
|
|
StateBaseAddressProperties stateBaseAddress{};
|
2023-03-09 23:12:09 +00:00
|
|
|
|
|
|
|
|
void initSupport(const RootDeviceEnvironment &rootDeviceEnvironment) {
|
|
|
|
|
stateComputeMode.initSupport(rootDeviceEnvironment);
|
|
|
|
|
frontEndState.initSupport(rootDeviceEnvironment);
|
|
|
|
|
pipelineSelect.initSupport(rootDeviceEnvironment);
|
|
|
|
|
stateBaseAddress.initSupport(rootDeviceEnvironment);
|
|
|
|
|
}
|
2023-04-03 22:03:02 +00:00
|
|
|
void resetState() {
|
|
|
|
|
stateComputeMode.resetState();
|
|
|
|
|
frontEndState.resetState();
|
|
|
|
|
pipelineSelect.resetState();
|
|
|
|
|
stateBaseAddress.resetState();
|
|
|
|
|
}
|
2021-05-18 02:46:21 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace NEO
|