X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fr300%2Fr300_context.c;h=e1330a42a1d59b7034cc6ce67e6f27bc2cc05f3d;hb=f903da7335433ae243cf7ff59662be1a03ee9a14;hp=158dbc07c7f28c7d239bce1a328bc8c2ff1dabd0;hpb=96d882939d612fcc8332f107befec470ed4359de;p=mesa.git diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c index 158dbc07c7f..e1330a42a1d 100644 --- a/src/gallium/drivers/r300/r300_context.c +++ b/src/gallium/drivers/r300/r300_context.c @@ -80,7 +80,7 @@ static void r300_release_referenced_objects(struct r300_context *r300) } /* Manually-created vertex buffers. */ - pipe_resource_reference(&r300->dummy_vb, NULL); + pipe_resource_reference(&r300->dummy_vb.buffer, NULL); pipe_resource_reference(&r300->vbo, NULL); r300->context.delete_depth_stencil_alpha_state(&r300->context, @@ -100,8 +100,7 @@ static void r300_destroy_context(struct pipe_context* context) if (r300->draw) draw_destroy(r300->draw); - if (r300->vbuf_mgr) - u_vbuf_destroy(r300->vbuf_mgr); + u_upload_destroy(r300->uploader); /* XXX: This function assumes r300->query_list was initialized */ r300_release_referenced_objects(r300); @@ -408,6 +407,9 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, /* Disable converting points/lines to triangles. */ draw_wide_line_threshold(r300->draw, 10000000.f); draw_wide_point_threshold(r300->draw, 10000000.f); + draw_wide_point_sprites(r300->draw, FALSE); + draw_enable_line_stipple(r300->draw, TRUE); + draw_enable_point_sprites(r300->draw, FALSE); } if (!r300_setup_atoms(r300)) @@ -418,25 +420,19 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, r300_init_query_functions(r300); r300_init_state_functions(r300); r300_init_resource_functions(r300); - + r300_init_render_functions(r300); + r300_init_states(&r300->context); + r300->context.create_video_decoder = vl_create_decoder; r300->context.create_video_buffer = vl_video_buffer_create; - r300->vbuf_mgr = u_vbuf_create(&r300->context, 1024 * 1024, 16, - PIPE_BIND_VERTEX_BUFFER | - PIPE_BIND_INDEX_BUFFER, - U_VERTEX_FETCH_DWORD_ALIGNED); - if (!r300->vbuf_mgr) - goto fail; - r300->vbuf_mgr->caps.format_fixed32 = 0; + r300->uploader = u_upload_create(&r300->context, 256 * 1024, 4, + PIPE_BIND_INDEX_BUFFER); r300->blitter = util_blitter_create(&r300->context); if (r300->blitter == NULL) goto fail; - - /* Render functions must be initialized after blitter. */ - r300_init_render_functions(r300); - r300_init_states(&r300->context); + r300->blitter->draw_rectangle = r300_blitter_draw_rectangle; rws->cs_set_flush_callback(r300->cs, r300_flush_callback, r300); @@ -476,7 +472,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, vb.height0 = 1; vb.depth0 = 1; - r300->dummy_vb = screen->resource_create(screen, &vb); + r300->dummy_vb.buffer = screen->resource_create(screen, &vb); } {