r600g/sb: fix handling of PS in source bytecode on cayman
Actually PS doesn't make sense for cayman and isn't even mentioned in cayman docs, but llvm backend currently uses it in bytecode and, assuming that hw seems to be mostly ok with it, this will allow sb to parse such source bytecode correctly. Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
This commit is contained in:
@@ -385,6 +385,11 @@ int bc_parser::prepare_alu_group(cf_node* cf, alu_group_node *g) {
|
||||
} else if (src.sel == ALU_SRC_PS || src.sel == ALU_SRC_PV) {
|
||||
unsigned pgroup = !cgroup, prev_slot = src.sel == ALU_SRC_PS ?
|
||||
SLOT_TRANS : src.chan;
|
||||
|
||||
// XXX shouldn't happen but llvm backend uses PS on cayman
|
||||
if (prev_slot == SLOT_TRANS && ctx.is_cayman())
|
||||
prev_slot = SLOT_X;
|
||||
|
||||
alu_node *prev_alu = slots[pgroup][prev_slot];
|
||||
|
||||
assert(prev_alu);
|
||||
|
||||
Reference in New Issue
Block a user