On 29 October 2013 17:16, Anuj Phogat <anuj.pho...@gmail.com> wrote:

>
>
>
> On Tue, Oct 29, 2013 at 4:31 PM, Paul Berry <stereotype...@gmail.com>wrote:
>
>
>> I think the right thing to do is to add:
>>
>> if (dispatch_width == 16)
>>     fail("...");
>>
>> to whatever parts of the visitor you aren't confident will work properly
>> in SIMD16.
>>
> Yes. But that only covers the per sample shading enabled due to
> gl_SampleID and gl_SamplePosition.
>
> It still doesn't cover the case when there's no  gl_SampleID or
>  gl_SamplePosition in fragment shader but GL_SAMPLE_SHADING is enabled.
> To disable simd16 for this case I either need to keep the relevant changes
> I made in gen7_wm_state.c
> or
> may be set  simd16_instructions = null in brw_wm_fs_emit() when
> GL_SAMPLE_SHADING is enabled. It should also be safe to
> call _mesa_get_min_invocations_per_fragment() in brw_wm_fs_emit(). So, we
> can take care of all the cases of sample shading enabled at the same place?
>

Oh, I didn't realize that you were getting hangs with SIMD16 mode even when
neither gl_SampleID nor gl_SamplePosition is used.

A large part of the reason I had suggested putting calls to fail() in
brw_fs_visitor was because I thought the hangs were due to improper code
generation.  Since you're getting hangs just by using GL_SAMPLE_SHADING,
the cause mustn't be improper code generation, so my idea of failing out of
SIMD16 compilation doesn't make sense anymore.  Based on this information I
guess I'm ok with the patch as originally written.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to