mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-30 01:35:20 +08:00
Add unit test helper function to set pipe control hdc flush
Separate unit test helper definitions bdw_and_later / xe_hp_and_later Related-To: NEO-6466 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
fc224202d6
commit
e5a18177c5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
* Copyright (C) 2018-2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -67,6 +67,8 @@ struct UnitTestHelper {
|
||||
static const bool additionalMiFlushDwRequired;
|
||||
|
||||
static uint64_t getPipeControlPostSyncAddress(const typename GfxFamily::PIPE_CONTROL &pipeControl);
|
||||
static bool getPipeControlHdcPipelineFlush(const typename GfxFamily::PIPE_CONTROL &pipeControl);
|
||||
static void setPipeControlHdcPipelineFlush(typename GfxFamily::PIPE_CONTROL &pipeControl, bool hdcPipelineFlush);
|
||||
};
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
* Copyright (C) 2018-2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -7,49 +7,16 @@
|
||||
|
||||
namespace NEO {
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isL3ConfigProgrammable() {
|
||||
return true;
|
||||
};
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::evaluateDshUsage(size_t sizeBeforeEnqueue, size_t sizeAfterEnqueue, const KernelDescriptor *kernelDescriptor, uint32_t rootDeviceIndex) {
|
||||
if (sizeBeforeEnqueue != sizeAfterEnqueue) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isPageTableManagerSupported(const HardwareInfo &hwInfo) {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isTimestampPacketWriteSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isExpectMemoryNotEqualSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
uint32_t UnitTestHelper<GfxFamily>::getDefaultSshUsage() {
|
||||
return sizeof(typename GfxFamily::RENDER_SURFACE_STATE);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline uint32_t UnitTestHelper<GfxFamily>::getAppropriateThreadArbitrationPolicy(uint32_t policy) {
|
||||
return policy;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::evaluateGshAddressForScratchSpace(uint64_t usedScratchGpuAddress, uint64_t retrievedGshAddress) {
|
||||
return usedScratchGpuAddress == retrievedGshAddress;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isPipeControlWArequired(const HardwareInfo &hwInfo) {
|
||||
return false;
|
||||
@@ -65,11 +32,6 @@ bool UnitTestHelper<GfxFamily>::isAdditionalMiSemaphoreWaitRequired(const Hardwa
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isAdditionalMiSemaphoreWait(const typename GfxFamily::MI_SEMAPHORE_WAIT &semaphoreWait) {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline uint64_t UnitTestHelper<GfxFamily>::getAtomicMemoryAddress(const typename GfxFamily::MI_ATOMIC &atomic) {
|
||||
return atomic.getMemoryAddress() | ((static_cast<uint64_t>(atomic.getMemoryAddressHigh())) << 32);
|
||||
@@ -85,11 +47,6 @@ void UnitTestHelper<GfxFamily>::setExtraMidThreadPreemptionFlag(HardwareInfo &hw
|
||||
hwInfo.featureTable.flags.ftrGpGpuMidThreadLevelPreempt = value;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
auto UnitTestHelper<GfxFamily>::getCoherencyTypeSupported(COHERENCY_TYPE coherencyType) -> decltype(coherencyType) {
|
||||
return coherencyType;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
const bool UnitTestHelper<GfxFamily>::tiledImagesSupported = true;
|
||||
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/test/common/helpers/unit_test_helper.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isL3ConfigProgrammable() {
|
||||
return true;
|
||||
};
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::evaluateDshUsage(size_t sizeBeforeEnqueue, size_t sizeAfterEnqueue, const KernelDescriptor *kernelDescriptor, uint32_t rootDeviceIndex) {
|
||||
if (sizeBeforeEnqueue != sizeAfterEnqueue) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isTimestampPacketWriteSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isExpectMemoryNotEqualSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
uint32_t UnitTestHelper<GfxFamily>::getDefaultSshUsage() {
|
||||
return sizeof(typename GfxFamily::RENDER_SURFACE_STATE);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isAdditionalMiSemaphoreWait(const typename GfxFamily::MI_SEMAPHORE_WAIT &semaphoreWait) {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::evaluateGshAddressForScratchSpace(uint64_t usedScratchGpuAddress, uint64_t retrievedGshAddress) {
|
||||
return usedScratchGpuAddress == retrievedGshAddress;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
auto UnitTestHelper<GfxFamily>::getCoherencyTypeSupported(COHERENCY_TYPE coherencyType) -> decltype(coherencyType) {
|
||||
return coherencyType;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline bool UnitTestHelper<GfxFamily>::getPipeControlHdcPipelineFlush(const typename GfxFamily::PIPE_CONTROL &pipeControl) {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline void UnitTestHelper<GfxFamily>::setPipeControlHdcPipelineFlush(typename GfxFamily::PIPE_CONTROL &pipeControl, bool hdcPipelineFlush) {}
|
||||
} // namespace NEO
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation
|
||||
* Copyright (C) 2021-2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -8,16 +8,17 @@
|
||||
#include "shared/source/command_container/command_encoder.h"
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
#include "shared/source/kernel/kernel_descriptor.h"
|
||||
#include "shared/test/common/helpers/unit_test_helper.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
template <>
|
||||
bool UnitTestHelper<Family>::isL3ConfigProgrammable() {
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isL3ConfigProgrammable() {
|
||||
return false;
|
||||
};
|
||||
|
||||
template <>
|
||||
bool UnitTestHelper<Family>::evaluateDshUsage(size_t sizeBeforeEnqueue, size_t sizeAfterEnqueue, const KernelDescriptor *kernelDescriptor, uint32_t rootDeviceIndex) {
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::evaluateDshUsage(size_t sizeBeforeEnqueue, size_t sizeAfterEnqueue, const KernelDescriptor *kernelDescriptor, uint32_t rootDeviceIndex) {
|
||||
if (kernelDescriptor == nullptr) {
|
||||
if (sizeBeforeEnqueue == sizeAfterEnqueue) {
|
||||
return true;
|
||||
@@ -39,34 +40,42 @@ bool UnitTestHelper<Family>::evaluateDshUsage(size_t sizeBeforeEnqueue, size_t s
|
||||
}
|
||||
}
|
||||
|
||||
template <>
|
||||
bool UnitTestHelper<Family>::isTimestampPacketWriteSupported() {
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isTimestampPacketWriteSupported() {
|
||||
return true;
|
||||
};
|
||||
|
||||
template <>
|
||||
bool UnitTestHelper<Family>::isExpectMemoryNotEqualSupported() {
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isExpectMemoryNotEqualSupported() {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <>
|
||||
uint32_t UnitTestHelper<Family>::getDefaultSshUsage() {
|
||||
template <typename GfxFamily>
|
||||
uint32_t UnitTestHelper<GfxFamily>::getDefaultSshUsage() {
|
||||
return (32 * 2 * 64);
|
||||
}
|
||||
|
||||
template <>
|
||||
bool UnitTestHelper<Family>::isAdditionalMiSemaphoreWait(const typename Family::MI_SEMAPHORE_WAIT &semaphoreWait) {
|
||||
return (semaphoreWait.getSemaphoreDataDword() == EncodeSempahore<Family>::invalidHardwareTag);
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::isAdditionalMiSemaphoreWait(const typename GfxFamily::MI_SEMAPHORE_WAIT &semaphoreWait) {
|
||||
return (semaphoreWait.getSemaphoreDataDword() == EncodeSempahore<GfxFamily>::invalidHardwareTag);
|
||||
}
|
||||
|
||||
template <>
|
||||
bool UnitTestHelper<Family>::evaluateGshAddressForScratchSpace(uint64_t usedScratchGpuAddress, uint64_t retrievedGshAddress) {
|
||||
template <typename GfxFamily>
|
||||
bool UnitTestHelper<GfxFamily>::evaluateGshAddressForScratchSpace(uint64_t usedScratchGpuAddress, uint64_t retrievedGshAddress) {
|
||||
return 0llu == retrievedGshAddress;
|
||||
}
|
||||
|
||||
template <>
|
||||
auto UnitTestHelper<Family>::getCoherencyTypeSupported(COHERENCY_TYPE coherencyType) -> decltype(coherencyType) {
|
||||
return Family::RENDER_SURFACE_STATE::COHERENCY_TYPE_GPU_COHERENT;
|
||||
template <typename GfxFamily>
|
||||
auto UnitTestHelper<GfxFamily>::getCoherencyTypeSupported(COHERENCY_TYPE coherencyType) -> decltype(coherencyType) {
|
||||
return GfxFamily::RENDER_SURFACE_STATE::COHERENCY_TYPE_GPU_COHERENT;
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
inline bool UnitTestHelper<GfxFamily>::getPipeControlHdcPipelineFlush(const typename GfxFamily::PIPE_CONTROL &pipeControl) {
|
||||
return pipeControl.getHdcPipelineFlush();
|
||||
}
|
||||
template <typename GfxFamily>
|
||||
inline void UnitTestHelper<GfxFamily>::setPipeControlHdcPipelineFlush(typename GfxFamily::PIPE_CONTROL &pipeControl, bool hdcPipelineFlush) {
|
||||
pipeControl.setHdcPipelineFlush(hdcPipelineFlush);
|
||||
}
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user