2019-10-25 23:55:22 +08:00
|
|
|
/*
|
2024-04-24 18:13:00 +08:00
|
|
|
* Copyright (C) 2020-2024 Intel Corporation
|
2019-10-25 23:55:22 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2022-03-18 19:06:51 +08:00
|
|
|
#pragma once
|
2020-03-19 17:29:36 +08:00
|
|
|
#include "shared/source/command_container/command_encoder.h"
|
2022-03-18 19:06:51 +08:00
|
|
|
#include "shared/source/command_stream/linear_stream.h"
|
2023-02-02 00:23:01 +08:00
|
|
|
#include "shared/source/helpers/gfx_core_helper.h"
|
2021-12-22 22:11:05 +08:00
|
|
|
#include "shared/source/helpers/pipe_control_args.h"
|
2019-10-25 23:55:22 +08:00
|
|
|
|
|
|
|
namespace NEO {
|
2019-12-13 09:32:11 +08:00
|
|
|
|
|
|
|
template <>
|
2022-03-18 19:06:51 +08:00
|
|
|
void EncodeWA<Family>::addPipeControlBeforeStateBaseAddress(LinearStream &commandStream,
|
2023-01-06 00:57:56 +08:00
|
|
|
const RootDeviceEnvironment &rootDeviceEnvironment, bool isRcs, bool dcFlushRequired) {
|
2021-12-21 05:37:45 +08:00
|
|
|
PipeControlArgs args;
|
2022-10-12 02:47:13 +08:00
|
|
|
args.dcFlushEnable = dcFlushRequired;
|
2020-04-27 03:48:59 +08:00
|
|
|
args.textureCacheInvalidationEnable = true;
|
|
|
|
args.hdcPipelineFlush = true;
|
2021-09-30 00:07:23 +08:00
|
|
|
|
2023-01-06 00:57:56 +08:00
|
|
|
NEO::EncodeWA<Family>::addPipeControlPriorToNonPipelinedStateCommand(commandStream, args, rootDeviceEnvironment, isRcs);
|
2019-12-13 09:32:11 +08:00
|
|
|
}
|
2021-10-01 19:47:49 +08:00
|
|
|
|
2023-03-01 05:08:09 +08:00
|
|
|
template <>
|
|
|
|
inline void EncodeMiArbCheck<Family>::adjust(MI_ARB_CHECK &miArbCheck, std::optional<bool> preParserDisable) {
|
2023-11-30 16:32:25 +08:00
|
|
|
if (debugManager.flags.ForcePreParserEnabledForMiArbCheck.get() != -1) {
|
|
|
|
preParserDisable = !debugManager.flags.ForcePreParserEnabledForMiArbCheck.get();
|
2023-03-01 05:08:09 +08:00
|
|
|
}
|
|
|
|
if (preParserDisable.has_value()) {
|
|
|
|
miArbCheck.setPreParserDisable(preParserDisable.value());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-04-24 18:13:00 +08:00
|
|
|
template <>
|
|
|
|
inline void EncodeStoreMemory<Family>::encodeForceCompletionCheck(MI_STORE_DATA_IMM &storeDataImmCmd) {
|
|
|
|
storeDataImmCmd.setForceWriteCompletionCheck(true);
|
|
|
|
}
|
|
|
|
|
2019-12-13 09:32:11 +08:00
|
|
|
} // namespace NEO
|