r600/sfn: Don't assert when setting one value

Instead add a method to validate the vec4 registers

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18619>
This commit is contained in:
Gert Wollny
2022-09-07 08:21:13 +02:00
committed by Marge Bot
parent 4a505609e4
commit 5416d1bc4b
@@ -278,16 +278,25 @@ public:
void set_value(int i, PRegister reg) {
if (reg->chan() < 4) {
for (int k = 0; k < 4; ++k) {
assert(i == k || m_values[k]->value()->chan() > 3 ||
m_values[k]->value()->sel() == reg->sel());
}
m_sel = reg->sel();
}
m_swz[i] = reg->chan();
m_values[i]->set_value(reg);
}
void validate() {
int sel = -1;
for (int k = 0; k < 4; ++k) {
if (sel < 0) {
if (m_values[k]->value()->chan() < 4)
sel = m_values[k]->value()->sel();
} else {
assert(m_values[k]->value()->chan() > 3 ||
m_values[k]->value()->sel() == sel);
}
}
}
bool ready(int block_id, int index) const;
private:
int m_sel;