<div dir="auto"><span style="font-family:sans-serif;font-size:12.8px">The order of GPU execution doesn't matter here.</span><div dir="auto"><span style="font-family:sans-serif;font-size:12.8px"><br></span></div><div dir="auto"><span style="font-family:sans-serif;font-size:12.8px">M.</span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri., Jul. 26, 2019, 16:11 Lepton Wu, <<a href="mailto:lepton@chromium.org">lepton@chromium.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am confused, for example,  according to:<br>
<br>
<a href="https://www.khronos.org/opengl/wiki/Geometry_Shader" rel="noreferrer noreferrer" target="_blank">https://www.khronos.org/opengl/wiki/Geometry_Shader</a>, it come after<br>
Vertex shader, that mean, it depends on vertex shader, right?<br>
So st_update_gp should be after st_update_vp, but now it is in the<br>
front of st_update_vp.<br>
<br>
On Fri, Jul 26, 2019 at 1:07 PM Marek Olšák <<a href="mailto:maraeo@gmail.com" target="_blank" rel="noreferrer">maraeo@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> On Fri., Jul. 26, 2019, 15:58 Lepton Wu, <<a href="mailto:lepton@chromium.org" target="_blank" rel="noreferrer">lepton@chromium.org</a>> wrote:<br>
>><br>
>> If shader A depends on shader B,  should we put st_update_shaderB  in<br>
>> front of st_update_shaderA?<br>
><br>
><br>
> That's the current order. The order of GPU execution doesn't matter.<br>
><br>
> M.<br>
><br>
>><br>
>> Now the order looks like reversed...<br>
>><br>
>> On Fri, Jul 26, 2019 at 12:34 PM Marek Olšák <<a href="mailto:maraeo@gmail.com" target="_blank" rel="noreferrer">maraeo@gmail.com</a>> wrote:<br>
>> ><br>
>> > The order shouldn't matter, but there can be a reason behind it, e.g. if a shader depends on the update of the following shader.<br>
>> ><br>
>> > Marek<br>
>> ><br>
>> > On Wed, Jul 24, 2019 at 7:19 PM Lepton Wu <<a href="mailto:lepton@chromium.org" target="_blank" rel="noreferrer">lepton@chromium.org</a>> wrote:<br>
>> >><br>
>> >> In src/mesa/state_tracker/st_atom_list.h,<br>
>> >><br>
>> >> Now it's this order:<br>
>> >><br>
>> >> ST_STATE(ST_NEW_FS_STATE, st_update_fp)<br>
>> >> ST_STATE(ST_NEW_GS_STATE, st_update_gp)<br>
>> >> ST_STATE(ST_NEW_TES_STATE, st_update_tep)<br>
>> >> ST_STATE(ST_NEW_TCS_STATE, st_update_tcp)<br>
>> >> ST_STATE(ST_NEW_VS_STATE, st_update_vp)<br>
>> >><br>
>> >> While code in<br>
>> >> src/mesa/state_tracker/st_atom.c:<br>
>> >><br>
>> >> while (dirty_lo)<br>
>> >>      update_functions[u_bit_scan(&dirty_lo)](st);<br>
>> >><br>
>> >> That means if will call st_update_fp first and then st_update_gp... etc.<br>
>> >><br>
>> >> But this is inconsistent with opengl pipeline: should we reverse the<br>
>> >> order here or I missed something?<br>
>> >><br>
>> >> Background:<br>
>> >><br>
>> >> <a href="https://gitlab.freedesktop.org/virgl/virglrenderer/issues/114" rel="noreferrer noreferrer" target="_blank">https://gitlab.freedesktop.org/virgl/virglrenderer/issues/114</a><br>
>> >> _______________________________________________<br>
>> >> mesa-dev mailing list<br>
>> >> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank" rel="noreferrer">mesa-dev@lists.freedesktop.org</a><br>
>> >> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div>