Fix memory leaks (#1378)

* Fix memory leaks

Fixed memory leaks in: buffers, basic, and vectors

* Formatting fixes

Co-authored-by: oramirez <oramirez@qti.qualcomm.com>
This commit is contained in:
Sreelakshmi Haridas Maruthur
2022-01-11 09:52:11 -07:00
committed by GitHub
parent 51c6d97d2f
commit 06415f8b79
4 changed files with 46 additions and 32 deletions

View File

@@ -610,9 +610,6 @@ static int test_vectype(const char* type_name, cl_device_id device,
cl_int error = CL_SUCCESS;
int result = TEST_PASS;
clProgramWrapper program;
clKernelWrapper kernel;
std::string buildOptions{ "-DTYPE=" };
buildOptions += type_name;
buildOptions += std::to_string(N);
@@ -628,37 +625,52 @@ static int test_vectype(const char* type_name, cl_device_id device,
makeReference<T, N, S>(reference);
// XYZW swizzles:
const char* xyzw_source = TestInfo<N>::kernel_source_xyzw;
error = create_single_kernel_helper(
context, &program, &kernel, 1, &xyzw_source, "test_vector_swizzle_xyzw",
buildOptions.c_str());
test_error(error, "Unable to create xyzw test kernel");
result |= test_vectype_case(value, reference, context, kernel, queue);
// sN swizzles:
const char* sN_source = TestInfo<N>::kernel_source_sN;
error = create_single_kernel_helper(context, &program, &kernel, 1,
&sN_source, "test_vector_swizzle_sN",
buildOptions.c_str());
test_error(error, "Unable to create sN test kernel");
result |= test_vectype_case(value, reference, context, kernel, queue);
// RGBA swizzles for OpenCL 3.0 and newer:
const Version device_version = get_device_cl_version(device);
if (device_version >= Version(3, 0))
{
const char* rgba_source = TestInfo<N>::kernel_source_rgba;
clProgramWrapper program;
clKernelWrapper kernel;
const char* xyzw_source = TestInfo<N>::kernel_source_xyzw;
error = create_single_kernel_helper(
context, &program, &kernel, 1, &rgba_source,
"test_vector_swizzle_rgba", buildOptions.c_str());
test_error(error, "Unable to create rgba test kernel");
context, &program, &kernel, 1, &xyzw_source,
"test_vector_swizzle_xyzw", buildOptions.c_str());
test_error(error, "Unable to create xyzw test kernel");
result |= test_vectype_case(value, reference, context, kernel, queue);
}
// sN swizzles:
{
clProgramWrapper program;
clKernelWrapper kernel;
const char* sN_source = TestInfo<N>::kernel_source_sN;
error = create_single_kernel_helper(
context, &program, &kernel, 1, &sN_source, "test_vector_swizzle_sN",
buildOptions.c_str());
test_error(error, "Unable to create sN test kernel");
result |= test_vectype_case(value, reference, context, kernel, queue);
}
// RGBA swizzles for OpenCL 3.0 and newer:
{
clProgramWrapper program;
clKernelWrapper kernel;
const Version device_version = get_device_cl_version(device);
if (device_version >= Version(3, 0))
{
const char* rgba_source = TestInfo<N>::kernel_source_rgba;
error = create_single_kernel_helper(
context, &program, &kernel, 1, &rgba_source,
"test_vector_swizzle_rgba", buildOptions.c_str());
test_error(error, "Unable to create rgba test kernel");
result |=
test_vectype_case(value, reference, context, kernel, queue);
}
}
return result;
}

View File

@@ -703,8 +703,6 @@ int test_buffer_fill( cl_device_id deviceID, cl_context context, cl_command_queu
int test_buffer_fill_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements )
{
TestStruct pattern;
clProgramWrapper program;
clKernelWrapper kernel;
size_t ptrSize = sizeof( TestStruct );
size_t global_work_size[3];
int n, err;
@@ -720,6 +718,8 @@ int test_buffer_fill_struct( cl_device_id deviceID, cl_context context, cl_comma
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
{
clProgramWrapper program;
clKernelWrapper kernel;
log_info("Testing with cl_mem_flags: %s\n",
flag_set_names[src_flag_id]);

View File

@@ -763,7 +763,6 @@ int test_buffer_read_async( cl_device_id deviceID, cl_context context, cl_comman
{
clProgramWrapper program[5];
clKernelWrapper kernel[5];
clEventWrapper event;
void *outptr[5];
void *inptr[5];
size_t global_work_size[3];
@@ -805,6 +804,7 @@ int test_buffer_read_async( cl_device_id deviceID, cl_context context, cl_comman
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
{
clMemWrapper buffer;
clEventWrapper event;
outptr[i] = align_malloc(ptrSizes[i] * num_elements, min_alignment);
if ( ! outptr[i] ){
log_error( " unable to allocate %d bytes for outptr\n", (int)(ptrSizes[i] * num_elements) );
@@ -900,7 +900,6 @@ int test_buffer_read_array_barrier( cl_device_id deviceID, cl_context context, c
{
clProgramWrapper program[5];
clKernelWrapper kernel[5];
clEventWrapper event;
void *outptr[5], *inptr[5];
size_t global_work_size[3];
cl_int err;
@@ -941,6 +940,7 @@ int test_buffer_read_array_barrier( cl_device_id deviceID, cl_context context, c
for (src_flag_id = 0; src_flag_id < NUM_FLAGS; src_flag_id++)
{
clMemWrapper buffer;
clEventWrapper event;
outptr[i] = align_malloc(ptrSizes[i] * num_elements, min_alignment);
if ( ! outptr[i] ){
log_error( " unable to allocate %d bytes for outptr\n", (int)(ptrSizes[i] * num_elements) );

View File

@@ -172,6 +172,8 @@ int test_step_internal(cl_device_id deviceID, cl_context context,
destroyClState(pClState);
return -1;
}
clStateDestroyProgramAndKernel(pClState);
}
}