rsx: Improve transform constants management

- Removes the duplicate local_transform_constants
- Resets the transform constants on every context reset
- Simplifies the code abit which should make it faster
- NOTE: Transform constants are persistent across context re-init events (VF5)
This commit is contained in:
kd-11 2018-03-05 00:59:21 +03:00
parent a19ffba8e8
commit dece1e01f4
4 changed files with 13 additions and 14 deletions

View file

@ -334,7 +334,13 @@ namespace rsx
static constexpr u8 subreg = index % 4;
u32 load = rsx::method_registers.transform_constant_load();
rsx::method_registers.transform_constants[load + reg].rgba[subreg] = (f32&)arg;
if ((load + index) >= 512)
{
LOG_ERROR(RSX, "Invalid register index (load=%d, index=%d)", load, index);
return;
}
rsx::method_registers.transform_constants[load + reg][subreg] = arg;
rsxthr->m_transform_constants_dirty = true;
}
};