Fix some mistakes from the master merge; some cleanups.

This commit is contained in:
NeoBrainX 2013-04-29 19:37:32 +02:00
parent 5e6b712651
commit adab4e37f7
3 changed files with 8 additions and 19 deletions

View File

@ -254,7 +254,7 @@ const char *WriteLocation(API_TYPE ApiType)
} }
template<class T> template<class T>
void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType, u32 components) static void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType, u32 components)
{ {
// Non-uid template parameters will write to the dummy data (=> gets optimized out) // Non-uid template parameters will write to the dummy data (=> gets optimized out)
pixel_shader_uid_data dummy_data; pixel_shader_uid_data dummy_data;
@ -333,9 +333,9 @@ void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType, u
if (ApiType == API_OPENGL) if (ApiType == API_OPENGL)
{ {
out.Write("COLOROUT(ocol0);\n"); out.Write("COLOROUT(ocol0)\n");
if (dstAlphaMode == DSTALPHA_DUAL_SOURCE_BLEND) if (dstAlphaMode == DSTALPHA_DUAL_SOURCE_BLEND)
out.Write("COLOROUT(ocol1);\n"); out.Write("COLOROUT(ocol1)\n");
if (per_pixel_depth) if (per_pixel_depth)
out.Write("#define depth gl_FragDepth\n"); out.Write("#define depth gl_FragDepth\n");
@ -572,7 +572,7 @@ void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType, u
if (Pretest == AlphaTest::UNDETERMINED) if (Pretest == AlphaTest::UNDETERMINED)
WriteAlphaTest<T>(out, uid_data, ApiType, dstAlphaMode, per_pixel_depth); WriteAlphaTest<T>(out, uid_data, ApiType, dstAlphaMode, per_pixel_depth);
// the screen space depth value = far z + (clip z / clip w) * z range // the screen space depth value = far z + (clip z / clip w) * z range
if(ApiType == API_OPENGL || ApiType == API_D3D11) if(ApiType == API_OPENGL || ApiType == API_D3D11)
out.Write("float zCoord = rawpos.z;\n"); out.Write("float zCoord = rawpos.z;\n");
@ -584,7 +584,7 @@ void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType, u
} }
// Note: depth textures are disabled if early depth test is enabled // Note: depth textures are disabled if early depth test is enabled
uid_data.ztex.op = bpmem.ztex2.op; uid_data.ztex_op = bpmem.ztex2.op;
uid_data.per_pixel_depth = per_pixel_depth; uid_data.per_pixel_depth = per_pixel_depth;
uid_data.fog.fsel = bpmem.fog.c_proj_fsel.fsel; uid_data.fog.fsel = bpmem.fog.c_proj_fsel.fsel;

View File

@ -86,7 +86,7 @@ struct pixel_shader_uid_data
u32 bc3 : 3; u32 bc3 : 3;
u32 bi4 : 3; u32 bi4 : 3;
u32 bc4 : 3; u32 bc4 : 3;
void SetValues(int index, u32 texcoord, u32 texmap) inline void SetValues(int index, u32 texcoord, u32 texmap)
{ {
if (index == 0) { bc0 = texcoord; bi0 = texmap; } if (index == 0) { bc0 = texcoord; bi0 = texmap; }
else if (index == 1) { bc1 = texcoord; bi1 = texmap; } else if (index == 1) { bc1 = texcoord; bi1 = texmap; }
@ -180,7 +180,6 @@ struct pixel_shader_uid_data
u32 comp0 : 3; u32 comp0 : 3;
u32 comp1 : 3; u32 comp1 : 3;
u32 logic : 2; u32 logic : 2;
// TODO: ref???
u32 use_zcomploc_hack : 1; u32 use_zcomploc_hack : 1;
} alpha_test; } alpha_test;
@ -194,12 +193,7 @@ struct pixel_shader_uid_data
u32 hex : 4; u32 hex : 4;
} fog; } fog;
union { u32 ztex_op : 2;
struct {
u32 op : 2;
};
u32 hex : 2;
} ztex;
u32 per_pixel_depth : 1; u32 per_pixel_depth : 1;
u32 bHasIndStage : 16; u32 bHasIndStage : 16;

View File

@ -80,11 +80,6 @@ static void GenerateVertexShader(T& out, u32 components, API_TYPE api_type)
_assert_(bpmem.genMode.numcolchans == xfregs.numChan.numColorChans); _assert_(bpmem.genMode.numcolchans == xfregs.numChan.numColorChans);
bool is_d3d = (api_type & API_D3D9 || api_type == API_D3D11); bool is_d3d = (api_type & API_D3D9 || api_type == API_D3D11);
u32 lightMask = 0;
if (xfregs.numChan.numColorChans > 0)
lightMask |= xfregs.color[0].GetFullLightMask() | xfregs.alpha[0].GetFullLightMask();
if (xfregs.numChan.numColorChans > 1)
lightMask |= xfregs.color[1].GetFullLightMask() | xfregs.alpha[1].GetFullLightMask();
// uniforms // uniforms
if (g_ActiveConfig.backend_info.bSupportsGLSLUBO) if (g_ActiveConfig.backend_info.bSupportsGLSLUBO)
@ -112,7 +107,7 @@ static void GenerateVertexShader(T& out, u32 components, API_TYPE api_type)
{ {
out.Write("ATTRIN float4 rawpos; // ATTR%d,\n", SHADER_POSITION_ATTRIB); out.Write("ATTRIN float4 rawpos; // ATTR%d,\n", SHADER_POSITION_ATTRIB);
if (components & VB_HAS_POSMTXIDX) if (components & VB_HAS_POSMTXIDX)
out.Write("ATTRIN float posmtx; // ATTR%d,\n", SHADER_POSMTX_ATTRIB); out.Write("ATTRIN float fposmtx; // ATTR%d,\n", SHADER_POSMTX_ATTRIB);
if (components & VB_HAS_NRM0) if (components & VB_HAS_NRM0)
out.Write("ATTRIN float3 rawnorm0; // ATTR%d,\n", SHADER_NORM0_ATTRIB); out.Write("ATTRIN float3 rawnorm0; // ATTR%d,\n", SHADER_NORM0_ATTRIB);
if (components & VB_HAS_NRM1) if (components & VB_HAS_NRM1)