Files
compute-runtime/shared/source/command_stream/stream_properties.h
2025-07-28 15:17:46 +02:00

61 lines
1.7 KiB
C++

/*
* Copyright (C) 2021-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "stream_properties.inl"
namespace NEO {
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;
};
struct StreamProperties {
StateComputeModeProperties stateComputeMode{};
FrontEndProperties frontEndState{};
PipelineSelectProperties pipelineSelect{};
StateBaseAddressProperties stateBaseAddress{};
void initSupport(const RootDeviceEnvironment &rootDeviceEnvironment) {
stateComputeMode.initSupport(rootDeviceEnvironment);
frontEndState.initSupport(rootDeviceEnvironment);
pipelineSelect.initSupport(rootDeviceEnvironment);
stateBaseAddress.initSupport(rootDeviceEnvironment);
}
void resetState() {
stateComputeMode.resetState();
frontEndState.resetState();
pipelineSelect.resetState();
stateBaseAddress.resetState();
}
};
} // namespace NEO