mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
Avoid repeatedly asserting in SWG plugin when matrix indices don't match. Small change to the transform unit to avoid some unnecessary work. Check if Q is zero before dividing UV coordinates by it. Fixes issue 3454.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6504 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -730,7 +730,12 @@ const char *GeneratePixelShaderCode(DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType
|
||||
{
|
||||
// optional perspective divides
|
||||
if (xfregs.texcoords[i].texmtxinfo.projection == XF_TEXPROJ_STQ)
|
||||
WRITE(p, "uv%d.xy = uv%d.xy/uv%d.z;\n", i, i, i);
|
||||
{
|
||||
WRITE(p, "if (uv%d.z)", i);
|
||||
WRITE(p, " uv%d.xy = uv%d.xy / uv%d.z;\n", i, i, i);
|
||||
WRITE(p, "else");
|
||||
WRITE(p, " uv%d.xy = float2(0.0f, 0.0f);\n", i);
|
||||
}
|
||||
|
||||
WRITE(p, "uv%d.xy = uv%d.xy * "I_TEXDIMS"[%d].zw;\n", i, i, i);
|
||||
}
|
||||
|
Reference in New Issue
Block a user