Hi, this patch is still unreviewed.
I'd welcome some help to get this into piglit with guarantees that the changes are OK. Dylan, could you give it a look? :) If there is nothing new by the end of this week, I will assume that all is OK and will proceed to land the patch. On Wed, 2016-07-06 at 14:40 +0300, Andres Gomez wrote: > Before, in every drawing we were having the same VBO values per vertex > to be compared against the values in the uniforms. Now, we also have > different values per vertex so we can be sure that it is truly its own > data. > > Signed-off-by: Andres Gomez <[email protected]> > --- > .../gen_vs_in_fp64/columns.shader_test.mako | 41 ++++++++++++--------- > .../gen_vs_in_fp64/regular.shader_test.mako | 43 > +++++++++++++--------- > 2 files changed, 49 insertions(+), 35 deletions(-) > > diff --git > a/generated_tests/templates/gen_vs_in_fp64/columns.shader_test.mako > b/generated_tests/templates/gen_vs_in_fp64/columns.shader_test.mako > index 2dfb723..f094a03 100644 > --- a/generated_tests/templates/gen_vs_in_fp64/columns.shader_test.mako > +++ b/generated_tests/templates/gen_vs_in_fp64/columns.shader_test.mako > @@ -48,7 +48,9 @@ GLSL >= ${glsl} > #extension GL_ARB_vertex_attrib_64bit : require > % endif > > -uniform ${mat.name} expected; > +% for vidx in range(4): > + uniform ${mat.name} expected${vidx}; > +% endfor > > in ${mat.name} value; > in vec3 piglit_vertex; > @@ -59,15 +61,18 @@ out vec4 fs_color; > > void main() > { > - gl_Position = vec4(piglit_vertex, 1.0); > - % for idx, column in enumerate(columns): > - % if column == 1: > - if (value[${idx}] != expected[${idx}]) { > - fs_color = RED; > - return; > - } > - ## XXX: should we break here? > - % endif > + gl_Position = vec4(piglit_vertex.x, piglit_vertex.y, 0.0, 1.0); > + % for vidx, vertex in enumerate(['-1.0', '0.0', '1.0', '2.0']): > + if (piglit_vertex.z == ${vertex}) { > + % for idx, column in enumerate(columns): > + % if column == 1: > + if (value[${idx}] != expected${vidx}[${idx}]) { > + fs_color = RED; > + return; > + } > + % endif > + % endfor > + } > % endfor > fs_color = GREEN; > } > @@ -90,11 +95,11 @@ piglit_vertex/float/vec3\ > % endfor > > % for d in range(len(dvalues)): > - % for vertex in ('-1.0 -1.0 0.0', ' 1.0 -1.0 0.0', ' 1.0 1.0 0.0', > '-1.0 1.0 0.0'): > + % for vidx, vertex in enumerate(['-1.0 -1.0 -1.0', ' 1.0 -1.0 0.0', ' > 1.0 1.0 1.0', '-1.0 1.0 2.0']): > ${vertex} \ > % for i in range(mat.columns): > % for j in range(mat.rows): > -${dvalues[(d + i * mat.rows + j) % len(dvalues)]} \ > +${dvalues[(d + i * mat.rows + j + vidx) % len(dvalues)]} \ > % endfor > \ > % endfor > @@ -105,13 +110,15 @@ ${dvalues[(d + i * mat.rows + j) % len(dvalues)]} \ > [test] > % for d in range(len(dvalues)): > > - uniform ${mat.name} expected\ > - % for i in range(mat.columns): > - % for j in range(mat.rows): > - ${dvalues[(d + i * mat.rows + j) % len(dvalues)]}\ > + % for vidx in range(4): > + uniform ${mat.name} expected${vidx}\ > + % for i in range(mat.columns): > + % for j in range(mat.rows): > + ${dvalues[(d + i * mat.rows + j + vidx) % len(dvalues)]}\ > + % endfor > % endfor > - % endfor > > + % endfor > clear color 0.0 0.0 1.0 0.0 > clear > draw arrays GL_TRIANGLE_FAN ${d * 4} 4 > diff --git > a/generated_tests/templates/gen_vs_in_fp64/regular.shader_test.mako > b/generated_tests/templates/gen_vs_in_fp64/regular.shader_test.mako > index b6fab62..5620cbe 100644 > --- a/generated_tests/templates/gen_vs_in_fp64/regular.shader_test.mako > +++ b/generated_tests/templates/gen_vs_in_fp64/regular.shader_test.mako > @@ -50,7 +50,9 @@ GL_MAX_VERTEX_ATTRIBS >= ${num_vs_in} > % endif > > % for idx, in_type in enumerate(in_types): > - uniform ${in_type.name} expected${idx}${'[{}]'.format(arrays[idx]) if > arrays[idx] - 1 else ''}; > + % for vidx in range(4): > + uniform ${in_type.name} > expected${idx}${vidx}${'[{}]'.format(arrays[idx]) if arrays[idx] - 1 else ''}; > + % endfor > % endfor > % for idx, in_type in enumerate(in_types): > in ${in_type.name} value${idx}${'[{}]'.format(arrays[idx]) if arrays[idx] > - 1 else ''}; > @@ -63,13 +65,16 @@ out vec4 fs_color; > > void main() > { > - gl_Position = vec4(piglit_vertex, 1.0); > - % for idx, in_type in enumerate(in_types): > - if (value${idx} != expected${idx}) { > - fs_color = RED; > - return; > - } > - ## XXX: should this have a break? > + gl_Position = vec4(piglit_vertex.x, piglit_vertex.y, 0.0, 1.0); > + % for vidx, vertex in enumerate(['-1.0', '0.0', '1.0', '2.0']): > + if (piglit_vertex.z == ${vertex}) { > + % for idx, in_type in enumerate(in_types): > + if (value${idx} != expected${idx}${vidx}) { > + fs_color = RED; > + return; > + } > + % endfor > + } > % endfor > fs_color = GREEN; > } > @@ -101,7 +106,7 @@ void main() > % endif > > % for d in range(len(gl_types_values['double'])): > - % for vertex in ('-1.0 -1.0 0.0', ' 1.0 -1.0 0.0', ' 1.0 1.0 0.0', > '-1.0 1.0 0.0'): > + % for vidx, vertex in enumerate(['-1.0 -1.0 -1.0', ' 1.0 -1.0 0.0', ' 1.0 > 1.0 1.0', '-1.0 1.0 2.0']): > % for idx, in_type in enumerate(in_types): > % if idx == position_order - 1: > ${vertex} \ > @@ -109,7 +114,7 @@ void main() > % for i in range(arrays[idx]): > % for j in range(in_type.columns): > % for k in range(in_type.rows): > - ${gl_types_values[gl_types[idx]][(d + (i * in_type.columns + j) > * in_type.rows + k) % len(gl_types_values[gl_types[idx]])]} \ > + ${gl_types_values[gl_types[idx]][(d + (i * in_type.columns + j) > * in_type.rows + k + vidx) % len(gl_types_values[gl_types[idx]])]} \ > % endfor > \ > % endfor > @@ -125,16 +130,18 @@ void main() > [test] > % for d in range(len(gl_types_values['double'])): > > - % for idx, in_type in enumerate(in_types): > - % for i in range(arrays[idx]): > - uniform ${in_type.name} expected${idx}${'[{}]'.format(i) if > arrays[idx] > 1 else ''}\ > - % for j in range(in_type.columns): > - % for k in range(in_type.rows): > - ## Careful: these are the values for the VBO type, not the uniform > type. If we use the hex format they should match or the run will fail. > - ${gl_types_values[gl_types[idx]][(d + (i * in_type.columns + j) * > in_type.rows + k) % len(gl_types_values[gl_types[idx]])]}\ > + % for vidx in range(4): > + % for idx, in_type in enumerate(in_types): > + % for i in range(arrays[idx]): > + uniform ${in_type.name} expected${idx}${vidx}${'[{}]'.format(i) if > arrays[idx] > 1 else ''}\ > + % for j in range(in_type.columns): > + % for k in range(in_type.rows): > + ## Careful: these are the values for the VBO type, not the > uniform type. If we use the hex format they should match or the run will fail. > + ${gl_types_values[gl_types[idx]][(d + (i * in_type.columns + j) > * in_type.rows + k + vidx) % len(gl_types_values[gl_types[idx]])]}\ > + % endfor > % endfor > - % endfor > > + % endfor > % endfor > % endfor > clear color 0.0 0.0 1.0 0.0 -- Br, Andres _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
