summaryrefslogtreecommitdiff
path: root/gsk/gl/gskglprogramprivate.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2023-01-28 15:20:26 -0500
committerBenjamin Otte <otte@redhat.com>2023-04-27 06:57:02 +0200
commit8292b846d58a09295e4e30c25c4e19c3ea4be8e1 (patch)
treef88bf88215d5eedcafb49180f0802c7319a2b0ce /gsk/gl/gskglprogramprivate.h
parent6efaa79e3c1b9b17a99f93de2e8a76705f3409ff (diff)
downloadgtk+-8292b846d58a09295e4e30c25c4e19c3ea4be8e1.tar.gz
gsk: Synchronize when using textures
Pass the GLsync object from texture into our command queue, and when executing the queue, wait on the sync object the first time we use its associated texture.
Diffstat (limited to 'gsk/gl/gskglprogramprivate.h')
-rw-r--r--gsk/gl/gskglprogramprivate.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/gsk/gl/gskglprogramprivate.h b/gsk/gl/gskglprogramprivate.h
index 50c191eb4b..6bfbe48f02 100644
--- a/gsk/gl/gskglprogramprivate.h
+++ b/gsk/gl/gskglprogramprivate.h
@@ -286,6 +286,22 @@ gsk_gl_program_set_uniform_texture (GskGLProgram *self,
}
static inline void
+gsk_gl_program_set_uniform_texture_with_sync (GskGLProgram *self,
+ guint key,
+ guint stamp,
+ GLenum texture_target,
+ GLenum texture_slot,
+ guint texture_id,
+ GLint min_filter,
+ GLint max_filter,
+ gpointer sync)
+{
+ gsk_gl_program_set_uniform_texture_with_filter (self, key, stamp, texture_target, texture_slot, texture_id,
+ min_filter, max_filter);
+ gsk_gl_syncs_add_sync (&self->driver->command_queue->syncs, texture_id, sync);
+}
+
+static inline void
gsk_gl_program_set_uniform_matrix (GskGLProgram *self,
guint key,
guint stamp,