r300g/swtcl: move index buffer updates from swtcl_draw_vbo into set_index_buffer
This commit is contained in:
parent
21b012d3b0
commit
735d0d93a7
|
@ -879,16 +879,6 @@ static void r300_swtcl_draw_vbo(struct pipe_context* pipe,
|
|||
}
|
||||
}
|
||||
|
||||
if (indexed) {
|
||||
if (r300->index_buffer.user_buffer) {
|
||||
draw_set_mapped_index_buffer(r300->draw,
|
||||
r300->index_buffer.user_buffer);
|
||||
} else if (r300->index_buffer.buffer) {
|
||||
draw_set_mapped_index_buffer(r300->draw,
|
||||
r300_resource(r300->index_buffer.buffer)->malloced_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
r300->draw_vbo_locked = TRUE;
|
||||
r300->draw_first_emitted = FALSE;
|
||||
draw_vbo(r300->draw, info);
|
||||
|
|
|
@ -1614,7 +1614,7 @@ static void r300_set_vertex_buffers(struct pipe_context* pipe,
|
|||
}
|
||||
}
|
||||
|
||||
static void r300_set_index_buffer(struct pipe_context* pipe,
|
||||
static void r300_set_index_buffer_hwtcl(struct pipe_context* pipe,
|
||||
const struct pipe_index_buffer *ib)
|
||||
{
|
||||
struct r300_context* r300 = r300_context(pipe);
|
||||
|
@ -1625,9 +1625,23 @@ static void r300_set_index_buffer(struct pipe_context* pipe,
|
|||
} else {
|
||||
pipe_resource_reference(&r300->index_buffer.buffer, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void r300_set_index_buffer_swtcl(struct pipe_context* pipe,
|
||||
const struct pipe_index_buffer *ib)
|
||||
{
|
||||
struct r300_context* r300 = r300_context(pipe);
|
||||
|
||||
if (!r300->screen->caps.has_tcl) {
|
||||
draw_set_index_buffer(r300->draw, ib);
|
||||
|
||||
if (ib) {
|
||||
if (ib->user_buffer) {
|
||||
draw_set_mapped_index_buffer(r300->draw,
|
||||
ib->user_buffer);
|
||||
} else if (ib->buffer) {
|
||||
draw_set_mapped_index_buffer(r300->draw,
|
||||
r300_resource(ib->buffer)->malloced_buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1939,7 +1953,12 @@ void r300_init_state_functions(struct r300_context* r300)
|
|||
r300->context.set_viewport_state = r300_set_viewport_state;
|
||||
|
||||
r300->context.set_vertex_buffers = r300_set_vertex_buffers;
|
||||
r300->context.set_index_buffer = r300_set_index_buffer;
|
||||
|
||||
if (r300->screen->caps.has_tcl) {
|
||||
r300->context.set_index_buffer = r300_set_index_buffer_hwtcl;
|
||||
} else {
|
||||
r300->context.set_index_buffer = r300_set_index_buffer_swtcl;
|
||||
}
|
||||
|
||||
r300->context.create_vertex_elements_state = r300_create_vertex_elements_state;
|
||||
r300->context.bind_vertex_elements_state = r300_bind_vertex_elements_state;
|
||||
|
|
Loading…
Reference in New Issue