mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 21:18:24 +08:00
Allow dispatching multiple blit commands with single flush
Change-Id: I57ea32dfa8cfd89ec37fc2f1f82ee6f72598c18a Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
ef7df7dc22
commit
ad2b8a0bbe
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "runtime/event/event_builder.h"
|
||||
#include "runtime/event/user_event.h"
|
||||
#include "runtime/helpers/enqueue_properties.h"
|
||||
#include "runtime/helpers/timestamp_packet.h"
|
||||
#include "runtime/memory_manager/surface.h"
|
||||
#include "runtime/os_interface/os_context.h"
|
||||
@@ -95,7 +96,9 @@ HWTEST_F(EnqueueHandlerTest, givenBlitPropertyWhenEnqueueIsBlockedThenRegisterBl
|
||||
BlitProperties blitProperties;
|
||||
blitProperties.srcAllocation = reinterpret_cast<GraphicsAllocation *>(0x12345);
|
||||
blitProperties.dstAllocation = reinterpret_cast<GraphicsAllocation *>(0x56789);
|
||||
const EnqueueProperties enqueuePropertiesForBlitEnqueue(true, false, false, false, &blitProperties);
|
||||
BlitPropertiesContainer blitPropertiesContainer;
|
||||
blitPropertiesContainer.push_back(blitProperties);
|
||||
const EnqueueProperties enqueuePropertiesForBlitEnqueue(true, false, false, false, &blitPropertiesContainer);
|
||||
|
||||
auto blockedCommandsData = std::unique_ptr<KernelOperation>(blockedCommandsDataForBlitEnqueue);
|
||||
Surface *surfaces[] = {nullptr};
|
||||
@@ -103,8 +106,8 @@ HWTEST_F(EnqueueHandlerTest, givenBlitPropertyWhenEnqueueIsBlockedThenRegisterBl
|
||||
barrierTimestampPacketNodes, blockedCommandsData, enqueuePropertiesForBlitEnqueue, eventsRequest,
|
||||
eventBuilder, std::unique_ptr<PrintfHandler>(nullptr));
|
||||
EXPECT_TRUE(blockedCommandsDataForBlitEnqueue->blitEnqueue);
|
||||
EXPECT_EQ(blitProperties.srcAllocation, blockedCommandsDataForBlitEnqueue->blitProperties.srcAllocation);
|
||||
EXPECT_EQ(blitProperties.dstAllocation, blockedCommandsDataForBlitEnqueue->blitProperties.dstAllocation);
|
||||
EXPECT_EQ(blitProperties.srcAllocation, blockedCommandsDataForBlitEnqueue->blitPropertiesContainer.begin()->srcAllocation);
|
||||
EXPECT_EQ(blitProperties.dstAllocation, blockedCommandsDataForBlitEnqueue->blitPropertiesContainer.begin()->dstAllocation);
|
||||
}
|
||||
|
||||
HWTEST_F(DispatchFlagsTests, whenEnqueueCommandWithoutKernelThenPassCorrectDispatchFlags) {
|
||||
@@ -159,7 +162,10 @@ HWTEST_F(DispatchFlagsTests, givenBlitEnqueueWhenDispatchingCommandsWithoutKerne
|
||||
BlitProperties blitProperties = mockCmdQ->processDispatchForBlitEnqueue(multiDispatchInfo, previousTimestampPacketNodes, barrierTimestampPacketNodes,
|
||||
eventsRequest, mockCmdQ->getCS(0), 0, false);
|
||||
|
||||
EnqueueProperties enqueueProperties(true, false, false, false, &blitProperties);
|
||||
BlitPropertiesContainer blitPropertiesContainer;
|
||||
blitPropertiesContainer.push_back(blitProperties);
|
||||
|
||||
EnqueueProperties enqueueProperties(true, false, false, false, &blitPropertiesContainer);
|
||||
mockCmdQ->enqueueCommandWithoutKernel(nullptr, 0, mockCmdQ->getCS(0), 0, blocking, enqueueProperties, &previousTimestampPacketNodes,
|
||||
barrierTimestampPacketNodes, eventsRequest, eventBuilder, 0);
|
||||
|
||||
@@ -195,8 +201,9 @@ HWTEST_F(DispatchFlagsTests, givenN1EnabledWhenDispatchingWithoutKernelTheAllowO
|
||||
mockCmdQ->obtainNewTimestampPacketNodes(1, previousTimestampPacketNodes, true);
|
||||
BlitProperties blitProperties = mockCmdQ->processDispatchForBlitEnqueue(multiDispatchInfo, previousTimestampPacketNodes, barrierTimestampPacketNodes,
|
||||
eventsRequest, mockCmdQ->getCS(0), 0, false);
|
||||
EnqueueProperties enqueueProperties(true, false, false, false, &blitProperties);
|
||||
enqueueProperties.blitProperties = &blitProperties;
|
||||
BlitPropertiesContainer blitPropertiesContainer;
|
||||
blitPropertiesContainer.push_back(blitProperties);
|
||||
EnqueueProperties enqueueProperties(true, false, false, false, &blitPropertiesContainer);
|
||||
|
||||
mockCsr->nTo1SubmissionModelEnabled = false;
|
||||
mockCmdQ->enqueueCommandWithoutKernel(nullptr, 0, mockCmdQ->getCS(0), 0, blocked, enqueueProperties, &previousTimestampPacketNodes,
|
||||
|
||||
Reference in New Issue
Block a user