summaryrefslogtreecommitdiff
path: root/src/gallium/include/pipe/p_screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/include/pipe/p_screen.h')
-rw-r--r--src/gallium/include/pipe/p_screen.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h
index 4421bee5b0f..9176bf2b586 100644
--- a/src/gallium/include/pipe/p_screen.h
+++ b/src/gallium/include/pipe/p_screen.h
@@ -58,9 +58,23 @@ struct pipe_surface;
struct pipe_transfer;
struct pipe_box;
struct pipe_memory_info;
+struct pipe_vertex_buffer;
+struct pipe_vertex_element;
+struct pipe_vertex_state;
struct disk_cache;
struct driOptionCache;
struct u_transfer_helper;
+struct pipe_screen;
+
+typedef struct pipe_vertex_state *
+ (*pipe_create_vertex_state_func)(struct pipe_screen *screen,
+ struct pipe_vertex_buffer *buffer,
+ const struct pipe_vertex_element *elements,
+ unsigned num_elements,
+ struct pipe_resource *indexbuf,
+ uint32_t full_velem_mask);
+typedef void (*pipe_vertex_state_destroy_func)(struct pipe_screen *screen,
+ struct pipe_vertex_state *);
/**
* Gallium screen/adapter context. Basically everything
@@ -604,6 +618,13 @@ struct pipe_screen {
unsigned int (*get_dmabuf_modifier_planes)(struct pipe_screen *screen,
uint64_t modifier,
enum pipe_format format);
+
+ /**
+ * Vertex state CSO functions for precomputing vertex and index buffer
+ * states for display lists.
+ */
+ pipe_create_vertex_state_func create_vertex_state;
+ pipe_vertex_state_destroy_func vertex_state_destroy;
};