#include "translate/translate.h"
#include "translate/translate_cache.h"
-struct u_vbuf_mgr_elements {
+struct u_vbuf_elements {
unsigned count;
struct pipe_vertex_element ve[PIPE_MAX_ATTRIBS];
boolean incompatible_layout;
};
-struct u_vbuf_mgr_priv {
+struct u_vbuf_priv {
struct u_vbuf_mgr b;
struct pipe_context *pipe;
struct translate_cache *translate_cache;
unsigned translate_vb_slot;
- struct u_vbuf_mgr_elements *ve;
+ struct u_vbuf_elements *ve;
void *saved_ve, *fallback_ve;
boolean ve_binding_lock;
boolean incompatible_vb_layout;
};
-static void u_vbuf_mgr_init_format_caps(struct u_vbuf_mgr_priv *mgr)
+static void u_vbuf_init_format_caps(struct u_vbuf_priv *mgr)
{
struct pipe_screen *screen = mgr->pipe->screen;
}
struct u_vbuf_mgr *
-u_vbuf_mgr_create(struct pipe_context *pipe,
- unsigned upload_buffer_size,
- unsigned upload_buffer_alignment,
- unsigned upload_buffer_bind,
- enum u_fetch_alignment fetch_alignment)
+u_vbuf_create(struct pipe_context *pipe,
+ unsigned upload_buffer_size,
+ unsigned upload_buffer_alignment,
+ unsigned upload_buffer_bind,
+ enum u_fetch_alignment fetch_alignment)
{
- struct u_vbuf_mgr_priv *mgr = CALLOC_STRUCT(u_vbuf_mgr_priv);
+ struct u_vbuf_priv *mgr = CALLOC_STRUCT(u_vbuf_priv);
mgr->pipe = pipe;
mgr->translate_cache = translate_cache_create();
mgr->b.caps.fetch_dword_unaligned =
fetch_alignment == U_VERTEX_FETCH_BYTE_ALIGNED;
- u_vbuf_mgr_init_format_caps(mgr);
+ u_vbuf_init_format_caps(mgr);
return &mgr->b;
}
-void u_vbuf_mgr_destroy(struct u_vbuf_mgr *mgrb)
+void u_vbuf_destroy(struct u_vbuf_mgr *mgrb)
{
- struct u_vbuf_mgr_priv *mgr = (struct u_vbuf_mgr_priv*)mgrb;
+ struct u_vbuf_priv *mgr = (struct u_vbuf_priv*)mgrb;
unsigned i;
for (i = 0; i < mgr->b.nr_vertex_buffers; i++) {
static enum u_vbuf_return_flags
-u_vbuf_translate_begin(struct u_vbuf_mgr_priv *mgr,
+u_vbuf_translate_begin(struct u_vbuf_priv *mgr,
int min_index, int max_index)
{
struct translate_key key;
return upload_flushed ? U_VBUF_UPLOAD_FLUSHED : 0;
}
-static void u_vbuf_translate_end(struct u_vbuf_mgr_priv *mgr)
+static void u_vbuf_translate_end(struct u_vbuf_priv *mgr)
{
if (mgr->fallback_ve == NULL) {
return;
#define FORMAT_REPLACE(what, withwhat) \
case PIPE_FORMAT_##what: format = PIPE_FORMAT_##withwhat; break
-struct u_vbuf_mgr_elements *
-u_vbuf_mgr_create_vertex_elements(struct u_vbuf_mgr *mgrb,
- unsigned count,
- const struct pipe_vertex_element *attribs,
- struct pipe_vertex_element *native_attribs)
+struct u_vbuf_elements *
+u_vbuf_create_vertex_elements(struct u_vbuf_mgr *mgrb,
+ unsigned count,
+ const struct pipe_vertex_element *attribs,
+ struct pipe_vertex_element *native_attribs)
{
- struct u_vbuf_mgr_priv *mgr = (struct u_vbuf_mgr_priv*)mgrb;
+ struct u_vbuf_priv *mgr = (struct u_vbuf_priv*)mgrb;
unsigned i;
- struct u_vbuf_mgr_elements *ve = CALLOC_STRUCT(u_vbuf_mgr_elements);
+ struct u_vbuf_elements *ve = CALLOC_STRUCT(u_vbuf_elements);
ve->count = count;
return ve;
}
-void u_vbuf_mgr_bind_vertex_elements(struct u_vbuf_mgr *mgrb,
- void *cso,
- struct u_vbuf_mgr_elements *ve)
+void u_vbuf_bind_vertex_elements(struct u_vbuf_mgr *mgrb,
+ void *cso,
+ struct u_vbuf_elements *ve)
{
- struct u_vbuf_mgr_priv *mgr = (struct u_vbuf_mgr_priv*)mgrb;
+ struct u_vbuf_priv *mgr = (struct u_vbuf_priv*)mgrb;
if (!cso) {
return;
}
}
-void u_vbuf_mgr_destroy_vertex_elements(struct u_vbuf_mgr *mgr,
- struct u_vbuf_mgr_elements *ve)
+void u_vbuf_destroy_vertex_elements(struct u_vbuf_mgr *mgr,
+ struct u_vbuf_elements *ve)
{
FREE(ve);
}
-void u_vbuf_mgr_set_vertex_buffers(struct u_vbuf_mgr *mgrb,
- unsigned count,
- const struct pipe_vertex_buffer *bufs)
+void u_vbuf_set_vertex_buffers(struct u_vbuf_mgr *mgrb,
+ unsigned count,
+ const struct pipe_vertex_buffer *bufs)
{
- struct u_vbuf_mgr_priv *mgr = (struct u_vbuf_mgr_priv*)mgrb;
+ struct u_vbuf_priv *mgr = (struct u_vbuf_priv*)mgrb;
unsigned i;
mgr->any_user_vbs = FALSE;
}
static enum u_vbuf_return_flags
-u_vbuf_upload_buffers(struct u_vbuf_mgr_priv *mgr,
+u_vbuf_upload_buffers(struct u_vbuf_priv *mgr,
int min_index, int max_index,
unsigned instance_count)
{
return retval;
}
-static void u_vbuf_mgr_compute_max_index(struct u_vbuf_mgr_priv *mgr)
+static void u_vbuf_compute_max_index(struct u_vbuf_priv *mgr)
{
unsigned i, nr = mgr->ve->count;
}
enum u_vbuf_return_flags
-u_vbuf_mgr_draw_begin(struct u_vbuf_mgr *mgrb,
- const struct pipe_draw_info *info)
+u_vbuf_draw_begin(struct u_vbuf_mgr *mgrb,
+ const struct pipe_draw_info *info)
{
- struct u_vbuf_mgr_priv *mgr = (struct u_vbuf_mgr_priv*)mgrb;
+ struct u_vbuf_priv *mgr = (struct u_vbuf_priv*)mgrb;
int min_index, max_index;
enum u_vbuf_return_flags retval = 0;
- u_vbuf_mgr_compute_max_index(mgr);
+ u_vbuf_compute_max_index(mgr);
min_index = info->min_index - info->index_bias;
if (info->max_index == ~0) {
return retval;
}
-void u_vbuf_mgr_draw_end(struct u_vbuf_mgr *mgrb)
+void u_vbuf_draw_end(struct u_vbuf_mgr *mgrb)
{
- struct u_vbuf_mgr_priv *mgr = (struct u_vbuf_mgr_priv*)mgrb;
+ struct u_vbuf_priv *mgr = (struct u_vbuf_priv*)mgrb;
if (mgr->fallback_ve) {
u_vbuf_translate_end(mgr);
};
/* Opaque type containing information about vertex elements for the manager. */
-struct u_vbuf_mgr_elements;
+struct u_vbuf_elements;
enum u_fetch_alignment {
U_VERTEX_FETCH_BYTE_ALIGNED,
struct u_vbuf_mgr *
-u_vbuf_mgr_create(struct pipe_context *pipe,
- unsigned upload_buffer_size,
- unsigned upload_buffer_alignment,
- unsigned upload_buffer_bind,
- enum u_fetch_alignment fetch_alignment);
+u_vbuf_create(struct pipe_context *pipe,
+ unsigned upload_buffer_size,
+ unsigned upload_buffer_alignment,
+ unsigned upload_buffer_bind,
+ enum u_fetch_alignment fetch_alignment);
-void u_vbuf_mgr_destroy(struct u_vbuf_mgr *mgr);
+void u_vbuf_destroy(struct u_vbuf_mgr *mgr);
-struct u_vbuf_mgr_elements *
-u_vbuf_mgr_create_vertex_elements(struct u_vbuf_mgr *mgr,
- unsigned count,
- const struct pipe_vertex_element *attrs,
- struct pipe_vertex_element *native_attrs);
+struct u_vbuf_elements *
+u_vbuf_create_vertex_elements(struct u_vbuf_mgr *mgr,
+ unsigned count,
+ const struct pipe_vertex_element *attrs,
+ struct pipe_vertex_element *native_attrs);
-void u_vbuf_mgr_bind_vertex_elements(struct u_vbuf_mgr *mgr,
- void *cso,
- struct u_vbuf_mgr_elements *ve);
+void u_vbuf_bind_vertex_elements(struct u_vbuf_mgr *mgr,
+ void *cso,
+ struct u_vbuf_elements *ve);
-void u_vbuf_mgr_destroy_vertex_elements(struct u_vbuf_mgr *mgr,
- struct u_vbuf_mgr_elements *ve);
+void u_vbuf_destroy_vertex_elements(struct u_vbuf_mgr *mgr,
+ struct u_vbuf_elements *ve);
-void u_vbuf_mgr_set_vertex_buffers(struct u_vbuf_mgr *mgr,
- unsigned count,
- const struct pipe_vertex_buffer *bufs);
+void u_vbuf_set_vertex_buffers(struct u_vbuf_mgr *mgr,
+ unsigned count,
+ const struct pipe_vertex_buffer *bufs);
-enum u_vbuf_return_flags
-u_vbuf_mgr_draw_begin(struct u_vbuf_mgr *mgr,
- const struct pipe_draw_info *info);
+enum u_vbuf_return_flags u_vbuf_draw_begin(struct u_vbuf_mgr *mgr,
+ const struct pipe_draw_info *info);
-void u_vbuf_mgr_draw_end(struct u_vbuf_mgr *mgr);
+void u_vbuf_draw_end(struct u_vbuf_mgr *mgr);
static INLINE struct u_vbuf_resource *u_vbuf_resource(struct pipe_resource *r)
draw_destroy(r300->draw);
if (r300->vbuf_mgr)
- u_vbuf_mgr_destroy(r300->vbuf_mgr);
+ u_vbuf_destroy(r300->vbuf_mgr);
/* XXX: This function assumes r300->query_list was initialized */
r300_release_referenced_objects(r300);
r300->context.create_video_decoder = vl_create_decoder;
r300->context.create_video_buffer = vl_video_buffer_create;
- r300->vbuf_mgr = u_vbuf_mgr_create(&r300->context, 1024 * 1024, 16,
+ r300->vbuf_mgr = u_vbuf_create(&r300->context, 1024 * 1024, 16,
PIPE_BIND_VERTEX_BUFFER |
PIPE_BIND_INDEX_BUFFER,
U_VERTEX_FETCH_DWORD_ALIGNED);
struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS];
unsigned format_size[PIPE_MAX_ATTRIBS];
- struct u_vbuf_mgr_elements *vmgr_elements;
+ struct u_vbuf_elements *vmgr_elements;
/* The size of the vertex, in dwords. */
unsigned vertex_size_dwords;
r300_update_derived_state(r300);
/* Start the vbuf manager and update buffers if needed. */
- if (u_vbuf_mgr_draw_begin(r300->vbuf_mgr, &info) & U_VBUF_BUFFERS_UPDATED) {
+ if (u_vbuf_draw_begin(r300->vbuf_mgr, &info) & U_VBUF_BUFFERS_UPDATED) {
r300->vertex_arrays_dirty = TRUE;
}
}
}
- u_vbuf_mgr_draw_end(r300->vbuf_mgr);
+ u_vbuf_draw_end(r300->vbuf_mgr);
}
/****************************************************************************
count = 1;
}
- u_vbuf_mgr_set_vertex_buffers(r300->vbuf_mgr, count, buffers);
+ u_vbuf_set_vertex_buffers(r300->vbuf_mgr, count, buffers);
if (r300->screen->caps.has_tcl) {
/* HW TCL. */
velems->count = count;
velems->vmgr_elements =
- u_vbuf_mgr_create_vertex_elements(r300->vbuf_mgr, count, attribs,
+ u_vbuf_create_vertex_elements(r300->vbuf_mgr, count, attribs,
velems->velem);
if (r300_screen(pipe->screen)->caps.has_tcl) {
r300->velems = velems;
- u_vbuf_mgr_bind_vertex_elements(r300->vbuf_mgr, state, velems->vmgr_elements);
+ u_vbuf_bind_vertex_elements(r300->vbuf_mgr, state, velems->vmgr_elements);
if (r300->draw) {
draw_set_vertex_elements(r300->draw, velems->count, velems->velem);
struct r300_context *r300 = r300_context(pipe);
struct r300_vertex_element_state *velems = state;
- u_vbuf_mgr_destroy_vertex_elements(r300->vbuf_mgr, velems->vmgr_elements);
+ u_vbuf_destroy_vertex_elements(r300->vbuf_mgr, velems->vmgr_elements);
FREE(state);
}
free(rctx->states[i]);
}
- u_vbuf_mgr_destroy(rctx->vbuf_mgr);
+ u_vbuf_destroy(rctx->vbuf_mgr);
util_slab_destroy(&rctx->pool_transfers);
if (rctx->fences.bo) {
sizeof(struct pipe_transfer), 64,
UTIL_SLAB_SINGLETHREADED);
- rctx->vbuf_mgr = u_vbuf_mgr_create(&rctx->context, 1024 * 1024, 256,
+ rctx->vbuf_mgr = u_vbuf_create(&rctx->context, 1024 * 1024, 256,
PIPE_BIND_VERTEX_BUFFER |
PIPE_BIND_INDEX_BUFFER |
PIPE_BIND_CONSTANT_BUFFER,
{
unsigned count;
struct pipe_vertex_element elements[PIPE_MAX_ATTRIBS];
- struct u_vbuf_mgr_elements *vmgr_elements;
+ struct u_vbuf_elements *vmgr_elements;
struct r600_bo *fetch_shader;
unsigned fs_size;
struct r600_pipe_state rstate;
rctx->vertex_elements = v;
if (v) {
- u_vbuf_mgr_bind_vertex_elements(rctx->vbuf_mgr, state,
+ u_vbuf_bind_vertex_elements(rctx->vbuf_mgr, state,
v->vmgr_elements);
rctx->states[v->rstate.id] = &v->rstate;
rctx->vertex_elements = NULL;
r600_bo_reference(&v->fetch_shader, NULL);
- u_vbuf_mgr_destroy_vertex_elements(rctx->vbuf_mgr, v->vmgr_elements);
+ u_vbuf_destroy_vertex_elements(rctx->vbuf_mgr, v->vmgr_elements);
FREE(state);
}
}
}
- u_vbuf_mgr_set_vertex_buffers(rctx->vbuf_mgr, count, buffers);
+ u_vbuf_set_vertex_buffers(rctx->vbuf_mgr, count, buffers);
}
void *r600_create_vertex_elements(struct pipe_context *ctx,
v->count = count;
v->vmgr_elements =
- u_vbuf_mgr_create_vertex_elements(rctx->vbuf_mgr, count,
+ u_vbuf_create_vertex_elements(rctx->vbuf_mgr, count,
elements, v->elements);
if (r600_vertex_elements_build_fetch_shader(rctx, v)) {
if (rctx->chip_class < EVERGREEN)
r600_update_sampler_states(rctx);
- u_vbuf_mgr_draw_begin(rctx->vbuf_mgr, info);
+ u_vbuf_draw_begin(rctx->vbuf_mgr, info);
r600_vertex_buffer_update(rctx);
draw.info = *info;
pipe_resource_reference(&draw.index_buffer, NULL);
- u_vbuf_mgr_draw_end(rctx->vbuf_mgr);
+ u_vbuf_draw_end(rctx->vbuf_mgr);
}
void _r600_pipe_state_add_reg(struct r600_context *ctx,