2021-05-18 02:46:21 +00:00
|
|
|
/*
|
2022-02-10 23:33:40 +00:00
|
|
|
* Copyright (C) 2021-2022 Intel Corporation
|
2021-05-18 02:46:21 +00:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
2022-07-24 04:21:16 +00:00
|
|
|
#include "shared/source/command_stream/preemption_mode.h"
|
2021-05-18 02:46:21 +00:00
|
|
|
#include "shared/source/command_stream/stream_property.h"
|
|
|
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
|
|
|
|
|
|
struct StateComputeModeProperties {
|
|
|
|
|
StreamProperty isCoherencyRequired{};
|
2021-07-07 13:34:46 +00:00
|
|
|
StreamProperty largeGrfMode{};
|
2021-11-19 13:38:23 +00:00
|
|
|
StreamProperty zPassAsyncComputeThreadLimit{};
|
|
|
|
|
StreamProperty pixelAsyncComputeThreadLimit{};
|
2021-12-07 11:46:24 +00:00
|
|
|
StreamProperty threadArbitrationPolicy{};
|
2022-06-23 15:25:10 +00:00
|
|
|
StreamProperty devicePreemptionMode{};
|
2021-05-18 02:46:21 +00:00
|
|
|
|
2022-06-23 15:25:10 +00:00
|
|
|
void setProperties(bool requiresCoherency, uint32_t numGrfRequired, int32_t threadArbitrationPolicy, PreemptionMode devicePreemptionMode, const HardwareInfo &hwInfo);
|
2021-05-26 13:51:11 +00:00
|
|
|
void setProperties(const StateComputeModeProperties &properties);
|
2021-12-09 11:01:40 +00:00
|
|
|
bool isDirty() const;
|
2022-03-08 13:46:04 +00:00
|
|
|
|
|
|
|
|
protected:
|
2021-05-18 02:46:21 +00:00
|
|
|
void clearIsDirty();
|
2022-03-08 13:46:04 +00:00
|
|
|
|
|
|
|
|
bool isDirtyExtra() const;
|
2022-05-16 20:34:53 +00:00
|
|
|
void setPropertiesExtra(bool reportNumGrf, bool reportThreadArbitrationPolicy);
|
2022-03-08 13:46:04 +00:00
|
|
|
void setPropertiesExtra(const StateComputeModeProperties &properties);
|
|
|
|
|
void clearIsDirtyExtra();
|
2021-05-18 02:46:21 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct FrontEndProperties {
|
2022-02-10 23:33:40 +00:00
|
|
|
StreamProperty computeDispatchAllWalkerEnable{};
|
|
|
|
|
StreamProperty disableEUFusion{};
|
2021-07-28 17:17:51 +00:00
|
|
|
StreamProperty disableOverdispatch{};
|
2021-08-13 14:48:13 +00:00
|
|
|
StreamProperty singleSliceDispatchCcsMode{};
|
2021-07-28 17:17:51 +00:00
|
|
|
|
2022-03-08 13:46:04 +00:00
|
|
|
void setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice,
|
|
|
|
|
const HardwareInfo &hwInfo);
|
2021-05-26 13:51:11 +00:00
|
|
|
void setProperties(const FrontEndProperties &properties);
|
2021-12-09 11:01:40 +00:00
|
|
|
bool isDirty() const;
|
2022-03-08 13:46:04 +00:00
|
|
|
|
|
|
|
|
protected:
|
2021-05-26 13:51:11 +00:00
|
|
|
void clearIsDirty();
|
2021-05-18 02:46:21 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace NEO
|