diff --git a/modules/gles31/functional/es31fGeometryShaderTests.cpp b/modules/gles31/functional/es31fGeometryShaderTests.cpp
index 6e374a5..e3b0891 100644
--- a/modules/gles31/functional/es31fGeometryShaderTests.cpp
+++ b/modules/gles31/functional/es31fGeometryShaderTests.cpp
@@ -3878,7 +3878,12 @@
 	// not linked -case (INVALID OP)
 	{
 		const tcu::ScopedLogSection section			(m_testCtx.getLog(), "NotLinkedProgram", "Shader program not linked");
-		const std::string			geometrySource	= "#version 310 es\nlayout (triangles) in;\n" + std::string(s_geometryBody);
+		const std::string			geometrySource	= "#version 310 es\n"
+													  "#extension GL_EXT_geometry_shader : require\n"
+													  "layout (triangles) in;\n"
+													  "layout (points, max_vertices = 3) out;\n"
+													  + std::string(s_geometryBody);
+
 
 		glu::Shader					vertexShader	(m_context.getRenderContext(), glu::SHADERTYPE_VERTEX);
 		glu::Shader					fragmentShader	(m_context.getRenderContext(), glu::SHADERTYPE_FRAGMENT);
diff --git a/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp b/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp
index 3aec886..9e40589 100644
--- a/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp
+++ b/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp
@@ -1877,7 +1877,6 @@
 		const glu::DataType		type			= m_spec.inputs[0].varType.getBasicType();
 		const glu::Precision	precision		= m_spec.inputs[0].varType.getPrecision();
 		const int				scalarSize		= glu::getDataTypeScalarSize(type);
-		const bool				signedZero		= supportsSignedZero(precision);
 
 		const int				mantissaBits	= getMinMantissaBits(precision);
 		const deUint32			maxUlpDiff		= getMaxUlpDiffFromBits(mantissaBits);
@@ -1888,7 +1887,7 @@
 			const int		in1			= ((const int*)inputs[1])[compNdx];
 			const float		out0		= ((const float*)outputs[0])[compNdx];
 			const float		refOut0		= ldexp(in0, in1);
-			const deUint32	ulpDiff		= signedZero ? getUlpDiff(out0, refOut0) : getUlpDiffIgnoreZeroSign(out0, refOut0);
+			const deUint32	ulpDiff		= getUlpDiffIgnoreZeroSign(out0, refOut0);
 
 			const int		inExp		= tcu::Float32(in0).exponent();
 
