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