For the series: Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>
On 11.02.2017 17:31, Marek Olšák wrote:
From: Marek Olšák <marek.ol...@amd.com> I think this only affects radeonsi - VI, because all other drivers using u_vbuf probably don't support GL_DOUBLE, so they won't be affected by this. --- src/mesa/state_tracker/st_context.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 1229340..e0d4312 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -69,20 +69,21 @@ #include "st_extensions.h" #include "st_gen_mipmap.h" #include "st_pbo.h" #include "st_program.h" #include "st_sampler_view.h" #include "st_vdpau.h" #include "st_texture.h" #include "pipe/p_context.h" #include "util/u_inlines.h" #include "util/u_upload_mgr.h" +#include "util/u_vbuf.h" #include "cso_cache/cso_context.h" DEBUG_GET_ONCE_BOOL_OPTION(mesa_mvp_dp4, "MESA_MVP_DP4", FALSE) /** * Called via ctx->Driver.Enable() */ static void st_Enable(struct gl_context * ctx, GLenum cap, GLboolean state) @@ -355,21 +356,27 @@ st_create_context_priv( struct gl_context *ctx, struct pipe_context *pipe, st->indexbuf_uploader = u_upload_create(pipe, 128 * 1024, PIPE_BIND_INDEX_BUFFER, PIPE_USAGE_STREAM); } if (!screen->get_param(screen, PIPE_CAP_USER_CONSTANT_BUFFERS)) st->constbuf_uploader = u_upload_create(pipe, 128 * 1024, PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM); - st->cso_context = cso_create_context(pipe, 0); + /* Drivers still have to upload zero-stride vertex attribs manually + * with the GL core profile, but they don't have to deal with any complex + * user vertex buffer uploads. + */ + unsigned vbuf_flags = + ctx->API == API_OPENGL_CORE ? U_VBUF_FLAG_NO_USER_VBOS : 0; + st->cso_context = cso_create_context(pipe, vbuf_flags); st_init_atoms( st ); st_init_clear(st); st_init_draw( st ); st_init_pbo_helpers(st); /* Choose texture target for glDrawPixels, glBitmap, renderbuffers */ if (pipe->screen->get_param(pipe->screen, PIPE_CAP_NPOT_TEXTURES)) st->internal_target = PIPE_TEXTURE_2D; else
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev