11d89283cc04b628497d189c1471bb6c952020b8
5 #include "nv50/nv50_defs.xml.h"
6 #include "nve4_compute.xml.h"
8 /* Input space is implemented as c0[], to which we bind the screen->parm bo.
10 #define NVE4_CP_INPUT_USER 0x0000
11 #define NVE4_CP_INPUT_USER_LIMIT 0x1000
12 #define NVE4_CP_INPUT_GRID_INFO(i) (0x1000 + (i) * 4)
13 #define NVE4_CP_INPUT_NTID(i) (0x1000 + (i) * 4)
14 #define NVE4_CP_INPUT_NCTAID(i) (0x100c + (i) * 4)
15 #define NVE4_CP_INPUT_GRIDID 0x1018
16 #define NVE4_CP_INPUT_TEX(i) (0x1040 + (i) * 4)
17 #define NVE4_CP_INPUT_TEX_STRIDE 4
18 #define NVE4_CP_INPUT_TEX_MAX 32
19 #define NVE4_CP_INPUT_MS_OFFSETS 0x10c0
20 #define NVE4_CP_INPUT_SUF_STRIDE 64
21 #define NVE4_CP_INPUT_SUF(i) (0x1100 + (i) * NVE4_CP_INPUT_SUF_STRIDE)
22 #define NVE4_CP_INPUT_SUF_MAX 32
23 #define NVE4_CP_INPUT_SIZE 0x1900
24 #define NVE4_CP_PARAM_SIZE 0x2000
26 struct nve4_cp_launch_desc
36 u16 shared_size
; /* must be aligned to 0x100 */
53 u32 local_size_p
: 20;
56 u32 local_size_n
: 20;
64 #define NVE4_COMPUTE_UPLOAD_EXEC_UNKVAL_DATA 0x41
65 #define NVE4_COMPUTE_UPLOAD_EXEC_UNKVAL_DESC 0x11
66 #define NVE4_COMPUTE_UPLOAD_UNK0184_UNKVAL 0x1
69 nve4_cp_launch_desc_init_default(struct nve4_cp_launch_desc
*desc
)
71 memset(desc
, 0, sizeof(*desc
));
73 desc
->unk0
[7] = 0xbc000000;
74 desc
->unk9
[2] = 0x44014000;
75 desc
->unk47_20
= 0x300;
79 nve4_cp_launch_desc_set_cb(struct nve4_cp_launch_desc
*desc
,
81 struct nouveau_bo
*bo
,
82 uint32_t base
, uint16_t size
)
84 uint64_t address
= bo
->offset
+ base
;
87 assert(!(base
& 0xff));
88 assert(size
<= 65536);
90 desc
->cb
[index
].address_l
= address
;
91 desc
->cb
[index
].address_h
= address
>> 32;
92 desc
->cb
[index
].size
= size
;
94 desc
->cb_mask
|= 1 << index
;
98 nve4_cp_launch_desc_set_ctx_cb(struct nve4_cp_launch_desc
*desc
,
100 const struct nvc0_constbuf
*cb
)
105 desc
->cb_mask
&= ~(1 << index
);
107 const struct nv04_resource
*buf
= nv04_resource(cb
->u
.buf
);
109 nve4_cp_launch_desc_set_cb(desc
, index
,
110 buf
->bo
, buf
->offset
+ cb
->offset
, cb
->size
);
114 #endif /* NVE4_COMPUTE_H */