diff --git a/video/out/opengl/ra_gl.c b/video/out/opengl/ra_gl.c index 6509d9043a..7783baf2f1 100644 --- a/video/out/opengl/ra_gl.c +++ b/video/out/opengl/ra_gl.c @@ -687,8 +687,10 @@ static GLuint load_program(struct ra *ra, const struct ra_renderpass_params *p, uint8_t *buffer = talloc_size(NULL, size + 4); GLsizei actual_size = 0; GLenum binary_format = 0; - gl->GetProgramBinary(prog, size, &actual_size, &binary_format, - buffer + 4); + if (size > 0) { + gl->GetProgramBinary(prog, size, &actual_size, &binary_format, + buffer + 4); + } AV_WL32(buffer, binary_format); if (actual_size) { *out_cached_data = (bstr){buffer, actual_size + 4};