xf86-video-intel: src/sna/gen3_render.c src/sna/kgem.c src/sna/kgem.h src/sna/sna_render.c
Chris Wilson
ickle at kemper.freedesktop.org
Tue Mar 12 08:17:12 PDT 2013
src/sna/gen3_render.c | 2 ++
src/sna/kgem.c | 2 +-
src/sna/kgem.h | 2 ++
src/sna/sna_render.c | 1 +
4 files changed, 6 insertions(+), 1 deletion(-)
New commits:
commit 09862a85eba243babde9ca721ca6521566f5c082
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Mar 12 15:12:59 2013 +0000
sna: Mark redirect proxies with a unique id
This helps gen3 in particular as it uses the unique_id field of a bo to
detect changes in render target.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index 3313e3e..28b950f 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -3215,6 +3215,8 @@ gen3_composite_set_target(struct sna *sna,
if (op->dst.bo == NULL)
return false;
+ assert(op->dst.bo->unique_id);
+
/* For single-stream mode there should be no minimum alignment
* required, except that the width must be at least 2 elements.
*/
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 2032679..8d3e9df 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -1198,7 +1198,7 @@ void kgem_init(struct kgem *kgem, int fd, struct pci_device *dev, unsigned gen)
}
/* XXX hopefully a good approximation */
-static uint32_t kgem_get_unique_id(struct kgem *kgem)
+uint32_t kgem_get_unique_id(struct kgem *kgem)
{
uint32_t id;
id = ++kgem->unique_id;
diff --git a/src/sna/kgem.h b/src/sna/kgem.h
index d6940af..82f9b52 100644
--- a/src/sna/kgem.h
+++ b/src/sna/kgem.h
@@ -249,6 +249,8 @@ unsigned kgem_can_create_2d(struct kgem *kgem, int width, int height, int depth)
#define KGEM_CAN_CREATE_LARGE 0x4
#define KGEM_CAN_CREATE_GTT 0x8
+uint32_t kgem_get_unique_id(struct kgem *kgem);
+
struct kgem_bo *
kgem_replace_bo(struct kgem *kgem,
struct kgem_bo *src,
diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c
index 4bfd939..a929750 100644
--- a/src/sna/sna_render.c
+++ b/src/sna/sna_render.c
@@ -1970,6 +1970,7 @@ sna_render_composite_redirect(struct sna *sna,
}
assert(op->dst.bo != t->real_bo);
+ op->dst.bo->unique_id = kgem_unique_id(&sna->kgem);
op->dst.bo->pitch = t->real_bo->pitch;
op->dst.x -= box.x1;
More information about the xorg-commit
mailing list