Cafe 332b0b16f4 Decode one uniform as a half-float vec4 6 years ago
..
README.md 68013adccf Collect code 6 years ago
build.sh 55356859c3 -lm for panwrap 6 years ago
chai-notes.h 11d8de016f Rearrange for panwrap 6 years ago
jobs.h ea1df47fde Build with panwrap headers 6 years ago
kernel.sh d508a93567 Check-in kernel module build script 6 years ago
memory.c 37201ce0ca Syncs are not necessary in this case. 6 years ago
memory.h 37201ce0ca Syncs are not necessary in this case. 6 years ago
prototype.c 37201ce0ca Syncs are not necessary in this case. 6 years ago
shim.c ea1df47fde Build with panwrap headers 6 years ago
shim.h ea1df47fde Build with panwrap headers 6 years ago
synthesise.c 140c41c8a7 Remove syncs 6 years ago
synthesise.h 140c41c8a7 Remove syncs 6 years ago
trace.c 332b0b16f4 Decode one uniform as a half-float vec4 6 years ago

README.md

Chai code

This folder contains (most of the) code developed for chai.

  • re.c: Prototype sample to drive the GPU. Links with shim, synthesise, memory, etc.
  • synthesise.c: Core of the prototype driver. Generates GPU memory data structures for job submission, uploading shaders, vertices, etc.
  • shim.c: Interface with the kernel. Primarily generates ioctls. If the kernel ABI changes, only shim.c changes.
  • memory.c: Memory management stub. Allocates a chunk of memory through shim.c and implements a simple waterfall allocator. In the future, a proper allocator will be used instead.
  • ktrace.c: GPU tracer. Optionally linked with the kernel to debug chai and trace the blob.
  • chai-notes.h: Assortment of data structures, constants, and macros for interfacing with the GPU. Some parts were found in the kernel code dump. Others are the product of reverse-engineering. Some are a mix of the two.
  • jobs.h: Data structure from kernelspace needed in userland.
  • black-output-trace.c: Autogenerated file needed by ktrace. Run black to generate this.