We have varied reports of swizzling corruption on gen4 desktop, and
confirmation that it is triggered by uneven memory banks. The
implication is that the swizzling various between the paired channels
and the remainder of memory on the single channel. As the object then
has unpredictable swizzling (it will vary depending on exact page
allocation and may even change during the object's lifetime as the pages
are replaced), we have to report to userspace that the swizzling is
unknown.

Reported-by: Matti Hämäläinen <[email protected]>
References: https://bugs.freedesktop.org/show_bug.cgi?id=90725
Signed-off-by: Chris Wilson <[email protected]>
Cc: Matti Hämäläinen <[email protected]>
Cc: [email protected]
---
 drivers/gpu/drm/i915/i915_gem_fence.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_fence.c 
b/drivers/gpu/drm/i915/i915_gem_fence.c
index 40a10b25956c..6ba68083aa95 100644
--- a/drivers/gpu/drm/i915/i915_gem_fence.c
+++ b/drivers/gpu/drm/i915/i915_gem_fence.c
@@ -677,8 +677,8 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
                 * the minimum size of a rank.
                 */
                if (I915_READ16(C0DRB3) != I915_READ16(C1DRB3)) {
-                       swizzle_x = I915_BIT_6_SWIZZLE_NONE;
-                       swizzle_y = I915_BIT_6_SWIZZLE_NONE;
+                       swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN;
+                       swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN;
                } else {
                        swizzle_x = I915_BIT_6_SWIZZLE_9_10;
                        swizzle_y = I915_BIT_6_SWIZZLE_9;
-- 
2.6.2

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to