Alpha Test VS Alpha Blend

the flowline start point should not be considered as a “pass-through”, this’s my drawing mistake.
[attachment file=“48767”]
[attachment file=“48768”]
I think my understanding is closer to your idea now:
for alphablend:

  1. it preprocess the fragment (all preprocessing won’t involve fragment shaders, so that’s why it’s fast?)
  2. then it obtain depths (since no discard used), go back to HSR unit and do HSR, and write the depth buffer.(PASS 1 as you said)
  3. process the fragment shader in a traditional way, then blend and output

for alphatest:

  1. it preprocess the fragment
  2. then it obtain depths and go back to HSR unit ( but depths can’t be used since discarding exists) (PASS 1)
  3. process the fragment shader in a traditional way,
  4. real depths obtained, then go back to HSR unit and write depth buffer. (PASS 2)
  5. then output.

does this right?