[Mesa-dev] A question about order of st_update_*p

Lepton Wu lepton at chromium.org
Fri Jul 26 20:11:41 UTC 2019


I am confused, for example,  according to:

https://www.khronos.org/opengl/wiki/Geometry_Shader, it come after
Vertex shader, that mean, it depends on vertex shader, right?
So st_update_gp should be after st_update_vp, but now it is in the
front of st_update_vp.

On Fri, Jul 26, 2019 at 1:07 PM Marek Olšák <maraeo at gmail.com> wrote:
>
>
>
> On Fri., Jul. 26, 2019, 15:58 Lepton Wu, <lepton at chromium.org> wrote:
>>
>> If shader A depends on shader B,  should we put st_update_shaderB  in
>> front of st_update_shaderA?
>
>
> That's the current order. The order of GPU execution doesn't matter.
>
> M.
>
>>
>> Now the order looks like reversed...
>>
>> On Fri, Jul 26, 2019 at 12:34 PM Marek Olšák <maraeo at gmail.com> wrote:
>> >
>> > 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.
>> >
>> > Marek
>> >
>> > On Wed, Jul 24, 2019 at 7:19 PM Lepton Wu <lepton at chromium.org> wrote:
>> >>
>> >> In src/mesa/state_tracker/st_atom_list.h,
>> >>
>> >> Now it's this order:
>> >>
>> >> ST_STATE(ST_NEW_FS_STATE, st_update_fp)
>> >> ST_STATE(ST_NEW_GS_STATE, st_update_gp)
>> >> ST_STATE(ST_NEW_TES_STATE, st_update_tep)
>> >> ST_STATE(ST_NEW_TCS_STATE, st_update_tcp)
>> >> ST_STATE(ST_NEW_VS_STATE, st_update_vp)
>> >>
>> >> While code in
>> >> src/mesa/state_tracker/st_atom.c:
>> >>
>> >> while (dirty_lo)
>> >>      update_functions[u_bit_scan(&dirty_lo)](st);
>> >>
>> >> That means if will call st_update_fp first and then st_update_gp... etc.
>> >>
>> >> But this is inconsistent with opengl pipeline: should we reverse the
>> >> order here or I missed something?
>> >>
>> >> Background:
>> >>
>> >> https://gitlab.freedesktop.org/virgl/virglrenderer/issues/114
>> >> _______________________________________________
>> >> mesa-dev mailing list
>> >> mesa-dev at lists.freedesktop.org
>> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list