mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 03:58:27 +00:00 
			
		
		
		
	igt/gem_ctx_exec: Add lrc lite restore subtest
Exercise lite-restore (re-submit a context that is currently running), by queueing several small batchbuffers. This test helps to validate WaIdleLiteRestore. Signed-off-by: Michel Thierry <michel.thierry@intel.com>
This commit is contained in:
		
							parent
							
								
									c4ec47b46d
								
							
						
					
					
						commit
						3be592001b
					
				@ -155,7 +155,7 @@ static void big_exec(int fd, uint32_t handle, int ring)
 | 
			
		||||
 | 
			
		||||
uint32_t handle;
 | 
			
		||||
uint32_t batch[2] = {0, MI_BATCH_BUFFER_END};
 | 
			
		||||
uint32_t ctx_id;
 | 
			
		||||
uint32_t ctx_id, ctx_id2;
 | 
			
		||||
int fd;
 | 
			
		||||
 | 
			
		||||
igt_main
 | 
			
		||||
@ -215,4 +215,32 @@ igt_main
 | 
			
		||||
 | 
			
		||||
		gem_context_destroy(fd, ctx_id);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	igt_subtest("lrc-lite-restore") {
 | 
			
		||||
		int i, j;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Need 2 contexts to be able to replicate a lite restore,
 | 
			
		||||
		 * i.e. a running context is resubmitted.
 | 
			
		||||
		 */
 | 
			
		||||
		ctx_id = gem_context_create(fd);
 | 
			
		||||
		ctx_id2 = gem_context_create(fd);
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Queue several small batchbuffers to be sure we'll send execlists
 | 
			
		||||
		 * with 2 valid context, and likely cause a lite restore when ctxB
 | 
			
		||||
		 * is resubmitted at the top of the new execlist.
 | 
			
		||||
		 */
 | 
			
		||||
		for (i = 0; i < 20; i++) {
 | 
			
		||||
			for (j = 0; j < 200; j++) {
 | 
			
		||||
				igt_assert(exec(fd, handle, I915_EXEC_RENDER, ctx_id) == 0);
 | 
			
		||||
				igt_assert(exec(fd, handle, I915_EXEC_RENDER, ctx_id2) == 0);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			gem_sync(fd, handle);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		gem_context_destroy(fd, ctx_id);
 | 
			
		||||
		gem_context_destroy(fd, ctx_id2);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user