[Mesa-dev] [PATCH 2/3] radv: hardcode shader WAVE_LIMIT to the maximum value

Marek Olšák maraeo at gmail.com
Tue Aug 14 15:46:25 UTC 2018


On Tue, Aug 14, 2018, 8:28 AM Samuel Pitoiset <samuel.pitoiset at gmail.com>
wrote:

>
>
> On 8/1/18 5:12 AM, Marek Olšák wrote:
> > On Fri, Oct 20, 2017 at 4:34 PM, Andres Rodriguez <andresx7 at gmail.com>
> wrote:
> >> When WAVE_LIMIT is set, a submission will opt-in for SPI based resource
> >> scheduling. Because this mechanism is cooperative, we must ensure that
> >> all submissions have this field set, otherwise they will bypass resource
> >> arbitration.
> >>
> >> We always hardcode the field to its maximum value, instead of
> >> attempting to calculate an approximate usage. In testing, there were no
> >> benefits to using anything other than the maximum.
> >>
> >> Signed-off-by: Andres Rodriguez <andresx7 at gmail.com>
> >> ---
> >>   src/amd/vulkan/si_cmd_buffer.c          | 27
> ++++++++++++++++++---------
> >>   src/gallium/drivers/radeonsi/si_state.c | 21 ++++++++++++++-------
> >>   2 files changed, 32 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/src/amd/vulkan/si_cmd_buffer.c
> b/src/amd/vulkan/si_cmd_buffer.c
> >> index de3b388..ac3dff8 100644
> >> --- a/src/amd/vulkan/si_cmd_buffer.c
> >> +++ b/src/amd/vulkan/si_cmd_buffer.c
> >> @@ -179,7 +179,8 @@ si_emit_compute(struct radv_physical_device
> *physical_device,
> >>          radeon_emit(cs, 0);
> >>          radeon_emit(cs, 0);
> >>
> >> -       radeon_set_sh_reg_seq(cs, R_00B854_COMPUTE_RESOURCE_LIMITS, 3);
> >> +       radeon_set_sh_reg_seq(cs, R_00B854_COMPUTE_RESOURCE_LIMITS,
> >> +                             S_00B854_WAVES_PER_SH(0x3));
> >
> > This part doesn't set WAVES_PER_SH. Also, the number 3 would be wrong
> for it.
>
> This is just a default value for that register. COMPUTE_RESOURCE_LIMITS
> is computed like RadeonSI when we generate the PM4 stuff for compute
> pipelines, and then emitted at dispatch time.
>
> Do you think we should remove that default value?
>

Please read the patch again. It's obvious if you know what the seq function
does.

Marek


> >
> > Marek
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180814/86670da2/attachment.html>


More information about the mesa-dev mailing list