i965/fs: Replace nested ternary with if ladder.
Since the types of the expression were bool ? src_reg : (bool ? brw_reg : brw_reg) the result of the second (nested) ternary would be implicitly converted to a src_reg by the src_reg(struct brw_reg) constructor. I.e., bool ? src_reg : src_reg(bool ? brw_reg : brw_reg) In the next patch, I make backend_reg (the parent of src_reg) inherit from brw_reg, which changes this expression to return brw_reg, which throws away any fields that exist in the classes derived from brw_reg. I.e., src_reg(bool ? brw_reg(src_reg) : bool ? brw_reg : brw_reg) Generally this code was gross, and wasn't actually shorter or easier to read than an if ladder. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
This commit is contained in:
@@ -224,12 +224,13 @@ namespace brw {
|
||||
src_reg
|
||||
sample_mask_reg() const
|
||||
{
|
||||
const bool uses_kill =
|
||||
(shader->stage == MESA_SHADER_FRAGMENT &&
|
||||
((brw_wm_prog_data *)shader->stage_prog_data)->uses_kill);
|
||||
return (shader->stage != MESA_SHADER_FRAGMENT ? src_reg(0xffff) :
|
||||
uses_kill ? brw_flag_reg(0, 1) :
|
||||
retype(brw_vec1_grf(1, 7), BRW_REGISTER_TYPE_UD));
|
||||
if (shader->stage != MESA_SHADER_FRAGMENT) {
|
||||
return src_reg(0xffff);
|
||||
} else if (((brw_wm_prog_data *)shader->stage_prog_data)->uses_kill) {
|
||||
return brw_flag_reg(0, 1);
|
||||
} else {
|
||||
return retype(brw_vec1_grf(1, 7), BRW_REGISTER_TYPE_UD);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user