#include "util/slab.h"
struct pipe_screen;
-struct etna_shader;
+struct etna_shader_variant;
struct etna_index_buffer {
struct pipe_index_buffer ib;
uint32_t enabled_mask;
};
+struct etna_shader_state {
+ void *bind_vs, *bind_fs;
+ struct etna_shader_variant *vs, *fs;
+};
+
enum etna_immediate_contents {
ETNA_IMMEDIATE_UNUSED = 0,
ETNA_IMMEDIATE_CONSTANT,
struct pipe_constant_buffer constant_buffer[PIPE_SHADER_TYPES];
struct etna_vertexbuf_state vertex_buffer;
struct etna_index_buffer index_buffer;
-
- /* pointers to the bound state. these are mainly kept around for the blitter */
- struct etna_shader *vs;
- struct etna_shader *fs;
+ struct etna_shader_state shader;
/* saved parameter-like state. these are mainly kept around for the blitter */
struct pipe_framebuffer_state framebuffer_s;
uint64_t prims_emitted;
uint64_t draw_calls;
} stats;
+
+ struct pipe_debug_callback debug;
};
static inline struct etna_context *