[Mesa-dev] [PATCH] i965: Make Gen4-5 push constants call _mesa_load_state_parameters too.

Mark Janes mark.a.janes at intel.com
Fri Nov 21 11:57:34 PST 2014


In my tests, this fixes piglit on gen4/5.

-Mark

Kenneth Graunke <kenneth at whitecape.org> writes:

> In commit 5e37a2a4a8a, I made the pull constant code stop calling
> _mesa_load_state_parameters() when there were no pull parameters.
>
> This worked fine on Gen6+ because the push constant code also called
> it if there were any push constants.  However, the Gen4-5 push constant
> code wasn't doing this.  This patch makes it do so, like the Gen6+ code.
>
> A better long term solution would be to make core Mesa just handle this
> for us when necessary.
>
> Fixes around 8766 Piglit tests on Ironlake, and probably Gen4 as well.
>
> Reported-by: Mark Janes <mark.a.janes at intel.com>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_curbe.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_curbe.c b/src/mesa/drivers/dri/i965/brw_curbe.c
> index 1a828ed..fea5d332 100644
> --- a/src/mesa/drivers/dri/i965/brw_curbe.c
> +++ b/src/mesa/drivers/dri/i965/brw_curbe.c
> @@ -211,6 +211,8 @@ brw_upload_constant_buffer(struct brw_context *brw)
>  
>     /* fragment shader constants */
>     if (brw->curbe.wm_size) {
> +      _mesa_load_state_parameters(ctx, brw->fragment_program->Base.Parameters);
> +
>        /* BRW_NEW_CURBE_OFFSETS */
>        GLuint offset = brw->curbe.wm_start * 16;
>  
> @@ -251,6 +253,8 @@ brw_upload_constant_buffer(struct brw_context *brw)
>  
>     /* vertex shader constants */
>     if (brw->curbe.vs_size) {
> +      _mesa_load_state_parameters(ctx, brw->vertex_program->Base.Parameters);
> +
>        GLuint offset = brw->curbe.vs_start * 16;
>  
>        /* CACHE_NEW_VS_PROG | _NEW_PROGRAM_CONSTANTS: copy uniform values */
> -- 
> 2.1.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list