Vertex buffer
authorCafe <cafe@not.applicable>
Mon, 24 Jul 2017 00:00:00 +0000 (00:00 +0000)
committerCafe <cafe@not.applicable>
Mon, 24 Jul 2017 16:18:52 +0000 (16:18 +0000)
jobs.md

diff --git a/jobs.md b/jobs.md
index df840458e27b9f6cf89beca64410b73b014a693f..1b13dcf0a0c1d2d20bfa3e67a144e8152f8aac5d 100644 (file)
--- a/jobs.md
+++ b/jobs.md
@@ -40,14 +40,16 @@ known render sizes.
 Fragment jobs contain an external resource, the framebuffer (in shared
 memory / UMM). The framebuffer is in BGRA8888 format.
 
-Vertex and tiler jobs follow the same structure:
+Vertex and tiler jobs follow the same structure (pointers are 32-bit to
+GPU memory):
 
        struct tentative_vertex_tiler {
                uint32_t block1[11];
-               uint32_t addresses1[5];
-               tentative_shader *shaderMeta; /* 32-bit pointer */
+               uint32_t addresses1[4];
+               tentative_shader *shaderMeta;
+               vertex_buffer *vb;
                uint32_t addresses2[6];
-               uint32_t fbd;/* 32-bit pointer */
+               tentative_fbd *fbd;
                uint32_t addresses3[1];
                uint32_t block2[36];
        }
@@ -62,3 +64,11 @@ The shader metadata follows a (very indirect) structure:
 Shader points directly to the compiled instruction stream. For vertex
 jobs, this is the vertex shader. For tiler jobs, this is the fragment
 shader.
+
+The vertex buffer contains metadata about the vertices:
+
+       struct vertex_buffer {
+               float *vertices;
+               size_t vertex_size; /* sizeof(*vertices) * components */
+               size_t buffer_size; /* vertex_size * num_vertices */
+       }