Skip to content

Commit 2c84c14

Browse files
Add program HDC pipeline flush prior to SBA
Change-Id: If1223f7dbc07b6a5275a642fac27a44b87a9f97c Signed-off-by: Kamil Kopryk <[email protected]> Related-To: NEO-3974
1 parent a33495a commit 2c84c14

10 files changed

+24
-35
lines changed

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!groovy
22
dependenciesRevision='e3e18192ff06cf3be89b39aa76b0b3c8d8db6816-1353'
33
strategy='EQUAL'
4-
allowedCD=257
4+
allowedCD=256
55
allowedF=7

runtime/command_stream/command_stream_receiver_hw_base.inl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,14 +127,6 @@ inline typename GfxFamily::PIPE_CONTROL *CommandStreamReceiverHw<GfxFamily>::add
127127
return pCmd;
128128
}
129129

130-
template <typename GfxFamily>
131-
inline typename GfxFamily::PIPE_CONTROL *CommandStreamReceiverHw<GfxFamily>::addPipeControlBeforeStateBaseAddress(LinearStream &commandStream) {
132-
auto pCmd = addPipeControlCmd(commandStream);
133-
pCmd->setTextureCacheInvalidationEnable(true);
134-
pCmd->setDcFlushEnable(true);
135-
return pCmd;
136-
}
137-
138130
template <typename GfxFamily>
139131
CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
140132
LinearStream &commandStreamTask,

runtime/command_stream/command_stream_receiver_hw_bdw_plus.inl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,12 @@ bool CommandStreamReceiverHw<GfxFamily>::isMultiOsContextCapable() const {
7676
return false;
7777
}
7878

79+
template <typename GfxFamily>
80+
inline typename GfxFamily::PIPE_CONTROL *CommandStreamReceiverHw<GfxFamily>::addPipeControlBeforeStateBaseAddress(LinearStream &commandStream) {
81+
auto pCmd = addPipeControlCmd(commandStream);
82+
pCmd->setTextureCacheInvalidationEnable(true);
83+
pCmd->setDcFlushEnable(true);
84+
return pCmd;
85+
}
86+
7987
} // namespace NEO

runtime/command_stream/command_stream_receiver_hw_tgllp_plus.inl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77

88
#include "runtime/command_stream/command_stream_receiver_hw.h"
9+
#include "runtime/helpers/state_compute_mode_helper.h"
910

1011
namespace NEO {
1112
template <typename GfxFamily>
@@ -32,4 +33,13 @@ void CommandStreamReceiverHw<GfxFamily>::programComputeMode(LinearStream &stream
3233
adjustComputeMode(stream, dispatchFlags, stateComputeMode);
3334
}
3435
}
35-
} // namespace NEO
36+
37+
template <>
38+
inline typename Family::PIPE_CONTROL *CommandStreamReceiverHw<Family>::addPipeControlBeforeStateBaseAddress(LinearStream &commandStream) {
39+
auto pCmd = addPipeControlCmd(commandStream);
40+
pCmd->setTextureCacheInvalidationEnable(true);
41+
pCmd->setDcFlushEnable(true);
42+
pCmd->setHdcPipelineFlush(true);
43+
return pCmd;
44+
}
45+
} // namespace NEO

runtime/gen12lp/command_stream_receiver_hw_gen12lp.cpp

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@
66
*/
77

88
#include "core/gen12lp/hw_cmds.h"
9+
10+
using Family = NEO::TGLLPFamily;
11+
912
#include "runtime/command_stream/command_stream_receiver_hw_bdw_plus.inl"
1013
#include "runtime/command_stream/command_stream_receiver_hw_tgllp_plus.inl"
1114
#include "runtime/command_stream/device_command_stream.h"
1215
#include "runtime/gen12lp/helpers_gen12lp.h"
1316
#include "runtime/helpers/blit_commands_helper_bdw_plus.inl"
1417

