diff options
author | Michal Krol <[email protected]> | 2009-12-23 19:37:18 +0100 |
---|---|---|
committer | Michal Krol <[email protected]> | 2009-12-23 19:37:18 +0100 |
commit | d0b55120beb4848be5e7ef24f0301f8397baa8be (patch) | |
tree | 5cacf122776bc77678f3ee8a78d121bd3cca709e /src/gallium | |
parent | b5a408bae518ededbb871d113dab89f3e15bfb45 (diff) |
gallium: Add interfaces needed for instanced drawing.
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/include/pipe/p_context.h | 16 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_shader_tokens.h | 3 | ||||
-rw-r--r-- | src/gallium/include/pipe/p_state.h | 1 |
3 files changed, 19 insertions, 1 deletions
diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h index 11bcdc0a24c..d5d1e0e76bc 100644 --- a/src/gallium/include/pipe/p_context.h +++ b/src/gallium/include/pipe/p_context.h @@ -69,6 +69,22 @@ struct pipe_context { unsigned indexSize, unsigned mode, unsigned start, unsigned count); + boolean (*draw_arrays_instanced)(struct pipe_context *pipe, + unsigned mode, + unsigned start, + unsigned count, + unsigned startInstance, + unsigned instanceCount); + + boolean (*draw_elements_instanced)(struct pipe_context *pipe, + struct pipe_buffer *indexBuffer, + unsigned indexSize, + unsigned mode, + unsigned start, + unsigned count, + unsigned startInstance, + unsigned instanceCount); + /* XXX: this is (probably) a temporary entrypoint, as the range * information should be available from the vertex_buffer state. * Using this to quickly evaluate a specialized path in the draw diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h index 5da85bbbc24..d79124828f9 100644 --- a/src/gallium/include/pipe/p_shader_tokens.h +++ b/src/gallium/include/pipe/p_shader_tokens.h @@ -130,7 +130,8 @@ struct tgsi_declaration_range #define TGSI_SEMANTIC_NORMAL 6 #define TGSI_SEMANTIC_FACE 7 #define TGSI_SEMANTIC_EDGEFLAG 8 -#define TGSI_SEMANTIC_COUNT 9 /**< number of semantic values */ +#define TGSI_SEMANTIC_INSTANCEID 9 +#define TGSI_SEMANTIC_COUNT 10 /**< number of semantic values */ struct tgsi_declaration_semantic { diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index 60e96b98deb..4d38bbcc326 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -364,6 +364,7 @@ struct pipe_vertex_buffer unsigned stride; /**< stride to same attrib in next vertex, in bytes */ unsigned max_index; /**< number of vertices in this buffer */ unsigned buffer_offset; /**< offset to start of data in buffer, in bytes */ + unsigned instance_divisor; /**< instance data rate divisor, 0 means per-vertex data */ struct pipe_buffer *buffer; /**< the actual buffer */ }; |