On Mon, Jun 23, 2014 at 4:13 PM, Ilia Mirkin <[email protected]> wrote:
> On Mon, Jun 23, 2014 at 4:08 PM, <[email protected]> wrote:
>> From: Roland Scheidegger <[email protected]>
>>
>> The old logic would let all negative values go through unclamped, with
>> potentially disastrous results (probably trying to fetch viewport values
>> from random memory locations). GL has undefined rendering for vp indices
>> outside valid range but that's a bit too undefined...
>> (The logic is now the same as in llvmpipe.)
>>
>> CC: "10.1 10.2" <[email protected]>
>
> Reviewed-by: Ilia Mirkin <[email protected]>
>
> I haven't tested whether this fixes my issues (don't have the right
> patches/setup on this comp) but this seems obviously correct.
FTR, just tested it out, and it fixes the viewport case with
ARB_fragment_layer_viewport. So you can add my Tested-by as well if
you want.
>
>> ---
>> src/gallium/auxiliary/draw/draw_private.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/gallium/auxiliary/draw/draw_private.h
>> b/src/gallium/auxiliary/draw/draw_private.h
>> index 783c3ef..d8dc2ab 100644
>> --- a/src/gallium/auxiliary/draw/draw_private.h
>> +++ b/src/gallium/auxiliary/draw/draw_private.h
>> @@ -493,7 +493,7 @@ draw_stats_clipper_primitives(struct draw_context *draw,
>> static INLINE unsigned
>> draw_clamp_viewport_idx(int idx)
>> {
>> - return ((PIPE_MAX_VIEWPORTS > idx || idx < 0) ? idx : 0);
>> + return ((PIPE_MAX_VIEWPORTS > idx && idx >= 0) ? idx : 0);
>> }
>>
>> /**
>> --
>> 1.9.1
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev