summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
Diffstat (limited to 'video')
-rw-r--r--video/out/opengl/gl_headers.h4
-rw-r--r--video/out/opengl/video.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/video/out/opengl/gl_headers.h b/video/out/opengl/gl_headers.h
index a55749cbb7..c764d1fbef 100644
--- a/video/out/opengl/gl_headers.h
+++ b/video/out/opengl/gl_headers.h
@@ -79,6 +79,10 @@
#define GL_DYNAMIC_STORAGE_BIT 0x0100
#define GL_CLIENT_STORAGE_BIT 0x0200
+// --- GL 4.2 or GL_ARB_image_load_store
+
+#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
+
// -- GL 4.3 or GL_ARB_compute_shader
#define GL_COMPUTE_SHADER 0x91B9
diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c
index d0efcd067d..5d94a62b2f 100644
--- a/video/out/opengl/video.c
+++ b/video/out/opengl/video.c
@@ -1274,6 +1274,7 @@ static void finish_pass_fbo(struct gl_video *p, struct fbotex *dst_fbo,
dst_fbo->iformat, GL_WRITE_ONLY);
GLSL(imageStore(out_image, ivec2(gl_GlobalInvocationID), color);)
dispatch_compute(p, w, h, p->compute_w, p->compute_h);
+ p->gl->MemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
} else {
finish_pass_direct(p, dst_fbo->fbo, dst_fbo->rw, dst_fbo->rh,
&(struct mp_rect){0, 0, w, h});