ITADN

Tophat crashes as it doesn't destroy unused render target buffers

#226Closedvtereshkov 创建于 2025-10-18
V
vtereshkovcommented
Code example: ``` import ( "std.um" "window.um" "rt.um" ) fn testTarget() { target, err := rt::mk({512, 512}, .linear) std::exitif(err) err = target.begin() std::exitif(err) err = target.end() std::exitif(err) // I expect target to be destroyed here } fn test() { for i := 0; i < 70; i++ { printf("%d\n", i) testTarget() } } fn init*() { window::setup("Test", 800, 600) window::onFrame.register({ test() }) } ``` Result: ``` ... 58 59 60 61 62 63 64 [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted 65 [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted 66 [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted 67 [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted 68 [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted 69 [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:110] lib/sokol/sokol_gfx.h:18887:0: BUFFER_POOL_EXHAUSTED: buffer pool exhausted [sg][error][id:298] lib/sokol/sokol_gfx.h:18441:0: VALIDATE_ABND_EXPECTED_VB: sg_apply_bindings: vertex buffer binding is missing or buffer handle is invalid [sg][panic][id:346] lib/sokol/sokol_gfx.h:17554:0: VALIDATION_FAILED: validation layer checks failed ABORTING because of [panic] ``` Tech info: Crash occurs on both Windows and Linux, even though `th_image_free_render_target` is called in each iteration.
关闭于 2025-10-24 2 条评论