On 30.04.19 21:20, Marek Olšák wrote:
Why can we not use tbuffer loads?

tbuffer_load_format has the exact same limitations as buffer_load_format. They both use the same hardware path, the only difference is that tbuffer_load_format gets the format information from the instruction, while buffer_load_format gets it from the resource descriptor.

Therefore, in all cases where we *can* use tbuffer_load_format, we may as well use buffer_load_format (because we can just initialize the descriptor for that vertex input / vertex element correctly).

The benefit that tbuffer_load_format could potentially give us in the future is that when multiple vertex elements reference the same vertex buffer, we could put a single buffer descriptor into the descriptor table (or into USER_SGPRs) instead of having one buffer descriptor for every element.

Cheers,
Nicolai



Marek

On Thu, Apr 25, 2019 at 7:18 AM Nicolai Hähnle <nhaeh...@gmail.com <mailto:nhaeh...@gmail.com>> wrote:

    Hi all,

    the following patches contain code to implement all vertex fetches
    using plain, non-format loads plus explicit shader arithmetic for
    format conversion.

    This allows us to remove the software workaround for unaligned vertex
    buffers on SI, because we can just load individual bytes on the GPU.
    CI+ will still use short/dword loads even in the unaligned case.

    The format conversion code was tested by running with
    radeonsi_vs_fetch_always_opencode=true on both Verde and Vega.

    Please review!

    Thanks,
    Nicolai
    --
      src/amd/common/ac_llvm_build.c               | 313 +++++++++++++++++
      src/amd/common/ac_llvm_build.h               |  30 ++
      .../drivers/radeonsi/si_debug_options.h      |   1 +
      src/gallium/drivers/radeonsi/si_get.c        |   2 +-
      src/gallium/drivers/radeonsi/si_pipe.h       |   1 +
      src/gallium/drivers/radeonsi/si_shader.c     | 249 +++++--------
      src/gallium/drivers/radeonsi/si_shader.h     |  46 +--
      src/gallium/drivers/radeonsi/si_state.c      | 233 +++++++-----
      src/gallium/drivers/radeonsi/si_state.h      |  19 +
      .../drivers/radeonsi/si_state_shaders.c      |  37 +-
      10 files changed, 645 insertions(+), 286 deletions(-)


    _______________________________________________
    mesa-dev mailing list
    mesa-dev@lists.freedesktop.org <mailto:mesa-dev@lists.freedesktop.org>
    https://lists.freedesktop.org/mailman/listinfo/mesa-dev


--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to