mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
r600g/sb: treat undefined values like constants
When we schedule an instructions with undefined value, we
eventually will use 0, which is a constant, however sb wasn't
taking this into account and creating ops with illegal scalar
swizzles.
this replaces my fix for op3 in t slots.
Reviewed-by: Glenn Kennard <glenn.kennard@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit e8e4437ed0)
This commit is contained in:
parent
7c448551eb
commit
c0f425bb81
1 changed files with 2 additions and 2 deletions
|
|
@ -266,7 +266,7 @@ bool rp_gpr_tracker::try_reserve(alu_node* n) {
|
|||
|
||||
for (i = 0; i < nsrc; ++i) {
|
||||
value *v = n->src[i];
|
||||
if (v->is_readonly()) {
|
||||
if (v->is_readonly() || v->is_undef()) {
|
||||
const_count++;
|
||||
if (trans && const_count == 3)
|
||||
break;
|
||||
|
|
@ -295,7 +295,7 @@ bool rp_gpr_tracker::try_reserve(alu_node* n) {
|
|||
if (need_unreserve && i--) {
|
||||
do {
|
||||
value *v = n->src[i];
|
||||
if (!v->is_readonly()) {
|
||||
if (!v->is_readonly() && !v->is_undef()) {
|
||||
if (i == 1 && opt)
|
||||
continue;
|
||||
unreserve(bs_cycle(trans, bs, i), n->bc.src[i].sel,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue