diff options
author | Kenneth Graunke <[email protected]> | 2014-01-26 00:20:21 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2014-02-20 15:50:07 -0800 |
commit | e643c7d036d322c2898c9e65e466d75d0c708dc2 (patch) | |
tree | 3cc4a809ac6882cfc28c52c506cbdc15fbb4691e /src/mesa/program/prog_parameter.c | |
parent | 741782b5948bb3d01d699f062a37513c2e73b076 (diff) |
i965: Implement a CS stall workaround on Broadwell.
According to the latest documentation, any PIPE_CONTROL with the
"Command Streamer Stall" bit set must also have another bit set,
with five different options:
- Render Target Cache Flush
- Depth Cache Flush
- Stall at Pixel Scoreboard
- Post-Sync Operation
- Depth Stall
I chose "Stall at Pixel Scoreboard" since we've used it effectively
in the past, but the choice is fairly arbitrary.
Implementing this in the PIPE_CONTROL emit helpers ensures that the
workaround will always take effect when it ought to.
Apparently, this workaround may be necessary on older hardware as well;
for now I've only added it to Broadwell as it's absolutely necessary
there. Subsequent patches could add it to older platforms, provided
someone tests it there.
v2: Only flag "Stall at Pixel Scoreboard" when none of the other bits
are set (suggested by Ian Romanick).
v3: Prefix the function with "gen8" (requested by Eric).
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]> (v2)
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/program/prog_parameter.c')
0 files changed, 0 insertions, 0 deletions