dx11: oit depth pass needs the palette for PT polygons
Punch-through polys may use a palette, which is needed for alpha testing Issue #467
This commit is contained in:
parent
8f01ef90cf
commit
d7abfc688c
|
@ -137,7 +137,7 @@ struct DX11OITRenderer : public DX11Renderer
|
||||||
|
|
||||||
int clip_rect[4] = {};
|
int clip_rect[4] = {};
|
||||||
TileClipping clipmode = GetTileClip(gp->tileclip, matrices.GetViewportMatrix(), clip_rect);
|
TileClipping clipmode = GetTileClip(gp->tileclip, matrices.GetViewportMatrix(), clip_rect);
|
||||||
bool gpuPalette = false;
|
bool gpuPalette = gp->texture != nullptr ? gp->texture->gpuPalette : false;
|
||||||
// Two volumes mode only supported for OP and PT
|
// Two volumes mode only supported for OP and PT
|
||||||
bool two_volumes_mode = (gp->tsp1.full != (u32)-1) && Type != ListType_Translucent;
|
bool two_volumes_mode = (gp->tsp1.full != (u32)-1) && Type != ListType_Translucent;
|
||||||
bool useTexture;
|
bool useTexture;
|
||||||
|
@ -146,15 +146,16 @@ struct DX11OITRenderer : public DX11Renderer
|
||||||
if (pass == DX11OITShaders::Depth)
|
if (pass == DX11OITShaders::Depth)
|
||||||
{
|
{
|
||||||
useTexture = Type == ListType_Punch_Through ? gp->pcw.Texture : false;
|
useTexture = Type == ListType_Punch_Through ? gp->pcw.Texture : false;
|
||||||
pixelShader = shaders.getShader(useTexture,
|
pixelShader = shaders.getShader(
|
||||||
useTexture,
|
useTexture,
|
||||||
|
gp->tsp.UseAlpha,
|
||||||
gp->tsp.IgnoreTexA,
|
gp->tsp.IgnoreTexA,
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
2,
|
2,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
gpuPalette,
|
||||||
gp->pcw.Gouraud,
|
gp->pcw.Gouraud,
|
||||||
useTexture,
|
useTexture,
|
||||||
clipmode == TileClipping::Inside,
|
clipmode == TileClipping::Inside,
|
||||||
|
@ -167,7 +168,6 @@ struct DX11OITRenderer : public DX11Renderer
|
||||||
bool color_clamp = gp->tsp.ColorClamp && (pvrrc.fog_clamp_min.full != 0 || pvrrc.fog_clamp_max.full != 0xffffffff);
|
bool color_clamp = gp->tsp.ColorClamp && (pvrrc.fog_clamp_min.full != 0 || pvrrc.fog_clamp_max.full != 0xffffffff);
|
||||||
|
|
||||||
int fog_ctrl = config::Fog ? gp->tsp.FogCtrl : 2;
|
int fog_ctrl = config::Fog ? gp->tsp.FogCtrl : 2;
|
||||||
gpuPalette = gp->texture != nullptr ? gp->texture->gpuPalette : false;
|
|
||||||
useTexture = gp->pcw.Texture;
|
useTexture = gp->pcw.Texture;
|
||||||
|
|
||||||
pixelShader = shaders.getShader(
|
pixelShader = shaders.getShader(
|
||||||
|
|
Loading…
Reference in New Issue