[Mesa-dev] [PATCH 9.1 1/2] i965/vs: Fix Gen4/5 VUE map inconsistency with gl_ClipVertex

Jordan Justen jljusten at gmail.com
Fri Apr 26 22:15:01 PDT 2013


Chris,

Similar to my attempt to backport 0967c362, I'm seeing issues with the
steam client on gm45 with this. Does steam look okay for you on your
9.1 patches with ILK?

-Jordan

On Fri, Apr 26, 2013 at 6:20 PM, Chris Forbes <chrisf at ijw.co.nz> wrote:
> This is roughly a backport of Paul's commit 0967c362.
>
> We avoided assigning a slot in the VUE map for gl_ClipVertex, but left
> the bit set in outputs_written, producing horrible confusion further
> down the pipe.
>
> Mostly fixes rendering in source games, and probably in Freespace 2 SCP.
>
> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
> ---
>  src/mesa/drivers/dri/i965/brw_vs.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
> index 0810471..bd1ace2 100644
> --- a/src/mesa/drivers/dri/i965/brw_vs.c
> +++ b/src/mesa/drivers/dri/i965/brw_vs.c
> @@ -62,9 +62,13 @@ brw_compute_vue_map(struct brw_context *brw, struct brw_vs_compile *c)
>  {
>     const struct intel_context *intel = &brw->intel;
>     struct brw_vue_map *vue_map = &c->prog_data.vue_map;
> -   GLbitfield64 outputs_written = c->prog_data.outputs_written;
> +   GLbitfield64 outputs_written;
>     int i;
>
> +   if (intel->gen < 6)
> +      c->prog_data.outputs_written &= ~VERT_RESULT_CLIP_VERTEX;
> +   outputs_written = c->prog_data.outputs_written;
> +
>     vue_map->num_slots = 0;
>     for (i = 0; i < BRW_VERT_RESULT_MAX; ++i) {
>        vue_map->vert_result_to_slot[i] = -1;
> @@ -150,8 +154,6 @@ brw_compute_vue_map(struct brw_context *brw, struct brw_vs_compile *c)
>      * feedback is enabled or disabled, just go ahead and assign a slot for it.
>      */
>     for (int i = 0; i < VERT_RESULT_MAX; ++i) {
> -      if (intel->gen < 6 && i == VERT_RESULT_CLIP_VERTEX)
> -         continue;
>        if ((outputs_written & BITFIELD64_BIT(i)) &&
>            vue_map->vert_result_to_slot[i] == -1) {
>           assign_vue_slot(vue_map, i);
> --
> 1.8.2.1
>
> _______________________________________________
> 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