diff --git a/src/sna/kgem.c b/src/sna/kgem.c index 2f8d6965..fdba699b 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -1102,7 +1102,7 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen) DBG(("%s: buffer size=%d [%d KiB]\n", __FUNCTION__, kgem->buffer_size, kgem->buffer_size / 1024)); - kgem->max_object_size = 2 * kgem->aperture_high / 3; + kgem->max_object_size = 3 * kgem->aperture_high / 4; kgem->max_gpu_size = kgem->max_object_size; if (!kgem->has_llc) kgem->max_gpu_size = MAX_CACHE_SIZE; @@ -3387,8 +3387,6 @@ unsigned kgem_can_create_2d(struct kgem *kgem, I915_TILING_NONE, &pitch); DBG(("%s: untiled size=%d\n", __FUNCTION__, size)); if (size > 0) { - if (size < 4096) - flags |= KGEM_CAN_CREATE_SMALL; if (size <= kgem->max_cpu_size) flags |= KGEM_CAN_CREATE_CPU; if (size <= kgem->max_gpu_size) diff --git a/src/sna/kgem.h b/src/sna/kgem.h index 372bfdb1..d2b89f54 100644 --- a/src/sna/kgem.h +++ b/src/sna/kgem.h @@ -248,7 +248,6 @@ unsigned kgem_can_create_2d(struct kgem *kgem, int width, int height, int depth) #define KGEM_CAN_CREATE_CPU 0x2 #define KGEM_CAN_CREATE_LARGE 0x4 #define KGEM_CAN_CREATE_GTT 0x8 -#define KGEM_CAN_CREATE_SMALL 0x10 struct kgem_bo * kgem_replace_bo(struct kgem *kgem, diff --git a/src/sna/sna.h b/src/sna/sna.h index bddeed49..112af359 100644 --- a/src/sna/sna.h +++ b/src/sna/sna.h @@ -126,7 +126,7 @@ struct sna_pixmap { #define PIN_SCANOUT 0x1 #define PIN_DRI 0x2 #define PIN_PRIME 0x4 - uint8_t create :5; + uint8_t create :4; uint8_t mapped :1; uint8_t shm :1; uint8_t clear :1; diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index a1689253..2d947a3b 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -1224,7 +1224,7 @@ static PixmapPtr sna_create_pixmap(ScreenPtr screen, ptr = MAKE_STATIC_PTR(pixmap->devPrivate.ptr); pad = pixmap->devKind; - flags |= KGEM_CAN_CREATE_SMALL; + flags &= ~(KGEM_CAN_CREATE_GPU | KGEM_CAN_CREATE_CPU); } else { DBG(("%s: creating GPU pixmap %dx%d, stride=%d, flags=%x\n", __FUNCTION__, width, height, pad, flags)); diff --git a/src/sna/sna_render_inline.h b/src/sna/sna_render_inline.h index a3297073..432201f5 100644 --- a/src/sna/sna_render_inline.h +++ b/src/sna/sna_render_inline.h @@ -97,7 +97,7 @@ too_small(struct sna_pixmap *priv) if (priv->cpu_bo && kgem_bo_is_busy(priv->cpu_bo)) return false; - return priv->create & KGEM_CAN_CREATE_SMALL; + return (priv->create & KGEM_CAN_CREATE_GPU) == 0; } static inline bool