5 #include "nvc0/nve4_compute.xml.h"
7 /* Input space is implemented as c0[], to which we bind the screen->parm bo.
9 #define NVE4_CP_INPUT_USER 0x0000
10 #define NVE4_CP_INPUT_USER_LIMIT 0x1000
11 #define NVE4_CP_INPUT_GRID_INFO(i) (0x1000 + (i) * 4)
12 #define NVE4_CP_INPUT_NTID(i) (0x1000 + (i) * 4)
13 #define NVE4_CP_INPUT_NCTAID(i) (0x100c + (i) * 4)
14 #define NVE4_CP_INPUT_GRIDID 0x1018
15 #define NVE4_CP_INPUT_TEX(i) (0x1040 + (i) * 4)
16 #define NVE4_CP_INPUT_TEX_STRIDE 4
17 #define NVE4_CP_INPUT_TEX_MAX 32
18 #define NVE4_CP_INPUT_MS_OFFSETS 0x10c0
19 #define NVE4_CP_INPUT_SUF_STRIDE 64
20 #define NVE4_CP_INPUT_SUF(i) (0x1100 + (i) * NVE4_CP_INPUT_SUF_STRIDE)
21 #define NVE4_CP_INPUT_SUF_MAX 32
22 #define NVE4_CP_INPUT_TRAP_INFO_PTR 0x1900
23 #define NVE4_CP_INPUT_TEMP_PTR 0x1908
24 #define NVE4_CP_INPUT_MP_TEMP_SIZE 0x1910
25 #define NVE4_CP_INPUT_WARP_TEMP_SIZE 0x1914
26 #define NVE4_CP_INPUT_CSTACK_SIZE 0x1918
27 #define NVE4_CP_INPUT_SIZE 0x1a00
28 #define NVE4_CP_PARAM_TRAP_INFO 0x2000
29 #define NVE4_CP_PARAM_TRAP_INFO_SZ (1 << 16)
30 #define NVE4_CP_PARAM_SIZE (NVE4_CP_PARAM_TRAP_INFO + (1 << 16))
32 struct nve4_cp_launch_desc
42 u16 shared_size
; /* must be aligned to 0x100 */
59 u32 local_size_p
: 20;
62 u32 local_size_n
: 20;
71 nve4_cp_launch_desc_init_default(struct nve4_cp_launch_desc
*desc
)
73 memset(desc
, 0, sizeof(*desc
));
75 desc
->unk0
[7] = 0xbc000000;
76 desc
->unk9
[2] = 0x44014000;
77 desc
->unk47_20
= 0x300;
81 nve4_cp_launch_desc_set_cb(struct nve4_cp_launch_desc
*desc
,
83 struct nouveau_bo
*bo
,
84 uint32_t base
, uint16_t size
)
86 uint64_t address
= bo
->offset
+ base
;
89 assert(!(base
& 0xff));
91 desc
->cb
[index
].address_l
= address
;
92 desc
->cb
[index
].address_h
= address
>> 32;
93 desc
->cb
[index
].size
= size
;
95 desc
->cb_mask
|= 1 << index
;
99 nve4_cp_launch_desc_set_ctx_cb(struct nve4_cp_launch_desc
*desc
,
101 const struct nvc0_constbuf
*cb
)
106 desc
->cb_mask
&= ~(1 << index
);
108 const struct nv04_resource
*buf
= nv04_resource(cb
->u
.buf
);
110 nve4_cp_launch_desc_set_cb(desc
, index
,
111 buf
->bo
, buf
->offset
+ cb
->offset
, cb
->size
);
115 struct nve4_mp_trap_info
{
129 #endif /* NVE4_COMPUTE_H */