</Test>
</TestCase>
</TestSuite>
+ <TestSuite name="reflect">
+ <TestCase name="lowp_vertex">
+ <Test name="scalar">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
+ <TestCase name="lowp_fragment">
+ <Test name="scalar">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
+ <TestCase name="mediump_vertex">
+ <Test name="scalar">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
+ <TestCase name="mediump_fragment">
+ <Test name="scalar">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
+ <TestCase name="highp_vertex">
+ <Test name="scalar">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
+ <TestCase name="highp_fragment">
+ <Test name="scalar">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec2">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec3">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="vec4">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ </TestCase>
+ </TestSuite>
<TestSuite name="refract">
<TestCase name="lowp_vertex">
<Test name="scalar">
dEQP-GLES3.functional.shaders.builtin_functions.precision.faceforward.highp_fragment.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.faceforward.highp_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.faceforward.highp_fragment.vec4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_vertex.scalar
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_vertex.vec2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_vertex.vec3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_vertex.vec4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_fragment.scalar
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_fragment.vec2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_fragment.vec3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_fragment.vec4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_vertex.scalar
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_vertex.vec2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_vertex.vec3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_vertex.vec4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_fragment.scalar
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_fragment.vec2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_fragment.vec3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_fragment.vec4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.scalar
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.vec2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.vec3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.vec4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.scalar
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.vec2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.vec3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.refract.lowp_vertex.scalar
dEQP-GLES3.functional.shaders.builtin_functions.precision.refract.lowp_vertex.vec2
dEQP-GLES3.functional.shaders.builtin_functions.precision.refract.lowp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.mediump_fragment.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.atan.mediump_fragment.vec4
-# Bug 19408572
-dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.*
-
# Bug 18323060
dEQP-GLES3.functional.shaders.random.all_features.fragment.16
{
public:
typedef typename Reflect::Ret Ret;
+ typedef typename Reflect::Arg0 Arg0;
+ typedef typename Reflect::Arg1 Arg1;
typedef typename Reflect::ArgExprs ArgExprs;
string getName (void) const
}
protected:
- ExprP<Ret> doExpand (ExpandContext&, const ArgExprs& args) const
+ ExprP<Ret> doExpand (ExpandContext& ctx, const ArgExprs& args) const
{
- return args.a - (args.b * dot(args.b, args.a) * constant(2.0f));
+ const ExprP<Arg0>& i = args.a;
+ const ExprP<Arg1>& n = args.b;
+ const ExprP<float> dotNI = bindExpression("dotNI", ctx, dot(n, i));
+
+ return i - alternatives((n * dotNI) * constant(2.0f),
+ n * (dotNI * constant(2.0f)));
}
};