mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +00:00 
			
		
		
		
	intel_gpu_dump: Stop decoding batchbuffers after MI_BATCH_BUFFER_END.
This commit is contained in:
		
							parent
							
								
									652d5518d6
								
							
						
					
					
						commit
						3365c8563a
					
				@ -130,6 +130,11 @@ decode_mi(uint32_t *data, int count, uint32_t hw_offset, int *failures)
 | 
			
		||||
	{ 0x03, 0, 1, 1, "MI_WAIT_FOR_EVENT" },
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    switch ((data[0] & 0x1f800000) >> 23) {
 | 
			
		||||
    case 0x0a:
 | 
			
		||||
	instr_out(data, hw_offset, 0, "MI_BATCH_BUFFER_END\n");
 | 
			
		||||
	return -1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (opcode = 0; opcode < sizeof(opcodes_mi) / sizeof(opcodes_mi[0]);
 | 
			
		||||
	 opcode++) {
 | 
			
		||||
@ -1785,6 +1790,7 @@ decode_3d_i830(uint32_t *data, int count, uint32_t hw_offset, int *failures)
 | 
			
		||||
int
 | 
			
		||||
intel_decode(uint32_t *data, int count, uint32_t hw_offset, uint32_t devid)
 | 
			
		||||
{
 | 
			
		||||
    int ret;
 | 
			
		||||
    int index = 0;
 | 
			
		||||
    int failures = 0;
 | 
			
		||||
 | 
			
		||||
@ -1793,8 +1799,19 @@ intel_decode(uint32_t *data, int count, uint32_t hw_offset, uint32_t devid)
 | 
			
		||||
    while (index < count) {
 | 
			
		||||
	switch ((data[index] & 0xe0000000) >> 29) {
 | 
			
		||||
	case 0x0:
 | 
			
		||||
	    index += decode_mi(data + index, count - index,
 | 
			
		||||
	    ret = decode_mi(data + index, count - index,
 | 
			
		||||
			       hw_offset + index * 4, &failures);
 | 
			
		||||
 | 
			
		||||
	    /* If MI_BATCHBUFFER_END happened, then dump the rest of the
 | 
			
		||||
	     * output in case we some day want it in debugging, but don't
 | 
			
		||||
	     * decode it since it'll just confuse in the common case.
 | 
			
		||||
	     */
 | 
			
		||||
	    if (ret == -1) {
 | 
			
		||||
		for (index = index + 1; index < count; index++) {
 | 
			
		||||
		    instr_out(data, hw_offset, index, "\n");
 | 
			
		||||
		}
 | 
			
		||||
	    } else
 | 
			
		||||
		index += ret;
 | 
			
		||||
	    break;
 | 
			
		||||
	case 0x2:
 | 
			
		||||
	    index += decode_2d(data + index, count - index,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user