[Piglit] [PATCH] arb_gpu_shader_fp64: expand get uniform even further.
Dave Airlie
airlied at gmail.com
Sun Oct 11 20:12:33 PDT 2015
On 12 October 2015 at 13:05, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Sun, Oct 11, 2015 at 11:02 PM, Dave Airlie <airlied at gmail.com> wrote:
>> From: Dave Airlie <airlied at redhat.com>
>>
>> Ilia pointed out the fix patch didn't go far enough, so add
>> some tests to cover more cases, specifically:
>>
>> a) reading from a dvec4 into a float
>> b) reading from a vec4 into doubles.
>>
>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>> ---
>> .../arb_gpu_shader_fp64/execution/getuniformdv.c | 31 +++++++++++++++++++---
>> 1 file changed, 27 insertions(+), 4 deletions(-)
>>
>> diff --git a/tests/spec/arb_gpu_shader_fp64/execution/getuniformdv.c b/tests/spec/arb_gpu_shader_fp64/execution/getuniformdv.c
>> index 8cda7f4..5f7d85e 100644
>> --- a/tests/spec/arb_gpu_shader_fp64/execution/getuniformdv.c
>> +++ b/tests/spec/arb_gpu_shader_fp64/execution/getuniformdv.c
>> @@ -50,6 +50,7 @@ static const char vs_text[] =
>> "uniform s1 s;\n"
>> "uniform double d2; \n"
>> "uniform float f1; \n"
>> + "uniform vec4 fv1; \n"
>> "uniform uint ui1; \n"
>> "uniform int i1; \n"
>> "uniform bool b1; \n"
>> @@ -59,6 +60,7 @@ static const char vs_text[] =
>> "{\n"
>> " gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n"
>> " dvec4 t = dvec4(s.a, s.b, s.c, s.d) * d1 + d2 + double(f1) + double(ui1) + double(i1) + double(b1);\n"
>> + " t += fv1.x + fv1.y + fv1.z + fv1.w;\n"
>> " t += v[0] + v[1] + v[2]; \n"
>> " color = vec4(t); \n"
>> "}\n";
>> @@ -81,8 +83,8 @@ piglit_init(int argc, char **argv)
>> {
>> GLuint vs, fs, prog;
>> GLint numUniforms, i;
>> - GLint expectedNum = 11;
>> - GLint loc_d1, loc_d2, loc_sa, loc_sd, loc_v1, loc_f1, loc_ui1, loc_i1, loc_b1;
>> + GLint expectedNum = 12;
>> + GLint loc_d1, loc_d2, loc_sa, loc_sd, loc_v1, loc_f1, loc_fv1, loc_ui1, loc_i1, loc_b1;
>> GLdouble v[4];
>> GLfloat f[4];
>> GLuint ui[4];
>> @@ -136,8 +138,11 @@ piglit_init(int argc, char **argv)
>> expectedType = GL_DOUBLE;
>> expectedSize = 1;
>> } else if (name[0] == 'f') {
>> - expectedType = GL_FLOAT;
>> - expectedSize = 1;
>> + if (name[1] == 'v')
>> + expectedType = GL_FLOAT_VEC4;
>> + else
>> + expectedType = GL_FLOAT;
>> + expectedSize = 1;
>> } else if (name[0] == 'i') {
>> expectedType = GL_INT;
>> expectedSize = 1;
>> @@ -170,6 +175,7 @@ piglit_init(int argc, char **argv)
>> loc_sd = glGetUniformLocation(prog, "s.d");
>> loc_v1 = glGetUniformLocation(prog, "v[1]");
>> loc_f1 = glGetUniformLocation(prog, "f1");
>> + loc_fv1 = glGetUniformLocation(prog, "fv1");
>> loc_ui1 = glGetUniformLocation(prog, "ui1");
>> loc_i1 = glGetUniformLocation(prog, "i1");
>> loc_b1 = glGetUniformLocation(prog, "b1");
>> @@ -179,6 +185,7 @@ piglit_init(int argc, char **argv)
>> glUniform1d(loc_sd, 20.0);
>> glUniform4dv(loc_v1, 1, vVals);
>> glUniform1f(loc_f1, 40.0);
>> + glUniform4f(loc_fv1, 40.0, 30.0, 20.0, 10.0);
>> glUniform1ui(loc_ui1, 100);
>> glUniform1i(loc_i1, -100);
>>
>> @@ -249,6 +256,15 @@ piglit_init(int argc, char **argv)
>> piglit_report_result(PIGLIT_FAIL);
>> }
>>
>> + glGetUniformfv(prog, loc_v1, f);
>
> loc_fv1 right?
No we want to read the dvec4 at loc_v1 into floats here.
So loc_v1 is correct.
Dave.
More information about the Piglit
mailing list