[Mesa-dev] [PATCH 2/2] st/mesa: tell u_vbuf that GL core doesn't have user VBOs

Nicolai Hähnle nhaehnle at gmail.com
Mon Feb 13 15:41:48 UTC 2017


For the series:

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

On 11.02.2017 17:31, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at 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
>



More information about the mesa-dev mailing list