From cff952c397833873055e42a85b76ff8a621a0792 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Thu, 12 Sep 2013 13:55:38 +0200 Subject: PixelShaderGen: Use integer math for indirect tev stage texcoord calculation. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 9ed7ff2a76..9173396fac 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -212,25 +212,24 @@ 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)) / 1024.0f; + float fscale = powf(2.0f, (float)(scale - 17)) / 8.0f; // xyz - static matrix - // TODO w - dynamic matrix scale / 256...... somehow / 4 works better - // rev 2972 - now using / 256.... verify that this works + // 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 * 4.0f; + 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 * 4.0f; + constants.indtexmtx[2*matrixidx+1][3] = fscale / 128.0f; dirty = true; PRIM_LOG("indmtx%d: scale=%f, mat=(%f %f %f; %f %f %f)\n", - matrixidx, 1024.0f*fscale, + 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); + bpmem.indmtx[matrixidx].col0.mb * fscale, bpmem.indmtx[matrixidx].col1.md * fscale, bpmem.indmtx[matrixidx].col2.mf * fscale); } -- cgit v1.2.3 From ec60acac3a30bdcc4444a61b106bc7e60a597473 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Thu, 10 Oct 2013 20:26:41 +0200 Subject: PixelShaderGen: Change the "colors" and "kcolors" uniforms to be integers. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 9173396fac..5d5850da5b 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -152,14 +152,14 @@ void PixelShaderManager::SetConstants() // TODO: Conversion should be checked in the context of tev_fixes.. void PixelShaderManager::SetColorChanged(int type, int num) { - float4* c = type ? constants.kcolors : constants.colors; - c[num][0] = bpmem.tevregs[num].low.a / 255.0f; - c[num][3] = bpmem.tevregs[num].low.b / 255.0f; - c[num][2] = bpmem.tevregs[num].high.a / 255.0f; - c[num][1] = bpmem.tevregs[num].high.b / 255.0f; + int4* c = type ? constants.kcolors : constants.colors; + c[num][0] = bpmem.tevregs[num].low.a; + c[num][3] = bpmem.tevregs[num].low.b; + c[num][2] = bpmem.tevregs[num].high.a; + c[num][1] = bpmem.tevregs[num].high.b; dirty = true; - PRIM_LOG("pixel %scolor%d: %f %f %f %f\n", type?"k":"", num, c[num][0], c[num][1], c[num][2], c[num][3]); + PRIM_LOG("pixel %scolor%d: %d %d %d %d\n", type?"k":"", num, c[num][0], c[num][1], c[num][2], c[num][3]); } void PixelShaderManager::SetAlpha() -- cgit v1.2.3 From c13a5c38e9ab997f21b84c2ce64772b66cc3cfc9 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Thu, 10 Oct 2013 20:36:55 +0200 Subject: PixelShaderGen: Change the "alpha" uniform to use integers. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 5d5850da5b..29e13dd717 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -164,14 +164,14 @@ void PixelShaderManager::SetColorChanged(int type, int num) void PixelShaderManager::SetAlpha() { - constants.alpha[0] = bpmem.alpha_test.ref0 / 255.0f; - constants.alpha[1] = bpmem.alpha_test.ref1 / 255.0f; + constants.alpha[0] = bpmem.alpha_test.ref0; + constants.alpha[1] = bpmem.alpha_test.ref1; dirty = true; } void PixelShaderManager::SetDestAlpha() { - constants.alpha[3] = bpmem.dstalpha.alpha / 255.0f; + constants.alpha[3] = bpmem.dstalpha.alpha; dirty = true; } -- cgit v1.2.3 From 0238a568162099f0ee1db3d584e42db734f4e509 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Thu, 10 Oct 2013 21:09:00 +0200 Subject: PixelShaderGen: Change indirect texture matrix uniforms to use integers. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 29 +++++++++++++------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') 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); } -- cgit v1.2.3 From 68e91f0d557206e241f7bc4fe6b66f5650788260 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sun, 27 Oct 2013 13:10:00 +0100 Subject: PixelShader: Store fog color as an integer. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 35 +++++++++++++------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 30d6013efc..b0b1ce7037 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -84,15 +84,16 @@ void PixelShaderManager::SetConstants() // they always seems to be larger than 256 so my theory is : // they are the coefficients from the center to the border of the screen // so to simplify I use the hi coefficient as K in the shader taking 256 as the scale - constants.fog[2][0] = ScreenSpaceCenter; - constants.fog[2][1] = (float)Renderer::EFBToScaledX((int)(2.0f * xfregs.viewport.wd)); - constants.fog[2][2] = bpmem.fogRange.K[4].HI / 256.0f; + // TODO: Shouldn't this be EFBToScaledXf? + constants.fog[1][0] = ScreenSpaceCenter; + constants.fog[1][1] = (float)Renderer::EFBToScaledX((int)(2.0f * xfregs.viewport.wd)); + constants.fog[1][2] = bpmem.fogRange.K[4].HI / 256.0f; } else { - constants.fog[2][0] = 0; - constants.fog[2][1] = 1; - constants.fog[2][2] = 1; + constants.fog[1][0] = 0; + constants.fog[1][1] = 1; + constants.fog[1][2] = 1; } dirty = true; @@ -270,9 +271,9 @@ void PixelShaderManager::SetTexCoordChanged(u8 texmapid) void PixelShaderManager::SetFogColorChanged() { - constants.fog[0][0] = bpmem.fog.color.r / 255.0f; - constants.fog[0][1] = bpmem.fog.color.g / 255.0f; - constants.fog[0][2] = bpmem.fog.color.b / 255.0f; + constants.fogcolor[0] = bpmem.fog.color.r; + constants.fogcolor[1] = bpmem.fog.color.g; + constants.fogcolor[2] = bpmem.fog.color.b; dirty = true; } @@ -280,17 +281,17 @@ void PixelShaderManager::SetFogParamChanged() { if (!g_ActiveConfig.bDisableFog) { - constants.fog[1][0] = bpmem.fog.a.GetA(); - constants.fog[1][1] = (float)bpmem.fog.b_magnitude / 0xFFFFFF; - constants.fog[1][2] = bpmem.fog.c_proj_fsel.GetC(); - constants.fog[1][3] = (float)(1 << bpmem.fog.b_shift); + constants.fog[0][0] = bpmem.fog.a.GetA(); + constants.fog[0][1] = (float)bpmem.fog.b_magnitude / 0xFFFFFF; + constants.fog[0][2] = bpmem.fog.c_proj_fsel.GetC(); + constants.fog[0][3] = (float)(1 << bpmem.fog.b_shift); } else { - constants.fog[1][0] = 0; - constants.fog[1][1] = 1; - constants.fog[1][2] = 0; - constants.fog[1][3] = 1; + constants.fog[0][0] = 0; + constants.fog[0][1] = 1; + constants.fog[0][2] = 0; + constants.fog[0][3] = 1; } dirty = true; } -- cgit v1.2.3 From 4bf57565e8ce462a5272c45490abaf3ddac21a00 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sun, 27 Oct 2013 13:57:40 +0100 Subject: ShaderGen: Store light color uniforms as integers. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index b0b1ce7037..b9418b4afd 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -104,6 +104,7 @@ void PixelShaderManager::SetConstants() { if (nLightsChanged[0] >= 0) { + // TODO: Outdated comment // lights don't have a 1 to 1 mapping, the color component needs to be converted to 4 floats int istart = nLightsChanged[0] / 0x10; int iend = (nLightsChanged[1] + 15) / 0x10; @@ -112,10 +113,10 @@ void PixelShaderManager::SetConstants() for (int i = istart; i < iend; ++i) { u32 color = *(const u32*)(xfmemptr + 3); - constants.plights[5*i][0] = ((color >> 24) & 0xFF) / 255.0f; - constants.plights[5*i][1] = ((color >> 16) & 0xFF) / 255.0f; - constants.plights[5*i][2] = ((color >> 8) & 0xFF) / 255.0f; - constants.plights[5*i][3] = ((color) & 0xFF) / 255.0f; + constants.plight_colors[i][0] = (color >> 24) & 0xFF; + constants.plight_colors[i][1] = (color >> 16) & 0xFF; + constants.plight_colors[i][2] = (color >> 8) & 0xFF; + constants.plight_colors[i][3] = (color) & 0xFF; xfmemptr += 4; for (int j = 0; j < 4; ++j, xfmemptr += 3) @@ -125,11 +126,11 @@ void PixelShaderManager::SetConstants() fabs(xfmemptr[1]) < 0.00001f && fabs(xfmemptr[2]) < 0.00001f) // dist attenuation, make sure not equal to 0!!! - constants.plights[5*i+j+1][0] = 0.00001f; + constants.plights[4*i+j][0] = 0.00001f; else - constants.plights[5*i+j+1][0] = xfmemptr[0]; - constants.plights[5*i+j+1][1] = xfmemptr[1]; - constants.plights[5*i+j+1][2] = xfmemptr[2]; + constants.plights[4*i+j][0] = xfmemptr[0]; + constants.plights[4*i+j][1] = xfmemptr[1]; + constants.plights[4*i+j][2] = xfmemptr[2]; } } dirty = true; -- cgit v1.2.3 From 78623871f96deff1da5b164772095124af1a2047 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sun, 27 Oct 2013 14:07:13 +0100 Subject: ShaderGen: Store material uniforms as integers. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index b9418b4afd..8999247f24 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -326,10 +326,10 @@ void PixelShaderManager::SetMaterialColorChanged(int index, u32 color) { if (g_ActiveConfig.bEnablePixelLighting && g_ActiveConfig.backend_info.bSupportsPixelLighting) { - constants.pmaterials[index][0] = ((color >> 24) & 0xFF) / 255.0f; - constants.pmaterials[index][1] = ((color >> 16) & 0xFF) / 255.0f; - constants.pmaterials[index][2] = ((color >> 8) & 0xFF) / 255.0f; - constants.pmaterials[index][3] = ( color & 0xFF) / 255.0f; + constants.pmaterials[index][0] = (color >> 24) & 0xFF; + constants.pmaterials[index][1] = (color >> 16) & 0xFF; + constants.pmaterials[index][2] = (color >> 8) & 0xFF; + constants.pmaterials[index][3] = (color) & 0xFF; dirty = true; } } -- cgit v1.2.3 From 605b687af8a46cfb32e1a9599d3ddb47d2cdf02c Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sat, 23 Nov 2013 20:58:24 +0100 Subject: PixelShaderGen: Use integer math for z textures. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 8999247f24..79ff607b82 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -141,8 +141,8 @@ void PixelShaderManager::SetConstants() if (s_bViewPortChanged) { - constants.zbias[1][0] = xfregs.viewport.farZ / 16777216.0f; - constants.zbias[1][1] = xfregs.viewport.zRange / 16777216.0f; + constants.zbias[1][0] = xfregs.viewport.farZ; + constants.zbias[1][1] = xfregs.viewport.zRange; dirty = true; s_bViewPortChanged = false; } @@ -190,7 +190,7 @@ void PixelShaderManager::SetTexDims(int texmapid, u32 width, u32 height, u32 wra void PixelShaderManager::SetZTextureBias() { - constants.zbias[1][3] = bpmem.ztex1.bias/16777215.0f; + constants.zbias[1][3] = bpmem.ztex1.bias; dirty = true; } @@ -242,18 +242,18 @@ void PixelShaderManager::SetZTextureTypeChanged() constants.zbias[0][0] = 0; constants.zbias[0][1] = 0; constants.zbias[0][2] = 0; - constants.zbias[0][3] = 255.0f/16777215.0f; + constants.zbias[0][3] = 1; break; case TEV_ZTEX_TYPE_U16: - constants.zbias[0][0] = 255.0f/16777215.0f; + constants.zbias[0][0] = 1; constants.zbias[0][1] = 0; constants.zbias[0][2] = 0; - constants.zbias[0][3] = 65280.0f/16777215.0f; + constants.zbias[0][3] = 256; break; case TEV_ZTEX_TYPE_U24: - constants.zbias[0][0] = 16711680.0f/16777215.0f; - constants.zbias[0][1] = 65280.0f/16777215.0f; - constants.zbias[0][2] = 255.0f/16777215.0f; + constants.zbias[0][0] = 65536; + constants.zbias[0][1] = 256; + constants.zbias[0][2] = 1; constants.zbias[0][3] = 0; break; default: -- cgit v1.2.3 From 065919f599b86da9464a9f6a792e56ca87661540 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Mon, 16 Dec 2013 13:08:09 +0100 Subject: PixelShaderGen: Perform some of the fog calculations with integers. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 79ff607b82..91d74edf4a 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -85,15 +85,15 @@ void PixelShaderManager::SetConstants() // they are the coefficients from the center to the border of the screen // so to simplify I use the hi coefficient as K in the shader taking 256 as the scale // TODO: Shouldn't this be EFBToScaledXf? - constants.fog[1][0] = ScreenSpaceCenter; - constants.fog[1][1] = (float)Renderer::EFBToScaledX((int)(2.0f * xfregs.viewport.wd)); - constants.fog[1][2] = bpmem.fogRange.K[4].HI / 256.0f; + constants.fogf[0][0] = ScreenSpaceCenter; + constants.fogf[0][1] = (float)Renderer::EFBToScaledX((int)(2.0f * xfregs.viewport.wd)); + constants.fogf[0][2] = bpmem.fogRange.K[4].HI / 256.0f; } else { - constants.fog[1][0] = 0; - constants.fog[1][1] = 1; - constants.fog[1][2] = 1; + constants.fogf[0][0] = 0; + constants.fogf[0][1] = 1; + constants.fogf[0][2] = 1; } dirty = true; @@ -282,17 +282,17 @@ void PixelShaderManager::SetFogParamChanged() { if (!g_ActiveConfig.bDisableFog) { - constants.fog[0][0] = bpmem.fog.a.GetA(); - constants.fog[0][1] = (float)bpmem.fog.b_magnitude / 0xFFFFFF; - constants.fog[0][2] = bpmem.fog.c_proj_fsel.GetC(); - constants.fog[0][3] = (float)(1 << bpmem.fog.b_shift); + constants.fogf[1][0] = bpmem.fog.a.GetA(); + constants.fogi[0][1] = bpmem.fog.b_magnitude; + constants.fogf[1][2] = bpmem.fog.c_proj_fsel.GetC(); + constants.fogi[0][3] = bpmem.fog.b_shift; } else { - constants.fog[0][0] = 0; - constants.fog[0][1] = 1; - constants.fog[0][2] = 0; - constants.fog[0][3] = 1; + constants.fogf[1][0] = 0.f; + constants.fogi[0][1] = 1; + constants.fogf[1][2] = 0.f; + constants.fogi[0][3] = 1; } dirty = true; } -- cgit v1.2.3 From fa7173d0994e4195b18f312a3f11461d8197439b Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Wed, 29 Jan 2014 15:52:24 +0100 Subject: PixelShaderGen: Store tex scale as an integer. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 91d74edf4a..86111334ce 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -202,10 +202,10 @@ void PixelShaderManager::SetViewportChanged() void PixelShaderManager::SetIndTexScaleChanged(bool high) { - constants.indtexscale[high][0] = bpmem.texscale[high].getScaleS(0); - constants.indtexscale[high][1] = bpmem.texscale[high].getScaleT(0); - constants.indtexscale[high][2] = bpmem.texscale[high].getScaleS(1); - constants.indtexscale[high][3] = bpmem.texscale[high].getScaleT(1); + constants.indtexscale[high][0] = bpmem.texscale[high].ss0; + constants.indtexscale[high][1] = bpmem.texscale[high].ts0; + constants.indtexscale[high][2] = bpmem.texscale[high].ss1; + constants.indtexscale[high][3] = bpmem.texscale[high].ts1; dirty = true; } -- cgit v1.2.3 From 6e65e02c9eaaa967da769e8a16bc5eee81bb002d Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Mon, 3 Mar 2014 19:23:46 +0100 Subject: ConstantManager: Do not use single-element arrays. --- Source/Core/VideoCommon/PixelShaderManager.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Source/Core/VideoCommon/PixelShaderManager.cpp') diff --git a/Source/Core/VideoCommon/PixelShaderManager.cpp b/Source/Core/VideoCommon/PixelShaderManager.cpp index 86111334ce..7cbb155be2 100644 --- a/Source/Core/VideoCommon/PixelShaderManager.cpp +++ b/Source/Core/VideoCommon/PixelShaderManager.cpp @@ -283,16 +283,16 @@ void PixelShaderManager::SetFogParamChanged() if (!g_ActiveConfig.bDisableFog) { constants.fogf[1][0] = bpmem.fog.a.GetA(); - constants.fogi[0][1] = bpmem.fog.b_magnitude; + constants.fogi[1] = bpmem.fog.b_magnitude; constants.fogf[1][2] = bpmem.fog.c_proj_fsel.GetC(); - constants.fogi[0][3] = bpmem.fog.b_shift; + constants.fogi[3] = bpmem.fog.b_shift; } else { constants.fogf[1][0] = 0.f; - constants.fogi[0][1] = 1; + constants.fogi[1] = 1; constants.fogf[1][2] = 0.f; - constants.fogi[0][3] = 1; + constants.fogi[3] = 1; } dirty = true; } -- cgit v1.2.3