From 3b1e4e6dc38029e697afb8e6ec81ebbed7adf442 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 29 May 2008 12:53:13 -0700 Subject: [intel-gem] Write the presumed_offset back out after updating it. Otherwise, 965 constant state buffers get re-relocated every exec. Ouch. --- linux-core/i915_gem.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'linux-core') diff --git a/linux-core/i915_gem.c b/linux-core/i915_gem.c index 1fc48e0c..52a57d5e 100644 --- a/linux-core/i915_gem.c +++ b/linux-core/i915_gem.c @@ -1137,6 +1137,16 @@ i915_gem_reloc_and_validate_object(struct drm_gem_object *obj, #endif writel(reloc_val, reloc_entry); + /* Write the updated presumed offset for this entry back out + * to the user. + */ + reloc.presumed_offset = target_obj_priv->gtt_offset; + ret = copy_to_user(relocs + i, &reloc, sizeof(reloc)); + if (ret != 0) { + drm_gem_object_unreference(target_obj); + return ret; + } + drm_gem_object_unreference(target_obj); } -- cgit v1.2.3