diff options
author | Tapani Pälli <tapani.palli@intel.com> | 2025-05-22 10:30:48 +0300 |
---|---|---|
committer | Marge Bot <marge-bot@fdo.invalid> | 2025-06-02 10:28:06 +0000 |
commit | dba66b250c1801e7856a9346e7bde9837fbd3dfe (patch) | |
tree | eed4ba8d2f180b37b4a2559aaaad91346a7ee00f | |
parent | acae827458083e280a23177e8bf79dce3e4aeeea (diff) |
ext_external_objects: use piglit_set_destroy_func instead of atexit
Usage of atexit causes crash with validation layers and we would like
to run validation on vulkan tests.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/1011>
13 files changed, 40 insertions, 39 deletions
diff --git a/tests/spec/ext_external_objects/vk_buf_exchange.c b/tests/spec/ext_external_objects/vk_buf_exchange.c index 412b36077..567d41734 100644 --- a/tests/spec/ext_external_objects/vk_buf_exchange.c +++ b/tests/spec/ext_external_objects/vk_buf_exchange.c @@ -75,7 +75,7 @@ vk_init(uint32_t w, VkImageLayout depth_end_layout); static void -cleanup(void); +cleanup(void *data); static void vk_cleanup(void); @@ -107,7 +107,7 @@ piglit_init(int argc, char **argv) piglit_require_extension("GL_ARB_texture_storage"); piglit_require_extension("GL_ARB_pixel_buffer_object"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init(piglit_width, piglit_height, 1, num_samples, num_levels, num_layers, color_format, depth_format, @@ -296,7 +296,7 @@ gl_init() } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_depth_display.c b/tests/spec/ext_external_objects/vk_depth_display.c index abc7a77a7..cb472ec9c 100644 --- a/tests/spec/ext_external_objects/vk_depth_display.c +++ b/tests/spec/ext_external_objects/vk_depth_display.c @@ -59,7 +59,7 @@ static void gl_subtest_cleanup(void); static void -cleanup(void); +cleanup(void *data); static enum piglit_result run_subtest(int case_num); @@ -131,7 +131,7 @@ piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init()) { fprintf(stdout, "Failed to initialize Vulkan, skipping the test.\n"); @@ -405,7 +405,7 @@ vk_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_image_display.c b/tests/spec/ext_external_objects/vk_image_display.c index 5e00b600d..ff2dc29dc 100644 --- a/tests/spec/ext_external_objects/vk_image_display.c +++ b/tests/spec/ext_external_objects/vk_image_display.c @@ -75,7 +75,7 @@ vk_init(uint32_t w, VkImageLayout depth_end_layout); static void -cleanup(void); +cleanup(void *data); static void vk_cleanup(void); @@ -106,7 +106,7 @@ void piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init(piglit_width, piglit_height, 1, num_samples, num_levels, num_layers, color_format, depth_format, @@ -293,7 +293,7 @@ vk_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_image_display_multiple_textures.c b/tests/spec/ext_external_objects/vk_image_display_multiple_textures.c index 5a8fa6cca..ea934ca05 100644 --- a/tests/spec/ext_external_objects/vk_image_display_multiple_textures.c +++ b/tests/spec/ext_external_objects/vk_image_display_multiple_textures.c @@ -75,7 +75,7 @@ vk_init(uint32_t w, VkImageLayout depth_end_layout); static void -cleanup(void); +cleanup(void *data); static void vk_cleanup(void); @@ -110,7 +110,7 @@ void piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init(piglit_width, piglit_height, 1, num_samples, num_levels, num_layers, color_format, depth_format, @@ -310,7 +310,7 @@ vk_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_image_display_overwrite.c b/tests/spec/ext_external_objects/vk_image_display_overwrite.c index 4b357aa7f..d6a279c36 100644 --- a/tests/spec/ext_external_objects/vk_image_display_overwrite.c +++ b/tests/spec/ext_external_objects/vk_image_display_overwrite.c @@ -99,7 +99,7 @@ vk_init(uint32_t w, VkImageLayout depth_end_layout); static void -cleanup(void); +cleanup(void *data); static void vk_cleanup(void); @@ -137,7 +137,7 @@ void piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init(piglit_width, piglit_height, 1, num_samples, num_levels, num_layers, color_format, depth_format, @@ -379,7 +379,7 @@ vk_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_image_overwrite.c b/tests/spec/ext_external_objects/vk_image_overwrite.c index b2cd68739..db4fa2f55 100644 --- a/tests/spec/ext_external_objects/vk_image_overwrite.c +++ b/tests/spec/ext_external_objects/vk_image_overwrite.c @@ -116,7 +116,7 @@ static bool gl_draw_texture(enum fragment_type fs_type, uint32_t w, uint32_t h); static void -cleanup(void); +cleanup(void *data); void piglit_init(int argc, char **argv) @@ -130,7 +130,7 @@ piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_memory_object"); piglit_require_extension("GL_EXT_memory_object_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init()) piglit_report_result(PIGLIT_SKIP); @@ -346,7 +346,7 @@ gl_draw_texture(enum fragment_type fs_type, uint32_t w, uint32_t h) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup_ctx(&vk_core); diff --git a/tests/spec/ext_external_objects/vk_ping_pong.c b/tests/spec/ext_external_objects/vk_ping_pong.c index deeebba18..7e30f4e2d 100644 --- a/tests/spec/ext_external_objects/vk_ping_pong.c +++ b/tests/spec/ext_external_objects/vk_ping_pong.c @@ -93,7 +93,7 @@ static void gl_cleanup(void); static void -cleanup(void); +cleanup(void *data); static struct vk_ctx vk_core; static struct vk_buf vk_bo; @@ -118,7 +118,7 @@ void piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); int single_sem = -1; for (int a = 1; a < argc; a++) { @@ -445,7 +445,7 @@ gl_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { gl_cleanup(); vk_cleanup(); diff --git a/tests/spec/ext_external_objects/vk_pix_buf_update_errors.c b/tests/spec/ext_external_objects/vk_pix_buf_update_errors.c index 32b870ddd..566994573 100644 --- a/tests/spec/ext_external_objects/vk_pix_buf_update_errors.c +++ b/tests/spec/ext_external_objects/vk_pix_buf_update_errors.c @@ -74,7 +74,7 @@ vk_init(uint32_t w, VkImageLayout depth_end_layout); static void -cleanup(void); +cleanup(void *data); static void vk_cleanup(void); @@ -120,7 +120,7 @@ piglit_init(int argc, char **argv) piglit_require_extension("GL_ARB_texture_storage"); piglit_require_extension("GL_ARB_pixel_buffer_object"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); w = piglit_width; h = piglit_height; @@ -337,7 +337,7 @@ gl_init() } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_semaphores.c b/tests/spec/ext_external_objects/vk_semaphores.c index a83d8465f..b34f3b70a 100644 --- a/tests/spec/ext_external_objects/vk_semaphores.c +++ b/tests/spec/ext_external_objects/vk_semaphores.c @@ -74,7 +74,7 @@ vk_init(uint32_t w, VkImageLayout depth_end_layout); static void -cleanup(void); +cleanup(void *data); static void vk_cleanup(void); @@ -108,7 +108,7 @@ void piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init(piglit_width, piglit_height, 1, num_samples, num_levels, num_layers, color_format, depth_format, @@ -334,7 +334,7 @@ vk_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_semaphores2.c b/tests/spec/ext_external_objects/vk_semaphores2.c index 7e0158e60..fffa4246d 100644 --- a/tests/spec/ext_external_objects/vk_semaphores2.c +++ b/tests/spec/ext_external_objects/vk_semaphores2.c @@ -104,7 +104,7 @@ vk_init(uint32_t w, VkImageLayout depth_end_layout); static void -cleanup(void); +cleanup(void *data); static void vk_cleanup(void); @@ -139,7 +139,7 @@ void piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init(piglit_width, piglit_height, 1, num_samples, num_levels, num_layers, color_format, depth_format, @@ -352,7 +352,7 @@ vk_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_stencil_display.c b/tests/spec/ext_external_objects/vk_stencil_display.c index c57040402..46d7b0826 100644 --- a/tests/spec/ext_external_objects/vk_stencil_display.c +++ b/tests/spec/ext_external_objects/vk_stencil_display.c @@ -59,7 +59,7 @@ static void gl_subtest_cleanup(void); static void -cleanup(void); +cleanup(void *data); static enum piglit_result run_subtest(int case_num); @@ -130,7 +130,7 @@ piglit_init(int argc, char **argv) piglit_require_extension("GL_EXT_semaphore"); piglit_require_extension("GL_EXT_semaphore_fd"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init()) { fprintf(stdout, "Failed to initialize Vulkan, skipping the test.\n"); @@ -403,7 +403,7 @@ vk_cleanup(void) } static void -cleanup(void) +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_vert_buf_reuse.c b/tests/spec/ext_external_objects/vk_vert_buf_reuse.c index 597212bbc..b8df7aa5f 100644 --- a/tests/spec/ext_external_objects/vk_vert_buf_reuse.c +++ b/tests/spec/ext_external_objects/vk_vert_buf_reuse.c @@ -58,7 +58,7 @@ static struct vk_renderer vk_rnd; static GLuint gl_disp_tex; static GLuint gl_disp_vk_prog; -static void cleanup(); +static void cleanup(void *data); static void vk_cleanup(); static bool vk_init(); static bool gl_init(); @@ -120,7 +120,7 @@ piglit_init(int argc, char **argv) piglit_require_extension("GL_ARB_texture_storage"); piglit_require_extension("GL_ARB_pixel_buffer_object"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init()) { fprintf(stdout, "Failed to initialize Vulkan, skipping the test.\n"); @@ -232,6 +232,7 @@ static void vk_cleanup() { vk_destroy_buffer(&vk_core, &vk_vb); + vk_destroy_buffer(&vk_core, &vk_tmp_buf); vk_destroy_ext_image(&vk_core, &vk_color_att.obj); vk_destroy_ext_image(&vk_core, &vk_depth_att.obj); vk_destroy_renderer(&vk_core, &vk_rnd); @@ -239,7 +240,7 @@ vk_cleanup() } static void -cleanup() +cleanup(void *data) { vk_cleanup(); } diff --git a/tests/spec/ext_external_objects/vk_vert_buf_update_errors.c b/tests/spec/ext_external_objects/vk_vert_buf_update_errors.c index f6972f960..63e3d0709 100644 --- a/tests/spec/ext_external_objects/vk_vert_buf_update_errors.c +++ b/tests/spec/ext_external_objects/vk_vert_buf_update_errors.c @@ -35,7 +35,7 @@ config.khr_no_error_support = PIGLIT_HAS_ERRORS; PIGLIT_GL_TEST_CONFIG_END -static void cleanup(); +static void cleanup(void *data); static void vk_cleanup(); static bool vk_init(); @@ -86,7 +86,7 @@ piglit_init(int argc, char **argv) piglit_require_extension("GL_ARB_texture_storage"); piglit_require_extension("GL_ARB_pixel_buffer_object"); - atexit(cleanup); + piglit_set_destroy_func(cleanup, NULL); if (!vk_init()) { fprintf(stdout, "Failed to initialize Vulkan, skipping the test.\n"); @@ -194,7 +194,7 @@ vk_cleanup() } static void -cleanup() +cleanup(void *data) { vk_cleanup(); } |