5 #include "nvc0/nve4_compute.xml.h"
7 struct nve4_cp_launch_desc
20 u16 shared_size
; /* must be aligned to 0x100 */
37 u32 local_size_p
: 20;
40 u32 local_size_n
: 20;
48 struct gp100_cp_launch_desc
72 u32 local_size_p
: 24;
75 u32 local_size_n
: 24;
89 nve4_cp_launch_desc_init_default(struct nve4_cp_launch_desc
*desc
)
91 memset(desc
, 0, sizeof(*desc
));
93 desc
->unk0
[7] = 0xbc000000;
94 desc
->unk11_0
= 0x04014000;
95 desc
->unk47_20
= 0x300;
99 nve4_cp_launch_desc_set_cb(struct nve4_cp_launch_desc
*desc
,
101 struct nouveau_bo
*bo
,
102 uint32_t base
, uint32_t size
)
104 uint64_t address
= bo
->offset
+ base
;
107 assert(!(base
& 0xff));
109 desc
->cb
[index
].address_l
= address
;
110 desc
->cb
[index
].address_h
= address
>> 32;
111 desc
->cb
[index
].size
= size
;
113 desc
->cb_mask
|= 1 << index
;
117 gp100_cp_launch_desc_init_default(struct gp100_cp_launch_desc
*desc
)
119 memset(desc
, 0, sizeof(*desc
));
121 desc
->unk0
[4] = 0x40;
122 desc
->unk11_0
= 0x04014000;
126 gp100_cp_launch_desc_set_cb(struct gp100_cp_launch_desc
*desc
,
128 struct nouveau_bo
*bo
,
129 uint32_t base
, uint32_t size
)
131 uint64_t address
= bo
->offset
+ base
;
134 assert(!(base
& 0xff));
136 desc
->cb
[index
].address_l
= address
;
137 desc
->cb
[index
].address_h
= address
>> 32;
138 desc
->cb
[index
].size_sh4
= DIV_ROUND_UP(size
, 16);
140 desc
->cb_mask
|= 1 << index
;
143 struct nve4_mp_trap_info
{
157 #endif /* NVE4_COMPUTE_H */