struct pipe_transfer base;
struct pipe_resource *rsc;
void *staging;
+ void *mapped;
};
struct etna_vertexbuf_state {
enum etna_immediate_contents {
ETNA_IMMEDIATE_UNUSED = 0,
ETNA_IMMEDIATE_CONSTANT,
+ ETNA_IMMEDIATE_UNIFORM,
ETNA_IMMEDIATE_TEXRECT_SCALE_X,
ETNA_IMMEDIATE_TEXRECT_SCALE_Y,
+ ETNA_IMMEDIATE_UBO0_ADDR,
+ ETNA_IMMEDIATE_UBOMAX_ADDR = ETNA_IMMEDIATE_UBO0_ADDR + 255,
};
struct etna_shader_uniform_info {
enum etna_immediate_contents *imm_contents;
uint32_t *imm_data;
uint32_t imm_count;
- uint32_t const_count;
};
struct etna_context {
uint32_t prim_hwsupport;
struct primconvert_context *primconvert;
- /* list of resources used by currently-unsubmitted renders */
- struct list_head used_resources;
-
struct slab_child_pool transfer_pool;
struct blitter_context *blitter;
struct pipe_viewport_state viewport_s;
struct pipe_scissor_state scissor_s;
- /* cached state of entire GPU */
- struct etna_3d_state gpu3d;
-
/* stats/counters */
struct {
uint64_t prims_emitted;
struct etna_bo *dummy_rt;
struct etna_reloc dummy_rt_reloc;
+
+ /* set of resources used by currently-unsubmitted renders */
+ struct set *used_resources_read;
+ struct set *used_resources_write;
};
static inline struct etna_context *