Skip to content
This repository was archived by the owner on Feb 2, 2018. It is now read-only.

Compiler Interface

kusma edited this page Jul 6, 2012 · 8 revisions

The shader-compiler is located in a separate shared object, /usr/lib/libcgdrv.s

parially understood:

struct CgCtx {
	/* 80 bytes large */
	unsigned int unknown00;
	const char *error;       /* error string */
	const char *log;         /* compile log */
	size_t        unknown12; /* size of... something! The driver mallocs a buffer of this size right on return. */
	void         *unknown16; /* pointer (0x248 bytes) */
	unsigned int  unknown20; /* small int (1) */
	void         *unknown24; /* pointer (0x220 bytes) */
	unsigned int  unknown28; /* size of unknown6 */
	void         *unknown32; /* pointer */
	unsigned int  unknown36; /* NULL / 0x0*/
	unsigned int  unknown40; /* huge value (0x40a273d0) */
	unsigned int *unknown44; /* poiner to unknown40 */
	unsigned int  unknown48; /* NULL / 0x0 */
	unsigned int  unknown52; /* NULL / 0x0 */
	void         *unknown56; /* pointer to 0x80 bytes buffer */
	unsigned int  unknown60; /* small int (3 -- this happes to be the fd of /dev/nvmap... coincidence?) */
	unsigned int  unknown64; /* small int (0x40) */
	unsigned int  unknown68; /* NULL / 0x0 */
	unsigned int  unknown72; /* small int (1) */
	unsigned int  unknown76; /* NULL / 0x0 */
}

void *CgDrv_Create(void)
int CgDrv_Compile(void *ctx, int unknown1, int shader_type, const char *str, size_t str_len, int unknown2)

unknown:

CgDrv_CleanUp
CgDrv_Delete

Clone this wiki locally