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:
- it preprocess the fragment (all preprocessing won’t involve fragment shaders, so that’s why it’s fast?)
- 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)
- process the fragment shader in a traditional way, then blend and output
for alphatest:
- it preprocess the fragment
- then it obtain depths and go back to HSR unit ( but depths can’t be used since discarding exists) (PASS 1)
- process the fragment shader in a traditional way,
- real depths obtained, then go back to HSR unit and write depth buffer. (PASS 2)
- then output.
does this right?