VideoCommon: Only use interface blocks when geometry shaders are supported.

This commit is contained in:
Jules Blok 2014-12-17 09:18:40 +01:00
parent 1af3d8447a
commit 69df23f725
3 changed files with 22 additions and 10 deletions

View File

@ -88,8 +88,6 @@ void GeometryShaderManager::SetTexCoordChanged(u8 texmapid)
void GeometryShaderManager::DoState(PointerWrap &p)
{
p.Do(dirty);
if (p.GetMode() == PointerWrap::MODE_READ)
{
// Reload current state from global GPU state

View File

@ -317,6 +317,8 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T
// is always inside the primitive.
// Without MSAA, this flag is defined to have no effect.
uid_data->stereo = g_ActiveConfig.iStereoMode > 0;
if (g_ActiveConfig.backend_info.bSupportsGeometryShaders)
{
out.Write("in VertexData {\n");
out.Write("\tcentroid VS_OUTPUT o;\n");
@ -324,6 +326,11 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T
out.Write("\tflat int layer;\n");
out.Write("};\n");
}
else
{
out.Write("centroid in VS_OUTPUT o;\n");
}
out.Write("void main()\n{\n");

View File

@ -72,9 +72,16 @@ static inline void GenerateVertexShader(T& out, u32 components, API_TYPE api_typ
out.Write("in float%d tex%d; // ATTR%d,\n", hastexmtx ? 3 : 2, i, SHADER_TEXTURE0_ATTRIB + i);
}
if (g_ActiveConfig.backend_info.bSupportsGeometryShaders)
{
out.Write("out VertexData {\n"
"\tcentroid VS_OUTPUT o;\n"
"};\n");
}
else
{
out.Write("centroid out VS_OUTPUT o; \n");
}
out.Write("void main()\n{\n");
}