mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-03 19:47:15 +00:00 
			
		
		
		
	igt: More MI_STORE_DWORD fixes for gen5
A few other tests I have updated recently to use MI_STORE_DWORD also need the magic bit for gen4/5. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
		
							parent
							
								
									3ec8b1d28e
								
							
						
					
					
						commit
						89f81e0396
					
				@ -62,7 +62,7 @@ static void setup(int fd, int gen, struct shadow *shadow)
 | 
				
			|||||||
	shadow->handle = gem_create(fd, 4096);
 | 
						shadow->handle = gem_create(fd, 4096);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	i = 0;
 | 
						i = 0;
 | 
				
			||||||
	buf[i++] = MI_STORE_DWORD_IMM;
 | 
						buf[i++] = MI_STORE_DWORD_IMM | (gen < 6 ? 1 << 22 : 0);
 | 
				
			||||||
	if (gen >= 8) {
 | 
						if (gen >= 8) {
 | 
				
			||||||
		buf[i++] = BATCH_SIZE - sizeof(uint32_t);
 | 
							buf[i++] = BATCH_SIZE - sizeof(uint32_t);
 | 
				
			||||||
		buf[i++] = 0;
 | 
							buf[i++] = 0;
 | 
				
			||||||
@ -71,7 +71,6 @@ static void setup(int fd, int gen, struct shadow *shadow)
 | 
				
			|||||||
		buf[i++] = BATCH_SIZE - sizeof(uint32_t);
 | 
							buf[i++] = BATCH_SIZE - sizeof(uint32_t);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		buf[i-1]--;
 | 
							buf[i-1]--;
 | 
				
			||||||
		buf[i-1] |= 1 << 22;
 | 
					 | 
				
			||||||
		buf[i++] = BATCH_SIZE - sizeof(uint32_t);
 | 
							buf[i++] = BATCH_SIZE - sizeof(uint32_t);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	buf[i++] = MI_BATCH_BUFFER_END;
 | 
						buf[i++] = MI_BATCH_BUFFER_END;
 | 
				
			||||||
@ -125,7 +124,7 @@ static void test_ring(unsigned ring)
 | 
				
			|||||||
	memset(&execbuf, 0, sizeof(execbuf));
 | 
						memset(&execbuf, 0, sizeof(execbuf));
 | 
				
			||||||
	execbuf.buffers_ptr = (uintptr_t)obj;
 | 
						execbuf.buffers_ptr = (uintptr_t)obj;
 | 
				
			||||||
	execbuf.flags = ring;
 | 
						execbuf.flags = ring;
 | 
				
			||||||
	if (gen < 4)
 | 
						if (gen < 6)
 | 
				
			||||||
		execbuf.flags |= I915_EXEC_SECURE;
 | 
							execbuf.flags |= I915_EXEC_SECURE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; i < count; i++) {
 | 
						for (i = 0; i < count; i++) {
 | 
				
			||||||
 | 
				
			|||||||
@ -52,7 +52,7 @@ static void write_dword(int fd,
 | 
				
			|||||||
	obj[1].handle = gem_create(fd, 4096);
 | 
						obj[1].handle = gem_create(fd, 4096);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	i = 0;
 | 
						i = 0;
 | 
				
			||||||
	buf[i++] = MI_STORE_DWORD_IMM;
 | 
						buf[i++] = MI_STORE_DWORD_IMM | (gen < 6 ? 1<<22 : 0);
 | 
				
			||||||
	if (gen >= 8) {
 | 
						if (gen >= 8) {
 | 
				
			||||||
		buf[i++] = target_offset;
 | 
							buf[i++] = target_offset;
 | 
				
			||||||
		buf[i++] = target_offset >> 32;
 | 
							buf[i++] = target_offset >> 32;
 | 
				
			||||||
@ -61,7 +61,6 @@ static void write_dword(int fd,
 | 
				
			|||||||
		buf[i++] = target_offset;
 | 
							buf[i++] = target_offset;
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		buf[i-1]--;
 | 
							buf[i-1]--;
 | 
				
			||||||
		buf[i-1] |= 1 << 22;
 | 
					 | 
				
			||||||
		buf[i++] = target_offset;
 | 
							buf[i++] = target_offset;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	buf[i++] = value;
 | 
						buf[i++] = value;
 | 
				
			||||||
@ -84,6 +83,7 @@ static void write_dword(int fd,
 | 
				
			|||||||
	memset(&execbuf, 0, sizeof(execbuf));
 | 
						memset(&execbuf, 0, sizeof(execbuf));
 | 
				
			||||||
	execbuf.buffers_ptr = (uintptr_t)obj;
 | 
						execbuf.buffers_ptr = (uintptr_t)obj;
 | 
				
			||||||
	execbuf.buffer_count = 2;
 | 
						execbuf.buffer_count = 2;
 | 
				
			||||||
 | 
						execbuf.flags = I915_EXEC_SECURE;
 | 
				
			||||||
	gem_execbuf(fd, &execbuf);
 | 
						gem_execbuf(fd, &execbuf);
 | 
				
			||||||
	gem_close(fd, obj[1].handle);
 | 
						gem_close(fd, obj[1].handle);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -211,7 +211,7 @@ igt_main
 | 
				
			|||||||
	int fd = -1;
 | 
						int fd = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	igt_fixture
 | 
						igt_fixture
 | 
				
			||||||
		fd = drm_open_driver(DRIVER_INTEL);
 | 
							fd = drm_open_driver_master(DRIVER_INTEL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (size = 4096; size <= 4ull*1024*1024*1024; size <<= 1) {
 | 
						for (size = 4096; size <= 4ull*1024*1024*1024; size <<= 1) {
 | 
				
			||||||
		igt_subtest_f("mmap-%u", find_last_set(size) - 1)
 | 
							igt_subtest_f("mmap-%u", find_last_set(size) - 1)
 | 
				
			||||||
 | 
				
			|||||||
@ -402,7 +402,7 @@ static void test_noreloc(int fd)
 | 
				
			|||||||
	memset(&execbuf, 0, sizeof(execbuf));
 | 
						memset(&execbuf, 0, sizeof(execbuf));
 | 
				
			||||||
	execbuf.buffers_ptr = (uintptr_t)object;
 | 
						execbuf.buffers_ptr = (uintptr_t)object;
 | 
				
			||||||
	execbuf.buffer_count = 1;
 | 
						execbuf.buffer_count = 1;
 | 
				
			||||||
	if (gen < 4)
 | 
						if (gen < 6)
 | 
				
			||||||
		execbuf.flags |= I915_EXEC_SECURE;
 | 
							execbuf.flags |= I915_EXEC_SECURE;
 | 
				
			||||||
	gem_execbuf(fd, &execbuf);
 | 
						gem_execbuf(fd, &execbuf);
 | 
				
			||||||
	gem_close(fd, object[0].handle);
 | 
						gem_close(fd, object[0].handle);
 | 
				
			||||||
@ -424,17 +424,16 @@ static void test_noreloc(int fd)
 | 
				
			|||||||
	gem_set_domain(fd, object[i].handle,
 | 
						gem_set_domain(fd, object[i].handle,
 | 
				
			||||||
		       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
 | 
							       I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
 | 
				
			||||||
	for (i = 0; i < ARRAY_SIZE(object) - 1; i++) {
 | 
						for (i = 0; i < ARRAY_SIZE(object) - 1; i++) {
 | 
				
			||||||
		*b++ = MI_STORE_DWORD_IMM;
 | 
							*b++ = MI_STORE_DWORD_IMM | (gen < 6 ? 1 << 22 : 0);
 | 
				
			||||||
		if (gen < 8) {
 | 
							if (gen >= 8) {
 | 
				
			||||||
			if (gen < 4) {
 | 
					 | 
				
			||||||
				b[-1]--;
 | 
					 | 
				
			||||||
				b[-1] |= 1 << 22;
 | 
					 | 
				
			||||||
			} else
 | 
					 | 
				
			||||||
				*b++ = 0;
 | 
					 | 
				
			||||||
			*b++ = object[i].offset;
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			*b++ = object[i].offset;
 | 
								*b++ = object[i].offset;
 | 
				
			||||||
			*b++ = object[i].offset >> 32;
 | 
								*b++ = object[i].offset >> 32;
 | 
				
			||||||
 | 
							} else if (gen >= 4) {
 | 
				
			||||||
 | 
								*b++ = 0;
 | 
				
			||||||
 | 
								*b++ = object[i].offset;
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								b[-1]--;
 | 
				
			||||||
 | 
								*b++ = object[i].offset;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		*b++ = i;
 | 
							*b++ = i;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -451,7 +450,7 @@ static void test_noreloc(int fd)
 | 
				
			|||||||
			uint32_t val;
 | 
								uint32_t val;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			gem_read(fd, object[i].handle, 0, &val, sizeof(val));
 | 
								gem_read(fd, object[i].handle, 0, &val, sizeof(val));
 | 
				
			||||||
			igt_assert_eq(val, (object[i].offset - offset)/ size);
 | 
								igt_assert_eq(val, (object[i].offset - offset)/size);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	for (i = 0; i < ARRAY_SIZE(object); i++)
 | 
						for (i = 0; i < ARRAY_SIZE(object); i++)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user