#When do Helper Lanes exist?

12 messages · Page 1 of 1 (latest)

thorn viper
#

On this page: https://microsoft.github.io/DirectX-Specs/d3d/HLSL_SM_6_7_Wave_Ops_Include_Helper_Lanes.html

Helper lanes exist only in pixel shaders and are present only if the shader contains a quad or derivative operation (gradient/Sample) that requires all four lanes of a quad. After the last quad or derivative operation in the shader code the helper lanes are not guaranteed to exist. Consequently, there might actually be no helper lanes at all if the shaders does not have any quad or derivative operations.

Based on this, would a full screen quad with depth write disabled not have helper lanes?

elfin linden
#

Current hardware always spawns helper lanes for pixel shaders as far as I know. But the compiler may activate or deactivate them (using masking) depending on what the shader is doing.

thorn viper
elfin linden
#

The former. They’re still there, but have no effect.

#

That said, the spec is clearly written in a way such that future hardware could not spawn helper lanes at all if they're not required.

thorn viper
elfin linden
#

Yeah you would still have excess pixel shader threads spawned, which can result in more waves being spawned compared with the single tri case.

thorn viper
#

ok thanks 👍

thorn viper
elfin linden
#

lol sorry, so many typos. I meant "waves"

thorn viper
#

oh ok lol

elfin linden
#

I would probably expect some low % more waves being spawned from a full-screen quad vs. a full-screen tri