<Test name="lines_4_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
+ <Test name="wide_lines_4_samples_dfdx">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="wide_lines_4_samples_dfdy">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="wide_lines_4_samples_fwidth">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
<Test name="points_4_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_8_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
+ <Test name="wide_lines_8_samples_dfdx">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="wide_lines_8_samples_dfdy">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="wide_lines_8_samples_fwidth">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
<Test name="points_8_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
<Test name="lines_max_samples_fwidth">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
+ <Test name="wide_lines_max_samples_dfdx">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="wide_lines_max_samples_dfdy">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
+ <Test name="wide_lines_max_samples_fwidth">
+ <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+ </Test>
<Test name="points_max_samples_dfdx">
<TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
</Test>
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_4_samples_fwidth
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdx
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_dfdy
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_4_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_4_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdx
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_max_samples_fwidth
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdx
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy
+dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_fwidth
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdx
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_dfdy
dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_max_samples_fwidth
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.mediump_*
dEQP-GLES31.functional.shaders.builtin_functions.precision.atan2.highp_*
-# Bug 22180525
-dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_*_samples_*
-
# Bug 22302334
dEQP-GLES31.functional.shaders.builtin_functions.precision.acosh.highp_*
dEQP-GLES31.functional.shaders.builtin_functions.precision.atanh.highp_*
static bool hasNeighborWithColor (const tcu::Surface& surface, int x, int y, tcu::RGBA color, tcu::RGBA threshold)
{
- static const IVec2 s_neighbors[] =
- {
- IVec2(-1, -1),
- IVec2( 0, -1),
- IVec2(+1, -1),
- IVec2(-1, 0),
- IVec2(+1, 0),
- IVec2(-1, +1),
- IVec2( 0, +1),
- IVec2(+1, +1)
- };
-
const int w = surface.getWidth();
const int h = surface.getHeight();
- for (int sample = 0; sample < DE_LENGTH_OF_ARRAY(s_neighbors); sample++)
+ for (int dx = -1; dx < 2; dx++)
+ for (int dy = -1; dy < 2; dy++)
{
- const IVec2 pos = IVec2(x, y) + s_neighbors[sample];
+ const IVec2 pos = IVec2(x + dx, y + dy);
+
+ if (dx == 0 && dy == 0)
+ continue;
if (de::inBounds(pos.x(), 0, w) && de::inBounds(pos.y(), 0, h))
{
if (nonZeroDeriv)
numNonZeroDeriv += 1;
- if ((!isBg && !isFg) || // Neither of valid colors (ignoring blue channel that has derivate)
- (nonZeroDeriv && !neighborBg)) // Has non-zero derivate, but sample not at primitive edge
+ if ((!isBg && !isFg) || // Neither of valid colors (ignoring blue channel that has derivate)
+ (nonZeroDeriv && !neighborBg && !isFg)) // Has non-zero derivate, but sample not at primitive edge or inside primitive
numInvalidPixels += 1;
if (isFg)