1518
namespace NEO {
16-
typedef TGLLPFamily Family;
1719
static auto gfxCore = IGFX_GEN12LP_CORE;
1820

1921
template <>
@@ -52,18 +54,6 @@ void populateFactoryTable<CommandStreamReceiverHw<Family>>() {
5254
commandStreamReceiverFactory[gfxCore] = DeviceCommandStreamReceiver<Family>::create;
5355
}
5456

55-
template <>
56-
inline typename Family::PIPE_CONTROL *CommandStreamReceiverHw<Family>::addPipeControlBeforeStateBaseAddress(LinearStream &commandStream) {
57-
auto pCmd = addPipeControlCmd(commandStream);
58-
pCmd->setTextureCacheInvalidationEnable(true);
59-
pCmd->setDcFlushEnable(true);
60-
61-
if (Gen12LPHelpers::hdcFlushForPipeControlBeforeStateBaseAddressRequired(executionEnvironment.getHardwareInfo()->platform.eProductFamily)) {
62-
pCmd->setHdcPipelineFlush(true);
63-
}
64-
return pCmd;
65-
}
66-
6757
template class CommandStreamReceiverHw<Family>;
6858
template struct BlitCommandsHelper<Family>;
6959

runtime/gen12lp/helpers_gen12lp.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212

1313
namespace NEO {
1414
namespace Gen12LPHelpers {
15-
bool hdcFlushForPipeControlBeforeStateBaseAddressRequired(PRODUCT_FAMILY productFamily) {
16-
return (productFamily == PRODUCT_FAMILY::IGFX_TIGERLAKE_LP);
17-
}
1815

1916
bool pipeControlWaRequired(PRODUCT_FAMILY productFamily) {
2017
return (productFamily == PRODUCT_FAMILY::IGFX_TIGERLAKE_LP);

runtime/gen12lp/helpers_gen12lp.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ struct PipelineSelectArgs;
2121
class Image;
2222

2323
namespace Gen12LPHelpers {
24-
bool hdcFlushForPipeControlBeforeStateBaseAddressRequired(PRODUCT_FAMILY productFamily);
2524
bool pipeControlWaRequired(PRODUCT_FAMILY productFamily);
2625
bool imagePitchAlignmentWaRequired(PRODUCT_FAMILY productFamily);
2726
void adjustCoherencyFlag(PRODUCT_FAMILY productFamily, bool &coherencyFlag);

unit_tests/gen12lp/command_stream_receiver_hw_tests_gen12lp.inl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,5 @@ GEN12LPTEST_F(UltCommandStreamReceiverTest, givenStateBaseAddressWhenItIsRequire
6969
auto pipeControlCmd = reinterpret_cast<typename FamilyType::PIPE_CONTROL *>(*pipeControlItor);
7070
EXPECT_TRUE(pipeControlCmd->getTextureCacheInvalidationEnable());
7171
EXPECT_TRUE(pipeControlCmd->getDcFlushEnable());
72-
73-
const bool expectedHdcFlushEnable = SpecialUltHelperGen12lp::shouldEnableHdcFlush(::productFamily);
74-
EXPECT_EQ(expectedHdcFlushEnable, pipeControlCmd->getHdcPipelineFlush());
72+
EXPECT_TRUE(pipeControlCmd->getHdcPipelineFlush());
7573
}

unit_tests/gen12lp/special_ult_helper_gen12lp.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ bool SpecialUltHelperGen12lp::shouldCompressionBeEnabledAfterConfigureHardwareCu
1515
return hwInfo.featureTable.ftrE2ECompression;
1616
}
1717

18-
bool SpecialUltHelperGen12lp::shouldEnableHdcFlush(PRODUCT_FAMILY productFamily) {
19-
return true;
20-
}
21-
2218
bool SpecialUltHelperGen12lp::additionalCoherencyCheck(PRODUCT_FAMILY productFamily, bool coherency) {
2319
return false;
2420
}

unit_tests/gen12lp/special_ult_helper_gen12lp.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ struct HardwareInfo;
1616

1717
struct SpecialUltHelperGen12lp {
1818
static bool shouldCompressionBeEnabledAfterConfigureHardwareCustom(const HardwareInfo &hwInfo);
19-
static bool shouldEnableHdcFlush(PRODUCT_FAMILY productFamily);
2019
static bool additionalCoherencyCheck(PRODUCT_FAMILY productFamily, bool coherency);
2120
static bool shouldPerformimagePitchAlignment(PRODUCT_FAMILY productFamily);
2221
static bool shouldTestDefaultImplementationOfSetupHardwareCapabilities(PRODUCT_FAMILY productFamily);

0 commit comments

Comments
 (0)