/* * Copyright (C) 2019-2024 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "shared/source/aub/aub_subcapture.h" #include "shared/source/command_stream/aub_command_stream_receiver_hw.h" #include "shared/source/execution_environment/execution_environment.h" namespace NEO { template class UltAubCommandStreamReceiver : public AUBCommandStreamReceiverHw, public NonCopyableOrMovableClass { using BaseClass = AUBCommandStreamReceiverHw; public: using BaseClass::osContext; using BaseClass::useGpuIdleImplicitFlush; using BaseClass::useNewResourceImplicitFlush; UltAubCommandStreamReceiver(const std::string &fileName, bool standalone, ExecutionEnvironment &executionEnvironment, uint32_t rootDeviceIndex, const DeviceBitfield deviceBitfield) : BaseClass(fileName, standalone, executionEnvironment, rootDeviceIndex, deviceBitfield) { } UltAubCommandStreamReceiver(ExecutionEnvironment &executionEnvironment, uint32_t rootDeviceIndex, const DeviceBitfield deviceBitfield) : BaseClass("aubfile", true, executionEnvironment, rootDeviceIndex, deviceBitfield) { } static CommandStreamReceiver *create(bool withAubDump, ExecutionEnvironment &executionEnvironment, uint32_t rootDeviceIndex, const DeviceBitfield deviceBitfield) { auto csr = new UltAubCommandStreamReceiver("aubfile", true, executionEnvironment, rootDeviceIndex, deviceBitfield); if (!csr->subCaptureManager->isSubCaptureMode()) { csr->openFile("aubfile"); } return csr; } TaskCountType flushBcsTask(const BlitPropertiesContainer &blitPropertiesContainer, bool blocking, bool profilingEnabled, Device &device) override { blitBufferCalled++; return BaseClass::flushBcsTask(blitPropertiesContainer, blocking, profilingEnabled, device); } void pollForCompletion() override { pollForCompletionCalled++; BaseClass::pollForCompletion(); } uint32_t blitBufferCalled = 0; uint32_t pollForCompletionCalled = 0; }; } // namespace NEO