Sketching on cmd generation

This commit is contained in:
plutooo 2018-03-25 18:45:24 +02:00
parent cccc865128
commit 66e3810ef8

View File

@ -14,3 +14,20 @@ iova_t nvCmdListGetGpuAddr(NvCmdList* c);
u64 nvCmdListGetListSize(NvCmdList* c);
u32* nvCmdListInsert(NvCmdList* c, size_t num_cmds);
#define NvCmd(cmd_list, ...) do { \
u32 _[] = { __VA_ARGS__ }; \
memcpy(nvCmdListInsert(cmd_list, sizeof(_)/4), _, sizeof(_)); \
} while (0)
#define NvImm(reg, subc, val) \
(0x80000000 | (reg) | ((subc) << 13) | ((val) << 16))
#define NvRep(reg, subc, ...) \
(0x60000000 | ((reg) | ((subc) << 13) | ((sizeof((u32[]) { __VA_ARGS__ })) << 16))), __VA_ARGS__
#define NvIncr(reg, subc, ...) \
(0x20000000 | ((reg) | ((subc) << 13) | ((sizeof((u32[]) { __VA_ARGS__ })) << 16))), __VA_ARGS__
#define NvIncrOnce(reg, subc, ...) \
(0xA0000000 | ((reg) | ((subc) << 13) | ((sizeof((u32[]) { __VA_ARGS__ })) << 16))), __VA_ARGS__