xf86-video-intel: 2 commits - configure.ac src/sna/kgem.c src/sna/sna_blt.c
Chris Wilson
ickle at kemper.freedesktop.org
Tue Jan 6 02:48:45 PST 2015
configure.ac | 10 ----------
src/sna/kgem.c | 5 -----
src/sna/sna_blt.c | 32 ++++++++++++++++++++------------
3 files changed, 20 insertions(+), 27 deletions(-)
New commits:
commit 986cb2335c30792e24a7e2b930ecaa3fa051809a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Jan 6 10:45:05 2015 +0000
sna: Enable mmap(wc) support by default
Now included in upstream kernels as of
commit 1816f92363036600f2387bb8273b1e5e1f5b304e
Author: Akash Goel <akash.goel at intel.com>
Date: Fri Jan 2 16:29:30 2015 +0530
drm/i915: Support creation of unbound wc user mappings for objects
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/configure.ac b/configure.ac
index 61bea43..314e638 100644
--- a/configure.ac
+++ b/configure.ac
@@ -722,16 +722,6 @@ if test "x$RENDERNODE" = "xyes"; then
xp_msg="$xp_msg rendernode"
fi
-AC_ARG_ENABLE(wc-mmap,
- AS_HELP_STRING([--enable-wc-mmap],
- [Enable use of WriteCombining mmaps [default=no]]),
- [WC_MMAP="$enableval"],
- [WC_MMAP="no"])
-if test "x$WC_MMAP" = "xyes"; then
- AC_DEFINE(USE_WC_MMAP,1,[Enable use of WriteCombining mmaps])
- xp_msg="$xp_msg mmap(wc)"
-fi
-
AC_ARG_ENABLE(create2,
AS_HELP_STRING([--enable-create2],
[Enable use of create2 ioctl (experimental) [default=no]]),
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 78ed540..aba6881 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -96,11 +96,6 @@ search_snoop_cache(struct kgem *kgem, unsigned int num_pages, unsigned flags);
#define SHOW_BATCH_BEFORE 0
#define SHOW_BATCH_AFTER 0
-#if !USE_WC_MMAP
-#undef DBG_NO_WC_MMAP
-#define DBG_NO_WC_MMAP 1
-#endif
-
#if 0
#define ASSERT_IDLE(kgem__, handle__) assert(!__kgem_busy(kgem__, handle__))
#define ASSERT_MAYBE_IDLE(kgem__, handle__, expect__) assert(!(expect__) || !__kgem_busy(kgem__, handle__))
commit c4428532f61e610f63c1d968b912bacae03d0290
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Mon Jan 5 13:46:33 2015 +0000
sna: Don't force a batch flush at the start of a BLT fill op
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c
index de8f6ec..bbba33c 100644
--- a/src/sna/sna_blt.c
+++ b/src/sna/sna_blt.c
@@ -237,18 +237,12 @@ static bool sna_blt_fill_init(struct sna *sna,
return true;
}
-noinline static void sna_blt_fill_begin(struct sna *sna,
- const struct sna_blt_state *blt)
+noinline static void __sna_blt_fill_begin(struct sna *sna,
+ const struct sna_blt_state *blt)
{
struct kgem *kgem = &sna->kgem;
uint32_t *b;
- if (kgem->nreloc) {
- _kgem_submit(kgem);
- _kgem_set_mode(kgem, KGEM_BLT);
- assert(kgem->nbatch == 0);
- }
-
assert(kgem->mode == KGEM_BLT);
b = kgem->batch + kgem->nbatch;
if (sna->kgem.gen >= 0100) {
@@ -293,6 +287,20 @@ noinline static void sna_blt_fill_begin(struct sna *sna,
}
}
+inline static void sna_blt_fill_begin(struct sna *sna,
+ const struct sna_blt_state *blt)
+{
+ struct kgem *kgem = &sna->kgem;
+
+ if (kgem->nreloc) {
+ _kgem_submit(kgem);
+ _kgem_set_mode(kgem, KGEM_BLT);
+ assert(kgem->nbatch == 0);
+ }
+
+ __sna_blt_fill_begin(sna, blt);
+}
+
inline static void sna_blt_fill_one(struct sna *sna,
const struct sna_blt_state *blt,
int16_t x, int16_t y,
@@ -3062,7 +3070,7 @@ static void sna_blt_fill_op_blt(struct sna *sna,
if (sna->blt_state.fill_bo != op->base.u.blt.bo[0]->unique_id) {
const struct sna_blt_state *blt = &op->base.u.blt;
- sna_blt_fill_begin(sna, blt);
+ __sna_blt_fill_begin(sna, blt);
sna->blt_state.fill_bo = blt->bo[0]->unique_id;
sna->blt_state.fill_pixel = blt->pixel;
@@ -3079,7 +3087,7 @@ fastcall static void sna_blt_fill_op_box(struct sna *sna,
if (sna->blt_state.fill_bo != op->base.u.blt.bo[0]->unique_id) {
const struct sna_blt_state *blt = &op->base.u.blt;
- sna_blt_fill_begin(sna, blt);
+ __sna_blt_fill_begin(sna, blt);
sna->blt_state.fill_bo = blt->bo[0]->unique_id;
sna->blt_state.fill_pixel = blt->pixel;
@@ -3097,7 +3105,7 @@ fastcall static void sna_blt_fill_op_boxes(struct sna *sna,
if (sna->blt_state.fill_bo != op->base.u.blt.bo[0]->unique_id) {
const struct sna_blt_state *blt = &op->base.u.blt;
- sna_blt_fill_begin(sna, blt);
+ __sna_blt_fill_begin(sna, blt);
sna->blt_state.fill_bo = blt->bo[0]->unique_id;
sna->blt_state.fill_pixel = blt->pixel;
@@ -3132,7 +3140,7 @@ fastcall static void sna_blt_fill_op_points(struct sna *sna,
DBG(("%s: %08x x %d\n", __FUNCTION__, blt->pixel, n));
if (sna->blt_state.fill_bo != op->base.u.blt.bo[0]->unique_id) {
- sna_blt_fill_begin(sna, blt);
+ __sna_blt_fill_begin(sna, blt);
sna->blt_state.fill_bo = blt->bo[0]->unique_id;
sna->blt_state.fill_pixel = blt->pixel;
More information about the xorg-commit
mailing list