[igt-dev] [PATCH i-g-t 1/2] lib/intel_bufops: Add fixed mapping for reading ccs data

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Wed Dec 29 11:48:05 UTC 2021


On discrete gem_mmap_offset__fixed() function must be used to map
local memory. Add this case for copying of ccs data and fix
all *ccs* subtests in gem_render_copy test.

Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Ashutosh Dixit <ashutosh.dixit at intel.com>
Cc: Petri Latvala <petri.latvala at intel.com>
---
 lib/intel_bufops.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c
index f13063fa9..72d729b63 100644
--- a/lib/intel_bufops.c
+++ b/lib/intel_bufops.c
@@ -399,11 +399,17 @@ static void __copy_ccs(struct buf_ops *bops, struct intel_buf *buf,
 	ccs_size = CCS_SIZE(gen, buf);
 	size = offset + ccs_size;
 
-	map = __gem_mmap_offset__wc(bops->fd, buf->handle, 0, size,
-				    PROT_READ | PROT_WRITE);
+	if (gem_has_lmem(bops->fd)) {
+		map = gem_mmap_offset__fixed(bops->fd, buf->handle, 0, size,
+					     PROT_READ | PROT_WRITE);
+	}
 	if (!map)
-		map = gem_mmap__wc(bops->fd, buf->handle, 0, size,
-				   PROT_READ | PROT_WRITE);
+		map = __gem_mmap_offset__wc(bops->fd, buf->handle, 0, size,
+					    PROT_READ | PROT_WRITE);
+	if (!map)
+		map = __gem_mmap__wc(bops->fd, buf->handle, 0, size,
+				     PROT_READ | PROT_WRITE);
+
 
 	switch (dir) {
 	case CCS_LINEAR_TO_BUF:
-- 
2.32.0



More information about the igt-dev mailing list