Skip to content

Commit 01a66a9

Browse files
fix: download staging buffer before reading from it
Related-To: NEO-14154 Signed-off-by: Szymon Morek <[email protected]>
1 parent 4acb573 commit 01a66a9

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

shared/source/utilities/staging_buffer_manager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ WaitStatus StagingBufferManager::copyStagingToHost(const std::pair<UserData, Sta
216216
if (status == WaitStatus::gpuHang) {
217217
return status;
218218
}
219-
219+
transfer.second.csr->downloadAllocations(true);
220220
auto &userData = transfer.first;
221221
tracker = transfer.second;
222222
auto stagingBuffer = addrToPtr(tracker.chunkAddress);

shared/test/unit_test/utilities/staging_buffer_manager_tests.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,16 @@ TEST_F(StagingBufferManagerTest, givenStagingBufferWhenPerformImageReadThenRegio
521521
imageTransferThroughStagingBuffers(true, stagingBufferSize, globalOrigin, globalRegion, expectedChunks);
522522
}
523523

524+
HWTEST_F(StagingBufferManagerTest, givenStagingBufferWhenPerformImageReadThenDownloadAllocationsCalledForAllReadChunks) {
525+
size_t expectedChunks = 8;
526+
const size_t globalOrigin[3] = {0, 0, 0};
527+
const size_t globalRegion[3] = {4, expectedChunks, 1};
528+
imageTransferThroughStagingBuffers(true, stagingBufferSize, globalOrigin, globalRegion, expectedChunks);
529+
auto ultCsr = reinterpret_cast<UltCommandStreamReceiver<FamilyType> *>(csr);
530+
EXPECT_EQ(expectedChunks, ultCsr->downloadAllocationsCalledCount);
531+
EXPECT_TRUE(ultCsr->latestDownloadAllocationsBlocking);
532+
}
533+
524534
TEST_F(StagingBufferManagerTest, givenStagingBufferWhenPerformImageReadThenWholeRegionCovered) {
525535
size_t expectedChunks = 8;
526536
const size_t globalOrigin[3] = {0, 0, 0};

0 commit comments

Comments
 (0)