xref: /aosp_15_r20/external/mesa3d/src/freedreno/common/redump.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright © 2012 Rob Clark <[email protected]>
3*61046927SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker  */
5*61046927SAndroid Build Coastguard Worker 
6*61046927SAndroid Build Coastguard Worker #ifndef REDUMP_H_
7*61046927SAndroid Build Coastguard Worker #define REDUMP_H_
8*61046927SAndroid Build Coastguard Worker 
9*61046927SAndroid Build Coastguard Worker #include <unistd.h>
10*61046927SAndroid Build Coastguard Worker 
11*61046927SAndroid Build Coastguard Worker enum rd_sect_type {
12*61046927SAndroid Build Coastguard Worker    RD_NONE,
13*61046927SAndroid Build Coastguard Worker    RD_TEST,           /* ascii text */
14*61046927SAndroid Build Coastguard Worker    RD_CMD,            /* ascii text */
15*61046927SAndroid Build Coastguard Worker    RD_GPUADDR,        /* u32 gpuaddr, u32 size */
16*61046927SAndroid Build Coastguard Worker    RD_CONTEXT,        /* raw dump */
17*61046927SAndroid Build Coastguard Worker    RD_CMDSTREAM,      /* raw dump */
18*61046927SAndroid Build Coastguard Worker    RD_CMDSTREAM_ADDR, /* gpu addr of cmdstream */
19*61046927SAndroid Build Coastguard Worker    RD_PARAM,          /* u32 param_type, u32 param_val, u32 bitlen */
20*61046927SAndroid Build Coastguard Worker    RD_FLUSH,          /* empty, clear previous params */
21*61046927SAndroid Build Coastguard Worker    RD_PROGRAM,        /* shader program, raw dump */
22*61046927SAndroid Build Coastguard Worker    RD_VERT_SHADER,
23*61046927SAndroid Build Coastguard Worker    RD_FRAG_SHADER,
24*61046927SAndroid Build Coastguard Worker    RD_BUFFER_CONTENTS,
25*61046927SAndroid Build Coastguard Worker    RD_GPU_ID,
26*61046927SAndroid Build Coastguard Worker    RD_CHIP_ID,
27*61046927SAndroid Build Coastguard Worker    RD_SHADER_LOG_BUFFER, /* Specifies buffer which has logs from shaders */
28*61046927SAndroid Build Coastguard Worker    RD_CP_LOG_BUFFER, /* Specifies buffer which has logs from CP */
29*61046927SAndroid Build Coastguard Worker    RD_WRBUFFER,     /* Specifies buffer which has data that needs to be written out to a file */
30*61046927SAndroid Build Coastguard Worker };
31*61046927SAndroid Build Coastguard Worker 
32*61046927SAndroid Build Coastguard Worker /* RD_PARAM types: */
33*61046927SAndroid Build Coastguard Worker enum rd_param_type {
34*61046927SAndroid Build Coastguard Worker    RD_PARAM_SURFACE_WIDTH,
35*61046927SAndroid Build Coastguard Worker    RD_PARAM_SURFACE_HEIGHT,
36*61046927SAndroid Build Coastguard Worker    RD_PARAM_SURFACE_PITCH,
37*61046927SAndroid Build Coastguard Worker    RD_PARAM_COLOR,
38*61046927SAndroid Build Coastguard Worker    RD_PARAM_BLIT_X,
39*61046927SAndroid Build Coastguard Worker    RD_PARAM_BLIT_Y,
40*61046927SAndroid Build Coastguard Worker    RD_PARAM_BLIT_WIDTH,
41*61046927SAndroid Build Coastguard Worker    RD_PARAM_BLIT_HEIGHT,
42*61046927SAndroid Build Coastguard Worker    RD_PARAM_BLIT_X2, /* BLIT_X + BLIT_WIDTH */
43*61046927SAndroid Build Coastguard Worker    RD_PARAM_BLIT_Y2, /* BLIT_Y + BLIT_WIDTH */
44*61046927SAndroid Build Coastguard Worker };
45*61046927SAndroid Build Coastguard Worker 
46*61046927SAndroid Build Coastguard Worker static inline void
rd_write_section(int fd,enum rd_sect_type type,const void * buf,int sz)47*61046927SAndroid Build Coastguard Worker rd_write_section(int fd, enum rd_sect_type type, const void *buf, int sz)
48*61046927SAndroid Build Coastguard Worker {
49*61046927SAndroid Build Coastguard Worker    write(fd, &type, 4);
50*61046927SAndroid Build Coastguard Worker    write(fd, &sz, 4);
51*61046927SAndroid Build Coastguard Worker    write(fd, buf, sz);
52*61046927SAndroid Build Coastguard Worker }
53*61046927SAndroid Build Coastguard Worker 
54*61046927SAndroid Build Coastguard Worker #endif /* REDUMP_H_ */
55