For me #define MAX_FLUSH_VERTICES 1 fixes the issue. #define MAX_FLUSH_VERTICES 2 is also stable so far. Values starting from 3 result in artifacts.
However, as I wrote in post #150, reverting this:
diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c index 62415c8..43086a0 100644 --- a/src/sna/sna_glyphs.c +++ b/src/sna/sna_glyphs.c @@ -1130,8 +1130,7 @@ next_image: - if (this_atlas->format == (format->depth << 24 | format->format) && - (sna->kgem.gen >> 3) != 4) { /* XXX cache corruption? how? */ + if (this_atlas->format == (format->depth << 24 | format->format)) {
Solves the problem at all - even setting #define MAX_FLUSH_VERTICES 128 works correct, as well as #define FORCE_FLUSH 0 is also fine.
For me #define MAX_FLUSH_VERTICES 1 fixes the issue. #define MAX_FLUSH_VERTICES 2 is also stable so far. Values starting from 3 result in artifacts.
However, as I wrote in post #150, reverting this:
diff --git a/src/sna/ sna_glyphs. c b/src/sna/ sna_glyphs. c sna_glyphs. c sna_glyphs. c
index 62415c8..43086a0 100644
--- a/src/sna/
+++ b/src/sna/
@@ -1130,8 +1130,7 @@ next_image:
- if (this_atlas->format == (format->depth << 24 | format->format) &&
- (sna->kgem.gen >> 3) != 4) { /* XXX cache corruption? how? */
+ if (this_atlas->format == (format->depth << 24 | format->format)) {
Solves the problem at all - even setting #define MAX_FLUSH_VERTICES 128 works correct, as well as #define FORCE_FLUSH 0 is also fine.