mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 21:42:53 +08:00
Aux translation [1/n]
- Mark Kernel for aux translation - Initial implementation of dispatchAuxTranslation for future use Change-Id: Ifca1c9a893876eecc5678cdc4f564b2bfcae959a
This commit is contained in:
committed by
sys_ocldev
parent
72740fc048
commit
ec6f0f9f86
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "runtime/built_ins/built_ins.h"
|
||||
#include "runtime/built_ins/builtins_dispatch_builder.h"
|
||||
#include "runtime/command_queue/command_queue_hw.h"
|
||||
#include "reg_configs_common.h"
|
||||
#include "runtime/helpers/preamble.h"
|
||||
#include "runtime/memory_manager/graphics_allocation.h"
|
||||
@@ -1567,3 +1568,30 @@ HWTEST_F(EnqueueKernelTest, givenNonVMEKernelWhenEnqueueKernelThenDispatchFlagsD
|
||||
clEnqueueNDRangeKernel(this->pCmdQ, mockKernel.mockKernel, 1, nullptr, gws, nullptr, 0, nullptr, nullptr);
|
||||
EXPECT_FALSE(mockCsr->passedDispatchFlags.mediaSamplerRequired);
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueKernelTest, givenKernelWithRequiredAuxTranslationWhenEnqueuedThenGuardKernelWithAuxTranslations) {
|
||||
class MyCmdQ : public CommandQueueHw<FamilyType> {
|
||||
public:
|
||||
MyCmdQ(Context *context, Device *device) : CommandQueueHw<FamilyType>(context, device, nullptr) {}
|
||||
void dispatchAuxTranslation(MultiDispatchInfo &multiDispatchInfo) override {
|
||||
CommandQueueHw<FamilyType>::dispatchAuxTranslation(multiDispatchInfo);
|
||||
multiDispatchInfoSizes.push_back(multiDispatchInfo.size());
|
||||
}
|
||||
|
||||
std::vector<size_t> multiDispatchInfoSizes;
|
||||
};
|
||||
|
||||
MockKernelWithInternals mockKernel(*pDevice, context);
|
||||
MyCmdQ cmdQ(context, pDevice);
|
||||
size_t gws[3] = {1, 0, 0};
|
||||
|
||||
mockKernel.mockKernel->auxTranslationRequired = true;
|
||||
cmdQ.enqueueKernel(mockKernel.mockKernel, 1, nullptr, gws, nullptr, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(2u, cmdQ.multiDispatchInfoSizes.size());
|
||||
EXPECT_EQ(0u, cmdQ.multiDispatchInfoSizes.at(0)); // before kernel
|
||||
EXPECT_EQ(1u, cmdQ.multiDispatchInfoSizes.at(1)); // after kernel
|
||||
|
||||
mockKernel.mockKernel->auxTranslationRequired = false;
|
||||
cmdQ.enqueueKernel(mockKernel.mockKernel, 1, nullptr, gws, nullptr, 0, nullptr, nullptr);
|
||||
EXPECT_EQ(2u, cmdQ.multiDispatchInfoSizes.size()); // not changed
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user