diff --git a/gsk/ngl/gsknglcommandqueue.c b/gsk/ngl/gsknglcommandqueue.c index 5449fde9af..b731d9d2db 100644 --- a/gsk/ngl/gsknglcommandqueue.c +++ b/gsk/ngl/gsknglcommandqueue.c @@ -617,7 +617,7 @@ gsk_ngl_command_queue_end_draw (GskNglCommandQueue *self) last_batch->any.viewport.height == batch->any.viewport.height && last_batch->draw.framebuffer == batch->draw.framebuffer && last_batch->draw.vbo_offset + last_batch->draw.vbo_count == batch->draw.vbo_offset && - last_batch->draw.vbo_count + batch->draw.vbo_count < G_MAXINT16 && + last_batch->draw.vbo_count + batch->draw.vbo_count <= 0xffff && snapshots_equal (self, last_batch, batch)) { last_batch->draw.vbo_count += batch->draw.vbo_count; diff --git a/gsk/ngl/gsknglrenderjob.c b/gsk/ngl/gsknglrenderjob.c index d08d45a04f..b876e6e248 100644 --- a/gsk/ngl/gsknglrenderjob.c +++ b/gsk/ngl/gsknglrenderjob.c @@ -2889,7 +2889,7 @@ gsk_ngl_render_job_visit_text_node (GskNglRenderJob *job, if G_UNLIKELY (texture_id == 0) continue; - if G_UNLIKELY (last_texture != texture_id) + if G_UNLIKELY (last_texture != texture_id || batch->draw.vbo_count + GSK_NGL_N_VERTICES > 0xffff) { if G_LIKELY (last_texture != 0) {