<div dir="ltr">Hey, we've all made those commits at one point or another.<br><br>+1 for code review!<br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">- Chuck<br></div></div></div>
<br><div class="gmail_quote">On Fri, Jun 17, 2016 at 10:18 AM, Cherniak, Bruce <span dir="ltr"><<a href="mailto:bruce.cherniak@intel.com" target="_blank">bruce.cherniak@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
> On Jun 17, 2016, at 8:56 AM, Rowley, Timothy O <<a href="mailto:timothy.o.rowley@intel.com">timothy.o.rowley@intel.com</a>> wrote:<br>
><br>
><br>
>> On Jun 17, 2016, at 8:58 AM, Bruce Cherniak <<a href="mailto:bruce.cherniak@intel.com">bruce.cherniak@intel.com</a>> wrote:<br>
>><br>
>> A pipe pointer in the screen allows for access to current device context<br>
>> in flush_frontbuffer and resource_destroy.  This wasn't tracking current<br>
>> context in multi-context situations.<br>
>> ---<br>
>> src/gallium/drivers/swr/swr_context.cpp |    6 ++++--<br>
>> src/gallium/drivers/swr/swr_state.cpp   |    4 ++++<br>
>> 2 files changed, 8 insertions(+), 2 deletions(-)<br>
>><br>
>> diff --git a/src/gallium/drivers/swr/swr_context.cpp b/src/gallium/drivers/swr/swr_context.cpp<br>
>> index 3a5d9e0..df9e53e 100644<br>
>> --- a/src/gallium/drivers/swr/swr_context.cpp<br>
>> +++ b/src/gallium/drivers/swr/swr_context.cpp<br>
>> @@ -323,7 +323,8 @@ swr_destroy(struct pipe_context *pipe)<br>
>>   swr_destroy_scratch_buffers(ctx);<br>
>><br>
>>   assert(screen);<br>
>> -   screen->pipe = NULL;<br>
>> +   if (screen->pipe == pipe)<br>
>> +      screen->pipe = NULL;<br>
>><br>
>>   FREE(ctx);<br>
>> }<br>
>> @@ -366,7 +367,8 @@ swr_create_context(struct pipe_screen *p_screen, void *priv, unsigned flags)<br>
>>   if (ctx->swrContext == NULL)<br>
>>      goto fail;<br>
>><br>
>> -   screen->pipe = &ctx->pipe;<br>
>> +   if (!screen->pipe)<br>
>> +      screen->pipe = &ctx->pipe;<br>
>>   ctx->pipe.screen = p_screen;<br>
>>   ctx->pipe.destroy = swr_destroy;<br>
>>   ctx->pipe.priv = priv;<br>
>> diff --git a/src/gallium/drivers/swr/swr_state.cpp b/src/gallium/drivers/swr/swr_state.cpp<br>
>> index 3eeb98d..8162fff 100644<br>
>> --- a/src/gallium/drivers/swr/swr_state.cpp<br>
>> +++ b/src/gallium/drivers/swr/swr_state.cpp<br>
>> @@ -776,6 +776,10 @@ swr_update_derived(struct pipe_context *pipe,<br>
>>   struct swr_context *ctx = swr_context(pipe);<br>
>>   struct swr_screen *screen = swr_screen(ctx->pipe.screen);<br>
>><br>
>> +   /* Switch current screen->pipe context */<br>
>> +   if (screen->pipe != screen->pipe)<br>
>> +      screen->pipe = pipe;<br>
>> +<br>
><br>
><br>
> Pretty sure this test isn’t what you intended.<br>
<br>
</div></div>Wow!  I need a cup of coffee!<br>
<div class="HOEnZb"><div class="h5">><br>
>>   /* Any state that requires dirty flags to be re-triggered sets this mask */<br>
>>   /* For example, user_buffer vertex and index buffers. */<br>
>>   unsigned post_update_dirty_flags = 0;<br>
>> --<br>
>> 1.7.1<br>
>><br>
>> _______________________________________________<br>
>> mesa-dev mailing list<br>
>> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
>> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
><br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div>