[Mesa-dev] [Mesa-stable] [PATCH] i965: Add missing BRW_NEW_*_PROG_DATA to texture/renderbuffer atoms.

Chris Forbes chrisf at ijw.co.nz
Mon Dec 22 20:28:14 PST 2014


Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

On Tue, Dec 23, 2014 at 3:58 PM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> This was probably missed when moving from a fixed binding table layout
> to a dynamic one that changes based on the shader.
>
> Fixes newly proposed Piglit test fbo-mrt-new-bind.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87619
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> Cc: Mike Stroyan <mike at lunarg.com>
> Cc: "10.4 10.3" <mesa-stable at lists.freedesktop.org>
> ---
>  src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> index 7361c2f..85a08d5 100644
> --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> @@ -536,6 +536,7 @@ brw_update_null_renderbuffer_surface(struct brw_context *brw, unsigned int unit)
>     drm_intel_bo *bo = NULL;
>     unsigned pitch_minus_1 = 0;
>     uint32_t multisampling_state = 0;
> +   /* BRW_NEW_FS_PROG_DATA */
>     uint32_t surf_index =
>        brw->wm.prog_data->binding_table.render_target_start + unit;
>
> @@ -621,6 +622,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
>     uint32_t format = 0;
>     /* _NEW_BUFFERS */
>     mesa_format rb_format = _mesa_get_render_format(ctx, intel_rb_format(irb));
> +   /* BRW_NEW_FS_PROG_DATA */
>     uint32_t surf_index =
>        brw->wm.prog_data->binding_table.render_target_start + unit;
>
> @@ -737,7 +739,8 @@ const struct brw_tracked_state brw_renderbuffer_surfaces = {
>     .dirty = {
>        .mesa = _NEW_BUFFERS |
>                _NEW_COLOR,
> -      .brw = BRW_NEW_BATCH,
> +      .brw = BRW_NEW_BATCH |
> +             BRW_NEW_FS_PROG_DATA,
>     },
>     .emit = brw_update_renderbuffer_surfaces,
>  };
> @@ -763,6 +766,8 @@ update_stage_texture_surfaces(struct brw_context *brw,
>     struct gl_context *ctx = &brw->ctx;
>
>     uint32_t *surf_offset = stage_state->surf_offset;
> +
> +   /* BRW_NEW_*_PROG_DATA */
>     if (for_gather)
>        surf_offset += stage_state->prog_data->binding_table.gather_texture_start;
>     else
> @@ -824,9 +829,12 @@ const struct brw_tracked_state brw_texture_surfaces = {
>        .mesa = _NEW_TEXTURE,
>        .brw = BRW_NEW_BATCH |
>               BRW_NEW_FRAGMENT_PROGRAM |
> +             BRW_NEW_FS_PROG_DATA |
>               BRW_NEW_GEOMETRY_PROGRAM |
> +             BRW_NEW_GS_PROG_DATA |
>               BRW_NEW_TEXTURE_BUFFER |
> -             BRW_NEW_VERTEX_PROGRAM,
> +             BRW_NEW_VERTEX_PROGRAM |
> +             BRW_NEW_VS_PROG_DATA,
>     },
>     .emit = brw_update_texture_surfaces,
>  };
> --
> 2.2.1
>
> _______________________________________________
> mesa-stable mailing list
> mesa-stable at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-stable


More information about the mesa-dev mailing list