KhronosGroup / VK-GL-CTS

Khronos Vulkan, OpenGL, and OpenGL ES Conformance Tests
https://www.khronos.org/
Apache License 2.0
521 stars 290 forks source link

Fix memory leak for KHR-GL46.compute_shader.resources-max #477

Open letidealsfly opened 1 month ago

letidealsfly commented 1 month ago

Hi,

There is a memory leak issue when run KHR-GL46.compute_shader.resources-max.

Init: GLuint m_storage_buffer[8]; Line: https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/openglcts/modules/gl/gl4cComputeShaderTests.cpp#L5172

Gen: glGenBuffers(16, m_storage_buffer); Line: https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/openglcts/modules/gl/gl4cComputeShaderTests.cpp#L5301

Delete: glDeleteBuffers(16, m_storage_buffer); Line: https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/openglcts/modules/gl/gl4cComputeShaderTests.cpp#L5322

Actually m_storage_buffer here only use 8 data and storage of this array is 8, but glGenBuffers generates 16 which will write more data after memory of m_storage_buffer[8].

I think both GenBuffersand DeleteBuffers should use 8. Spec do not have this check, just applications need to ensure correctness.