mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
fix: set staging buffer writeable for aub and tbx
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
54e62da553
commit
1135c1033e
@@ -29,7 +29,7 @@ class StagingBufferManagerFixture : public DeviceFixture {
|
||||
debugManager.flags.EnableCopyWithStagingBuffers.set(1);
|
||||
RootDeviceIndicesContainer rootDeviceIndices = {mockRootDeviceIndex};
|
||||
std::map<uint32_t, DeviceBitfield> deviceBitfields{{mockRootDeviceIndex, mockDeviceBitfield}};
|
||||
this->stagingBufferManager = std::make_unique<StagingBufferManager>(svmAllocsManager.get(), rootDeviceIndices, deviceBitfields);
|
||||
this->stagingBufferManager = std::make_unique<StagingBufferManager>(svmAllocsManager.get(), rootDeviceIndices, deviceBitfields, false);
|
||||
this->csr = pDevice->commandStreamReceivers[0].get();
|
||||
}
|
||||
|
||||
@@ -211,6 +211,41 @@ TEST_F(StagingBufferManagerTest, givenStagingBufferEnabledWhenValidForImageWrite
|
||||
svmAllocsManager->freeSVMAlloc(usmBuffer);
|
||||
}
|
||||
|
||||
TEST_F(StagingBufferManagerTest, givenStagingBufferWhenPerformCopyOnHwThenDontSetWritable) {
|
||||
constexpr size_t numOfChunkCopies = 8;
|
||||
constexpr size_t remainder = 1024;
|
||||
constexpr size_t totalCopySize = stagingBufferSize * numOfChunkCopies + remainder;
|
||||
copyThroughStagingBuffers(totalCopySize, numOfChunkCopies + 1, 1, csr);
|
||||
auto svmData = svmAllocsManager->svmAllocs.allocations[0].second.get();
|
||||
auto alloc = svmData->gpuAllocations.getDefaultGraphicsAllocation();
|
||||
alloc->setAubWritable(false, std::numeric_limits<uint32_t>::max());
|
||||
alloc->setTbxWritable(false, std::numeric_limits<uint32_t>::max());
|
||||
copyThroughStagingBuffers(totalCopySize, numOfChunkCopies + 1, 0, csr);
|
||||
|
||||
EXPECT_FALSE(alloc->isAubWritable(std::numeric_limits<uint32_t>::max()));
|
||||
EXPECT_FALSE(alloc->isTbxWritable(std::numeric_limits<uint32_t>::max()));
|
||||
}
|
||||
|
||||
TEST_F(StagingBufferManagerTest, givenStagingBufferWhenPerformCopyOnSimulationThenSetWritable) {
|
||||
constexpr size_t numOfChunkCopies = 8;
|
||||
constexpr size_t remainder = 1024;
|
||||
constexpr size_t totalCopySize = stagingBufferSize * numOfChunkCopies + remainder;
|
||||
|
||||
RootDeviceIndicesContainer rootDeviceIndices = {mockRootDeviceIndex};
|
||||
std::map<uint32_t, DeviceBitfield> deviceBitfields{{mockRootDeviceIndex, mockDeviceBitfield}};
|
||||
stagingBufferManager = std::make_unique<StagingBufferManager>(svmAllocsManager.get(), rootDeviceIndices, deviceBitfields, true);
|
||||
|
||||
copyThroughStagingBuffers(totalCopySize, numOfChunkCopies + 1, 1, csr);
|
||||
auto svmData = svmAllocsManager->svmAllocs.allocations[0].second.get();
|
||||
auto alloc = svmData->gpuAllocations.getDefaultGraphicsAllocation();
|
||||
alloc->setAubWritable(false, std::numeric_limits<uint32_t>::max());
|
||||
alloc->setTbxWritable(false, std::numeric_limits<uint32_t>::max());
|
||||
copyThroughStagingBuffers(totalCopySize, numOfChunkCopies + 1, 0, csr);
|
||||
|
||||
EXPECT_TRUE(alloc->isAubWritable(std::numeric_limits<uint32_t>::max()));
|
||||
EXPECT_TRUE(alloc->isTbxWritable(std::numeric_limits<uint32_t>::max()));
|
||||
}
|
||||
|
||||
TEST_F(StagingBufferManagerTest, givenStagingBufferWhenPerformCopyThenCopyData) {
|
||||
constexpr size_t numOfChunkCopies = 8;
|
||||
constexpr size_t remainder = 1024;
|
||||
@@ -336,7 +371,7 @@ TEST_F(StagingBufferManagerTest, givenStagingBufferWhenChangedBufferSizeThenPerf
|
||||
|
||||
RootDeviceIndicesContainer rootDeviceIndices = {mockRootDeviceIndex};
|
||||
std::map<uint32_t, DeviceBitfield> deviceBitfields{{mockRootDeviceIndex, mockDeviceBitfield}};
|
||||
stagingBufferManager = std::make_unique<StagingBufferManager>(svmAllocsManager.get(), rootDeviceIndices, deviceBitfields);
|
||||
stagingBufferManager = std::make_unique<StagingBufferManager>(svmAllocsManager.get(), rootDeviceIndices, deviceBitfields, false);
|
||||
copyThroughStagingBuffers(totalCopySize, numOfChunkCopies + 1, 1, csr);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user