Announcement

Collapse
No announcement yet.

Radeon Navi Support Pending For RadeonSI OpenGL Driver With 47k Line Worth Of Changes

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by juno View Post

    How are VS, TES and GS merged, when TCS (and the actual tessellation step) is in between?
    The hardware VS does not correspond to API VS (which is also why the second part of the sentence explicitly says "API shaders".
    The hardware VS (pre-Navi) is the stage which always actually does the parameter export for rasterization, so it's always last (before the pixel shader).
    Apparently though for gfx10 the last stage doing this is now GS, there's no "VS" stage anymore:
    Code:
    /*
     * API shaders           VS | TCS | TES | GS |pass| PS
     * are compiled as:         |     |     |    |thru|
     *                          |     |     |    |    |
     * Only VS & PS:         VS |     |     |    |    | PS
     * GFX6     - with GS:   ES |     |     | GS | VS | PS
     *          - with tess: LS | HS  | VS  |    |    | PS
     *          - with both: LS | HS  | ES  | GS | VS | PS
     * GFX9     - with GS:   -> |     |     | GS | VS | PS
     *          - with tess: -> | HS  | VS  |    |    | PS
     *          - with both: -> | HS  | ->  | GS | VS | PS
     *                          |     |     |    |    |
     * NGG      - VS & PS:   GS |     |     |    |    | PS
     * (GFX10+) - with GS:   -> |     |     | GS |    | PS
     *          - with tess: -> | HS  | GS  |    |    | PS
     *          - with both: -> | HS  | ->  | GS |    | PS
     */
    So Vega would already merge ES and GS, and also the API VS and TCS, but always a pass-through VS was still required, which is now gone, and there's now always just one (without tessellation) or 2 hw shaders (one pre-tessellator, one post-tessellator).

    Comment


    • #12
      Originally posted by juno View Post
      How are VS, TES and GS merged, when TCS (and the actual tessellation step) is in between?
      Probably bad wording. There's a paper on NGG on Vega somewhere, and I believe you'd merge VS+GS when tessellation is disabled, and ES+GS as well as VS+TCS when tessellation is enabled, for a maximum of two vertex processing stages.

      Anyway, I'd be interested in some clarification on this matter as well. Edit: See post above.

      Comment


      • #13
        Originally posted by mczak View Post
        The hardware VS does not correspond to API VS (which is also why the second part of the sentence explicitly says "API shaders".
        [...]
        So Vega would already merge ES and GS, and also the API VS and TCS, but always a pass-through VS was still required, which is now gone, and there's now always just one (without tessellation) or 2 hw shaders (one pre-tessellator, one post-tessellator).
        I figured out in the meantime, but thanks!

        Regarding the last sentence: this would of course be 3? pre-tess, post-tess, post-raster. But, of course, nothing changed for the fragment shader, so you've just skipped that.

        Comment


        • #14
          You guys nailed it.

          Comment


          • #15
            Originally posted by juno View Post
            Regarding the last sentence: this would of course be 3? pre-tess, post-tess, post-raster.
            Ah yes of course, I was thinking 1 or 2 pre-rasterization.

            Comment

            Working...
            X