summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/PixelShaderManager.cpp
diff options
context:
space:
mode:
authorTony Wasserka <NeoBrainX@gmail.com>2013-10-10 21:09:00 +0200
committerTony Wasserka <NeoBrainX@gmail.com>2014-03-14 22:31:18 +0100
commit0238a568162099f0ee1db3d584e42db734f4e509 (patch)
treeeea6fbc136ebe34e84aa131c1e4ee40860370016 /Source/Core/VideoCommon/PixelShaderManager.cpp
parentc13a5c38e9ab997f21b84c2ce64772b66cc3cfc9 (diff)
PixelShaderGen: Change indirect texture matrix uniforms to use integers.
Diffstat (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp')
-rw-r--r--Source/Core/VideoCommon/PixelShaderManager.cpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp
index 29e13dd717..30d6013efc 100644
--- a/Source/Core/VideoCommon/PixelShaderManager.cpp
+++ b/Source/Core/VideoCommon/PixelShaderManager.cpp
@@ -210,26 +210,25 @@ void PixelShaderManager::SetIndTexScaleChanged(bool high)
void PixelShaderManager::SetIndMatrixChanged(int matrixidx)
{
int scale = ((u32)bpmem.indmtx[matrixidx].col0.s0 << 0) |
- ((u32)bpmem.indmtx[matrixidx].col1.s1 << 2) |
- ((u32)bpmem.indmtx[matrixidx].col2.s2 << 4);
- float fscale = powf(2.0f, (float)(scale - 17)) / 8.0f;
+ ((u32)bpmem.indmtx[matrixidx].col1.s1 << 2) |
+ ((u32)bpmem.indmtx[matrixidx].col2.s2 << 4);
// xyz - static matrix
// w - dynamic matrix scale / 128
- constants.indtexmtx[2*matrixidx][0] = bpmem.indmtx[matrixidx].col0.ma * fscale;
- constants.indtexmtx[2*matrixidx][1] = bpmem.indmtx[matrixidx].col1.mc * fscale;
- constants.indtexmtx[2*matrixidx][2] = bpmem.indmtx[matrixidx].col2.me * fscale;
- constants.indtexmtx[2*matrixidx][3] = fscale / 128.0f;
- constants.indtexmtx[2*matrixidx+1][0] = bpmem.indmtx[matrixidx].col0.mb * fscale;
- constants.indtexmtx[2*matrixidx+1][1] = bpmem.indmtx[matrixidx].col1.md * fscale;
- constants.indtexmtx[2*matrixidx+1][2] = bpmem.indmtx[matrixidx].col2.mf * fscale;
- constants.indtexmtx[2*matrixidx+1][3] = fscale / 128.0f;
+ constants.indtexmtx[2*matrixidx ][0] = bpmem.indmtx[matrixidx].col0.ma;
+ constants.indtexmtx[2*matrixidx ][1] = bpmem.indmtx[matrixidx].col1.mc;
+ constants.indtexmtx[2*matrixidx ][2] = bpmem.indmtx[matrixidx].col2.me;
+ constants.indtexmtx[2*matrixidx ][3] = 17 - scale;
+ constants.indtexmtx[2*matrixidx+1][0] = bpmem.indmtx[matrixidx].col0.mb;
+ constants.indtexmtx[2*matrixidx+1][1] = bpmem.indmtx[matrixidx].col1.md;
+ constants.indtexmtx[2*matrixidx+1][2] = bpmem.indmtx[matrixidx].col2.mf;
+ constants.indtexmtx[2*matrixidx+1][3] = 17 - scale;
dirty = true;
- PRIM_LOG("indmtx%d: scale=%f, mat=(%f %f %f; %f %f %f)\n",
- matrixidx, fscale,
- bpmem.indmtx[matrixidx].col0.ma * fscale, bpmem.indmtx[matrixidx].col1.mc * fscale, bpmem.indmtx[matrixidx].col2.me * fscale,
- bpmem.indmtx[matrixidx].col0.mb * fscale, bpmem.indmtx[matrixidx].col1.md * fscale, bpmem.indmtx[matrixidx].col2.mf * fscale);
+ PRIM_LOG("indmtx%d: scale=%d, mat=(%d %d %d; %d %d %d)\n",
+ matrixidx, scale,
+ bpmem.indmtx[matrixidx].col0.ma, bpmem.indmtx[matrixidx].col1.mc, bpmem.indmtx[matrixidx].col2.me,
+ bpmem.indmtx[matrixidx].col0.mb, bpmem.indmtx[matrixidx].col1.md, bpmem.indmtx[matrixidx].col2.mf);
}