summaryrefslogtreecommitdiff
path: root/src/gbm
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2013-08-12 21:18:58 +0200
committerRoland Scheidegger <sroland@vmware.com>2013-08-12 23:33:00 +0200
commitcd2f26090a3857703bc85bd58ac5922800b06bc0 (patch)
treea140aa56f7dd23bc48c7d0100392e04a24dcb45a /src/gbm
parentdfa7b725638bf4b1396516dca732a3720b3625a9 (diff)
gallivm: fix exec_mask interaction with geometry shader after end of main
Because we must maintain an exec_mask even if there's currently nothing on the mask stack, we can still have an exec_mask at the end of the program. Effectively, this mask should be set back to default when returning from main. Without relying on END/RET opcode (I think it's valid to have neither) it is actually difficult to do this, as there doesn't seem any reasonable place to do it, so instead let's just say the exec_mask is invalid outside main (which it really is effectively). The problem is that geometry shader called end_primitive outside the shader (in the epilogue), and as a result used a bogus mask, leading to bugs if we had to set the (somewhat misnamed) ret_in_main bit anywhere. So just avoid the mask combining function when called from outside the shader. Reviewed-by: Zack Rusin <zackr@vmware.com>
Diffstat (limited to 'src/gbm')
0 files changed, 0 insertions, 0 deletions