diff --git a/video/out/opengl/ra_gl.c b/video/out/opengl/ra_gl.c index ccb8755ba6..ae6cd00765 100644 --- a/video/out/opengl/ra_gl.c +++ b/video/out/opengl/ra_gl.c @@ -102,8 +102,6 @@ static int ra_init_gl(struct ra *ra, GL *gl) {RA_CAP_TEX_3D, MPGL_CAP_3D_TEX}, {RA_CAP_COMPUTE, MPGL_CAP_COMPUTE_SHADER}, {RA_CAP_NESTED_ARRAY, MPGL_CAP_NESTED_ARRAY}, - {RA_CAP_BUF_RO, MPGL_CAP_UBO}, - {RA_CAP_BUF_RW, MPGL_CAP_SSBO}, }; for (int i = 0; i < MP_ARRAY_SIZE(caps_map); i++) { @@ -111,6 +109,13 @@ static int ra_init_gl(struct ra *ra, GL *gl) ra->caps |= caps_map[i][0]; } + if (gl->BindBufferBase) { + if (gl->mpgl_caps & MPGL_CAP_UBO) + ra->caps |= RA_CAP_BUF_RO; + if (gl->mpgl_caps & MPGL_CAP_SSBO) + ra->caps |= RA_CAP_BUF_RW; + } + if (gl->BlitFramebuffer) ra->caps |= RA_CAP_BLIT;