Skip to content

Commit 187120f

Browse files
Program Media Sampler DOP Clock Gate Enable on Xe Hp Sdv
remove skipped tests Related-To: NEO-6466 Signed-off-by: Mateusz Jablonski <[email protected]>
1 parent 58380d4 commit 187120f

File tree

8 files changed

+42
-396
lines changed

8 files changed

+42
-396
lines changed

opencl/test/unit_test/command_queue/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ set(IGDRCL_SRCS_tests_command_queue
9696
if(TESTS_XEHP_AND_LATER)
9797
list(APPEND IGDRCL_SRCS_tests_command_queue
9898
${CMAKE_CURRENT_SOURCE_DIR}/dispatch_walker_tests_xehp_and_later.cpp
99-
${CMAKE_CURRENT_SOURCE_DIR}/enqueue_media_kernel_xehp_and_later.cpp
10099
${CMAKE_CURRENT_SOURCE_DIR}/enqueue_resource_barier_tests_xehp_and_later.cpp
101100
)
102101
endif()

opencl/test/unit_test/command_queue/enqueue_media_kernel_xehp_and_later.cpp

Lines changed: 0 additions & 392 deletions
This file was deleted.

opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,11 +525,31 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, RenderSurfaceStateXeHPAndLaterTests, givenSpecificP
525525
EXPECT_EQ(FamilyType::RENDER_SURFACE_STATE::COHERENCY_TYPE_GPU_COHERENT, rssCmd.getCoherencyType());
526526
}
527527

528-
HWCMDTEST_F(IGFX_XE_HP_CORE, PreambleFixture, whenCallingIsSpecialPipelineSelectModeChangedThenReturnCorrectValue) {
528+
using PipelineSelectTest = ::testing::Test;
529+
530+
HWCMDTEST_F(IGFX_XE_HP_CORE, PipelineSelectTest, whenCallingIsSpecialPipelineSelectModeChangedThenReturnCorrectValue) {
529531
using PIPELINE_SELECT = typename FamilyType::PIPELINE_SELECT;
530532
bool oldPipelineSelectSpecialMode = true;
531533
bool newPipelineSelectSpecialMode = false;
532534

533535
auto result = PreambleHelper<FamilyType>::isSpecialPipelineSelectModeChanged(oldPipelineSelectSpecialMode, newPipelineSelectSpecialMode, *defaultHwInfo);
534536
EXPECT_TRUE(result);
535537
}
538+
539+
HWCMDTEST_F(IGFX_XE_HP_CORE, PipelineSelectTest, WhenProgramPipelineSelectThenProperMaskIsSet) {
540+
using PIPELINE_SELECT = typename FamilyType::PIPELINE_SELECT;
541+
PIPELINE_SELECT cmd = FamilyType::cmdInitPipelineSelect;
542+
LinearStream pipelineSelectStream(&cmd, sizeof(cmd));
543+
PreambleHelper<FamilyType>::programPipelineSelect(&pipelineSelectStream, {}, *defaultHwInfo);
544+
545+
auto expectedMask = pipelineSelectEnablePipelineSelectMaskBits;
546+
if constexpr (FamilyType::isUsingMediaSamplerDopClockGate) {
547+
expectedMask |= pipelineSelectMediaSamplerDopClockGateMaskBits;
548+
}
549+
550+
if (PreambleHelper<FamilyType>::isSystolicModeConfigurable(*defaultHwInfo)) {
551+
expectedMask |= pipelineSelectSystolicModeEnableMaskBits;
552+
}
553+
554+
EXPECT_EQ(expectedMask, cmd.getMaskBits());
555+
}

shared/source/helpers/preamble_xehp_and_later.inl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ void PreambleHelper<Family>::appendProgramPipelineSelect(void *cmd, bool isSpeci
4444
command->setMaskBits(mask);
4545
}
4646

47-
template <>
47+
template <typename Family>
4848
void PreambleHelper<Family>::programPipelineSelect(LinearStream *pCommandStream,
4949
const PipelineSelectArgs &pipelineSelectArgs,
5050
const HardwareInfo &hwInfo) {
@@ -68,8 +68,12 @@ void PreambleHelper<Family>::programPipelineSelect(LinearStream *pCommandStream,
6868

6969
auto mask = pipelineSelectEnablePipelineSelectMaskBits;
7070

71-
cmd.setMaskBits(mask);
7271
cmd.setPipelineSelection(PIPELINE_SELECT::PIPELINE_SELECTION_GPGPU);
72+
if constexpr (Family::isUsingMediaSamplerDopClockGate) {
73+
mask |= pipelineSelectMediaSamplerDopClockGateMaskBits;
74+
cmd.setMediaSamplerDopClockGateEnable(!pipelineSelectArgs.mediaSamplerRequired);
75+
}
76+
cmd.setMaskBits(mask);
7377

7478
appendProgramPipelineSelect(&cmd, pipelineSelectArgs.specialPipelineSelectMode, hwInfo);
7579

shared/source/xe_hp_core/hw_cmds_base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ struct XeHpCore {
2828
static constexpr uint32_t stateComputeModeForceDisableSupportMultiGpuAtomics = (1u << 1);
2929

3030
static constexpr bool isUsingL3Control = true;
31+
static constexpr bool isUsingMediaSamplerDopClockGate = true;
3132

3233
struct DataPortBindlessSurfaceExtendedMessageDescriptor {
3334
union {

shared/source/xe_hpc_core/hw_cmds_base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ struct XE_HPC_CORE {
3434
static constexpr uint32_t pvcXtTemporaryDeviceId = 0x0BE5;
3535

3636
static constexpr bool isUsingL3Control = false;
37+
static constexpr bool isUsingMediaSamplerDopClockGate = false;
3738

3839
static bool isXlA0(const HardwareInfo &hwInfo) {
3940
auto revId = hwInfo.platform.usRevId & pvcSteppingBits;

shared/source/xe_hpg_core/hw_cmds_base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ struct XE_HPG_CORE {
2828
static constexpr uint32_t stateComputeModeLargeGrfModeMask = (1u << 15);
2929

3030
static constexpr bool isUsingL3Control = true;
31+
static constexpr bool isUsingMediaSamplerDopClockGate = false;
3132

3233
struct DataPortBindlessSurfaceExtendedMessageDescriptor {
3334
union {

shared/test/common/xe_hp_core/xehp/test_preamble_xehp.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,15 @@ XEHPTEST_F(XeHPPipelineSelect, WhenAppendProgramPipelineSelectThenCorrectValuesS
125125
EXPECT_FALSE(cmd.getSystolicModeEnable());
126126
EXPECT_EQ(pipelineSelectSystolicModeEnableMaskBits, cmd.getMaskBits());
127127
}
128+
129+
XEHPTEST_F(XeHPPipelineSelect, WhenProgramPipelineSelectThenProgramMediaSamplerDopClockGateEnable) {
130+
using PIPELINE_SELECT = typename FamilyType::PIPELINE_SELECT;
131+
PIPELINE_SELECT cmd = FamilyType::cmdInitPipelineSelect;
132+
LinearStream pipelineSelectStream(&cmd, sizeof(cmd));
133+
PreambleHelper<FamilyType>::programPipelineSelect(&pipelineSelectStream, {}, *defaultHwInfo);
134+
135+
auto expectedSubMask = pipelineSelectMediaSamplerDopClockGateMaskBits;
136+
137+
EXPECT_TRUE(cmd.getMediaSamplerDopClockGateEnable());
138+
EXPECT_EQ(expectedSubMask, (cmd.getMaskBits() & expectedSubMask));
139+
}

0 commit comments

Comments
 (0)