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

Lepton Wu lepton at chromium.org
Fri Jul 26 20:33:36 UTC 2019


OK. Would you mind give some link to some document what's the exact
meaning of "dependence"
in st/mesa since it's unrelated with gpu execution. Thanks.

On Fri, Jul 26, 2019 at 1:27 PM Marek Olšák <maraeo at gmail.com> wrote:
>
> The order of GPU execution doesn't matter here.
>
> M.
>
> On Fri., Jul. 26, 2019, 16:11 Lepton Wu, <lepton at chromium.org> wrote:
>>
>> 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