[Mesa-dev] [PATCH 7/7] i965: Stop using wm_prog_data->binding_table.render_target_start.
Pohjolainen, Topi
topi.pohjolainen at gmail.com
Wed Aug 23 07:22:57 UTC 2017
Just for future reference, we are addessing common code in src/intel/compiler.
Do we still want to use i965 prefix?
On Tue, Aug 22, 2017 at 01:58:01PM -0700, Kenneth Graunke wrote:
> Render target surfaces always start at binding table index 0.
> This is required for us to use headerless FB writes, which we
> really want to do. So, we'll never change that.
>
> Given that, it's not necessary to look up a wm_prog_data field
> which we already know contains 0. We can drop the dependency in
> brw_renderbuffer_surfaces (Gen4-5)...which was already confusingly
> missing from gen6_renderbuffer_surfaces.
> ---
> src/intel/compiler/brw_fs_generator.cpp | 9 +++++++--
> src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 10 +++-------
> 2 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp
> index 2ade486705b..c101c4696ef 100644
> --- a/src/intel/compiler/brw_fs_generator.cpp
> +++ b/src/intel/compiler/brw_fs_generator.cpp
> @@ -277,8 +277,13 @@ fs_generator::fire_fb_write(fs_inst *inst,
> else
> msg_control = BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01;
>
> - uint32_t surf_index =
> - prog_data->binding_table.render_target_start + inst->target;
> + /* We assume render targets start at 0, because headerless FB write
> + * messages set "Render Target Index" to 0. Using a different binding
> + * table index would make it impossible to use headerless messages.
> + */
> + assert(prog_data->binding_table.render_target_start == 0);
> +
> + uint32_t surf_index = inst->target;
Could be const.
There was similar nit in another patch, either way, really nice clean-up and
series:
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
>
> bool last_render_target = inst->eot ||
> (prog_data->dual_src_blend && dispatch_width == 16);
> 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 5cfdbe58102..8c901df8e97 100644
> --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> @@ -990,14 +990,11 @@ update_renderbuffer_surfaces(struct brw_context *brw)
> {
> const struct gl_context *ctx = &brw->ctx;
>
> - /* BRW_NEW_FS_PROG_DATA */
> - const struct brw_wm_prog_data *wm_prog_data =
> - brw_wm_prog_data(brw->wm.base.prog_data);
> -
> /* _NEW_BUFFERS | _NEW_COLOR */
> const struct gl_framebuffer *fb = ctx->DrawBuffer;
>
> - const unsigned rt_start = wm_prog_data->binding_table.render_target_start;
> + /* Render targets always start at binding table index 0. */
> + const unsigned rt_start = 0;
>
> uint32_t *surf_offsets = brw->wm.base.surf_offset;
>
> @@ -1025,8 +1022,7 @@ const struct brw_tracked_state brw_renderbuffer_surfaces = {
> .dirty = {
> .mesa = _NEW_BUFFERS |
> _NEW_COLOR,
> - .brw = BRW_NEW_BATCH |
> - BRW_NEW_FS_PROG_DATA,
> + .brw = BRW_NEW_BATCH,
> },
> .emit = update_renderbuffer_surfaces,
> };
> --
> 2.14.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list