mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
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:
committed by
GitHub
parent
51c6d97d2f
commit
06415f8b79
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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]);
|
||||
|
||||
|
||||
@@ -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) );
|
||||
|
||||
@@ -172,6 +172,8 @@ int test_step_internal(cl_device_id deviceID, cl_context context,
|
||||
destroyClState(pClState);
|
||||
return -1;
|
||||
}
|
||||
|
||||
clStateDestroyProgramAndKernel(pClState);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user