mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
PixelShaderGen: Move constant multiplication to constant generation.
No need to do this within the shader per pixel if it can be done once.
This commit is contained in:
@ -137,13 +137,16 @@ void PixelShaderManager::SetDestAlpha()
|
||||
|
||||
void PixelShaderManager::SetTexDims(int texmapid, u32 width, u32 height)
|
||||
{
|
||||
float rwidth = 1.0f / (width * 128.0f);
|
||||
float rheight = 1.0f / (height * 128.0f);
|
||||
|
||||
// TODO: move this check out to callee. There we could just call this function on texture changes
|
||||
// or better, use textureSize() in glsl
|
||||
if (constants.texdims[texmapid][0] != 1.0f/width || constants.texdims[texmapid][1] != 1.0f/height)
|
||||
if (constants.texdims[texmapid][0] != rwidth || constants.texdims[texmapid][1] != rheight)
|
||||
dirty = true;
|
||||
|
||||
constants.texdims[texmapid][0] = 1.0f/width;
|
||||
constants.texdims[texmapid][1] = 1.0f/height;
|
||||
constants.texdims[texmapid][0] = rwidth;
|
||||
constants.texdims[texmapid][1] = rheight;
|
||||
}
|
||||
|
||||
void PixelShaderManager::SetZTextureBias()
|
||||
@ -238,8 +241,8 @@ void PixelShaderManager::SetZTextureTypeChanged()
|
||||
void PixelShaderManager::SetTexCoordChanged(u8 texmapid)
|
||||
{
|
||||
TCoordInfo& tc = bpmem.texcoords[texmapid];
|
||||
constants.texdims[texmapid][2] = (float)(tc.s.scale_minus_1 + 1);
|
||||
constants.texdims[texmapid][3] = (float)(tc.t.scale_minus_1 + 1);
|
||||
constants.texdims[texmapid][2] = (float)(tc.s.scale_minus_1 + 1) * 128.0f;
|
||||
constants.texdims[texmapid][3] = (float)(tc.t.scale_minus_1 + 1) * 128.0f;
|
||||
dirty = true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user