fix(ocl): Fix potential mem leak + simplify code

- Fix potential memleak in case ASSERT returns false and test gets
aborted
- Remove not needed function argument
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit is contained in:
Kacper Nowak
2023-03-23 13:47:39 +00:00
committed by Compute-Runtime-Automation
parent 5936734550
commit f1c64adb3c
6 changed files with 10 additions and 15 deletions

View File

@@ -328,12 +328,10 @@ template <typename GfxFamily>
size_t HardwareCommandsHelper<GfxFamily>::checkForAdditionalBTAndSetBTPointer(IndirectHeap &ssh, const Kernel &kernel) {
size_t dstBindingTablePointer{0u};
const auto &kernelInfo = kernel.getKernelInfo();
if (isGTPinInitialized && 0u == kernelInfo.kernelDescriptor.payloadMappings.bindingTable.numEntries) {
dstBindingTablePointer = EncodeSurfaceState<GfxFamily>::pushBindingTableAndSurfaceStates(ssh, 1u,
kernel.getSurfaceStateHeap(), kernel.getSurfaceStateHeapSize(),
kernel.getNumberOfBindingTableStates(), kernel.getBindingTableOffset());
if (false == isGTPinInitialized && 0u == kernelInfo.kernelDescriptor.payloadMappings.bindingTable.numEntries) {
dstBindingTablePointer = 0u;
} else {
dstBindingTablePointer = EncodeSurfaceState<GfxFamily>::pushBindingTableAndSurfaceStates(ssh, kernelInfo.kernelDescriptor.payloadMappings.bindingTable.numEntries,
dstBindingTablePointer = EncodeSurfaceState<GfxFamily>::pushBindingTableAndSurfaceStates(ssh,
kernel.getSurfaceStateHeap(), kernel.getSurfaceStateHeapSize(),
kernel.getNumberOfBindingTableStates(), kernel.getBindingTableOffset());
}

View File

@@ -864,9 +864,10 @@ HWTEST_F(HardwareCommandsTest, givenNoBTEntriesInKernelDescriptorAndGTPinInitial
constexpr auto mockSshSize{256u};
constexpr auto mockBTOffset{32u};
auto mockSsh = new char[mockSshSize]{0};
auto mockSsh = std::make_unique<char[]>(mockSshSize);
ASSERT_EQ(CL_SUCCESS, pKernel->initialize());
pKernel->resizeSurfaceStateHeap(mockSsh, mockSshSize, 1u, mockBTOffset);
pKernel->resizeSurfaceStateHeap(mockSsh.get(), mockSshSize, 1u, mockBTOffset);
mockSsh.release();
CommandQueueHw<FamilyType> cmdQ(nullptr, pClDevice, 0, false);
auto &ssh = cmdQ.getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 8192);