On Fri, Dec 6, 2013 at 4:08 AM, Michel Dänzer <mic...@daenzer.net> wrote:
> On Don, 2013-12-05 at 18:43 +0100, Marek Olšák wrote:
>> From: Marek Olšák <marek.ol...@amd.com>
>>
>> This fixes valgrind errors in glxinfo.
>
> [...]
>
>> diff --git a/src/gallium/drivers/radeonsi/si_state.c 
>> b/src/gallium/drivers/radeonsi/si_state.c
>> index 9831fd8..b644d56 100644
>> --- a/src/gallium/drivers/radeonsi/si_state.c
>> +++ b/src/gallium/drivers/radeonsi/si_state.c
>> @@ -2282,15 +2282,12 @@ static void si_bind_vs_shader(struct pipe_context 
>> *ctx, void *state)
>>       if (rctx->vs_shader == sel)
>>               return;
>>
>> -     rctx->vs_shader = sel;
>> -
>> -     if (sel && sel->current) {
>> -             si_pm4_bind_state(rctx, vs, sel->current->pm4);
>> -             rctx->b.streamout.stride_in_dw = sel->so.stride;
>> -     } else {
>> -             si_pm4_bind_state(rctx, vs, rctx->dummy_pixel_shader->pm4);
>> -     }
>> +     if (!sel || !sel->current)
>> +             return;
>>
>> +     rctx->vs_shader = sel;
>> +     si_pm4_bind_state(rctx, vs, sel->current->pm4);
>> +     rctx->b.streamout.stride_in_dw = sel->so.stride;
>>       rctx->b.flags |= R600_CONTEXT_INV_SHADER_CACHE;
>>  }
>
> I've been wondering for a while if it's a good idea to use the dummy
> pixel shader as the vertex shader... It might be safer to just not draw
> anything if there is no vertex shader, or is there anything sensible a
> dummy vertex shader could do?

The vertex shader must never be NULL when draw_vbo is called. The
pixel shader can be NULL if pipe_rasterizer_state::rasterizer_discard
is 1. That's the only reason we care about a NULL pixel shader.

Marek
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to