#include "radeon.h"
#include "r600_shader.h"
+struct u_upload_mgr;
+
#define R600_QUERY_STATE_STARTED (1 << 0)
#define R600_QUERY_STATE_ENDED (1 << 1)
#define R600_QUERY_STATE_SUSPENDED (1 << 2)
boolean flushed;
unsigned state;
/* The buffer where query results are stored. */
- struct radeon_bo *buffer;
+ struct radeon_ws_bo *buffer;
unsigned buffer_size;
/* linked list of queries */
struct list_head list;
};
#define R600_MAX_RSTATE 16
+#define R600_STATE_FLAG_DSA_FLUSH 1
struct r600_context_state {
union pipe_states state;
unsigned type;
struct radeon_state rstate[R600_MAX_RSTATE];
struct r600_shader shader;
- struct radeon_bo *bo;
+ struct radeon_ws_bo *bo;
unsigned nrstate;
+ unsigned flags;
};
struct r600_vertex_element
struct pipe_resource *index_buffer;
unsigned index_buffer_offset;
unsigned min_index, max_index;
+ unsigned index_bias;
};
struct r600_context_hw_states {
};
struct r600_context;
+struct r600_screen;
struct r600_resource;
+struct r600_resource_texture;
struct r600_context_hw_state_vtbl {
void (*blend)(struct r600_context *rctx,
struct r600_context {
struct pipe_context context;
+ struct blitter_context *blitter;
+ struct pipe_framebuffer_state *pframebuffer;
+ unsigned family;
+ void *custom_dsa_flush;
+ struct list_head query_list;
struct r600_screen *screen;
struct radeon *rw;
- struct radeon_ctx ctx;
- struct blitter_context *blitter;
+ struct radeon_ctx *ctx;
struct radeon_draw draw;
struct r600_context_hw_state_vtbl *vtbl;
struct radeon_state config;
struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];
struct pipe_index_buffer index_buffer;
struct pipe_blend_color blend_color;
- struct list_head query_list;
+
+ /* upload managers */
+ struct u_upload_mgr *upload_vb;
+ struct u_upload_mgr *upload_ib;
+ bool any_user_vbs;
};
/* Convenience cast wrapper. */
const struct tgsi_token *tokens);
extern int r600_pipe_shader_update(struct pipe_context *ctx,
struct r600_context_state *rstate);
+extern int r600_find_vs_semantic_index(struct r600_context *rctx, struct r600_shader *rshader, int id);
#define R600_ERR(fmt, args...) \
fprintf(stderr, "EE %s/%s:%d - "fmt, __FILE__, __func__, __LINE__, ##args)
uint shader, uint index,
struct pipe_resource *buffer);
+int r600_upload_index_buffer(struct r600_context *rctx,
+ struct r600_draw *draw);
+int r600_upload_user_buffers(struct r600_context *rctx);
+
#endif