The bone matrix optimization is only safe when software skinning

This commit is contained in:
Henrik Rydgard 2013-11-14 15:02:22 +01:00
parent 9521d0e0a6
commit dc03796ccb

View File

@ -731,7 +731,7 @@ void GPUCommon::ExecuteOp(u32 op, u32 diff) {
u32 target = gstate_c.getRelativeAddress(data);
// Bone matrix optimization - many games will CALL a bone matrix (!).
if ((Memory::ReadUnchecked_U32(target) >> 24) == GE_CMD_BONEMATRIXDATA) {
if (g_Config.bSoftwareSkinning && (Memory::ReadUnchecked_U32(target) >> 24) == GE_CMD_BONEMATRIXDATA) {
// Check for the end
if ((Memory::ReadUnchecked_U32(target + 11 * 4) >> 24) == GE_CMD_BONEMATRIXDATA &&
(Memory::ReadUnchecked_U32(target + 12 * 4) >> 24) == GE_CMD_RET) {