3#define BUFFER_BASE_PADDR 0x18000000
7 memset(info, 0,
sizeof(*info));
11int BufInfo_Add(C3D_BufInfo* info,
const void*
data, ptrdiff_t stride,
int attribCount, u64 permutation)
13 if (info->bufCount == 12)
return -1;
14 int id = info->bufCount++;
16 u32 pa = osConvertVirtToPhys(
data);
17 if (pa < info->base_paddr)
return -2;
19 C3D_BufCfg* buf = &info->buffers[id];
20 buf->offset = pa - info->base_paddr;
21 buf->flags[0] = permutation & 0xFFFFFFFF;
22 buf->flags[1] = (permutation >> 32) | (stride << 16) | (attribCount << 28);
45 memcpy(&ctx->
bufInfo, info,
sizeof(*info));
51 GPUCMD_AddWrite(GPUREG_ATTRIBBUFFERS_LOC, info->base_paddr >> 3);
52 GPUCMD_AddIncrementalWrites(GPUREG_ATTRIBBUFFER0_OFFSET, (u32*)info->buffers,
sizeof(info->buffers)/
sizeof(u32));
void C3D_SetBufInfo(C3D_BufInfo *info)
void C3Di_BufInfoBind(C3D_BufInfo *info)
void BufInfo_Init(C3D_BufInfo *info)
#define BUFFER_BASE_PADDR
int BufInfo_Add(C3D_BufInfo *info, const void *data, ptrdiff_t stride, int attribCount, u64 permutation)
C3D_BufInfo * C3D_GetBufInfo(void)