Files
compute-runtime/shared/source/command_stream/stream_property.h
Jaroslaw Warchulski cc79a136c9 refactor: do not use C headers
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2025-11-25 12:07:50 +01:00

40 lines
912 B
C++

/*
* Copyright (C) 2021-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include <cstddef>
#include <cstdint>
namespace NEO {
template <typename Type, bool fullStateProperty>
struct StreamPropertyType {
static constexpr Type initValue = static_cast<Type>(-1);
Type value = initValue;
bool isDirty = false;
void set(Type newValue) {
if constexpr (fullStateProperty) {
if ((value != newValue) && (newValue != initValue)) {
value = newValue;
isDirty = true;
}
} else if (newValue != initValue) {
value = newValue;
}
}
};
using StreamProperty32 = StreamPropertyType<int32_t, true>;
using StreamProperty64 = StreamPropertyType<int64_t, true>;
using StreamPropertySizeT = StreamPropertyType<size_t, false>;
using StreamProperty = StreamProperty32;
} // namespace NEO