<div dir="ltr"><div>Hello,</div><div><br></div><div>Thanks a lot for review.</div><div><br></div><div>Regards,</div><div>Andrii.<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 27, 2018 at 11:23 AM Tapani Pälli <<a href="mailto:tapani.palli@intel.com">tapani.palli@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi;<br>
<br>
On 10/31/18 5:05 PM, <a href="mailto:asimiklit.work@gmail.com" target="_blank">asimiklit.work@gmail.com</a> wrote:<br>
> From: Andrii Simiklit <<a href="mailto:andrii.simiklit@globallogic.com" target="_blank">andrii.simiklit@globallogic.com</a>><br>
> <br>
> I guess we should not expect a valid location for:<br>
> "patch out vec4 tcs_patch;"<br>
> because this output variable is declareted<br>
> without "layout (location=X)" and according to spec:<br>
>     "Not all active variables are assigned valid locations; the<br>
>      following variables will have an effective location of -1:<br>
> <br>
>        * uniforms declared as atomic counters;<br>
> <br>
>        * members of a uniform block;<br>
> <br>
>        * built-in inputs, outputs, and uniforms (starting with "gl_"); and<br>
> <br>
>        * inputs or outputs not declared with a "location" layout qualifier,<br>
>          except for vertex shader inputs and fragment shader outputs."<br>
<br>
<br>
I've verified that this is the way it is. It took me a while to digest <br>
this since the test uses PROGRAM_SEPARABLE here and the rules of the <br>
extension are quite complicated.<br>
<br>
However, I'm convinced now and this LGTM :)<br>
<br>
Reviewed-by: Tapani Pälli <<a href="mailto:tapani.palli@intel.com" target="_blank">tapani.palli@intel.com</a>><br>
<br>
<br>
> Also I fixed some conflicting comments.<br>
> <br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=108612" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=108612</a><br>
> Signed-off-by: Andrii Simiklit <<a href="mailto:andrii.simiklit@globallogic.com" target="_blank">andrii.simiklit@globallogic.com</a>><br>
> ---<br>
>   .../getprogramresourceiv.c                       | 16 ++++++++--------<br>
>   1 file changed, 8 insertions(+), 8 deletions(-)<br>
> <br>
> diff --git a/tests/spec/arb_program_interface_query/getprogramresourceiv.c b/tests/spec/arb_program_interface_query/getprogramresourceiv.c<br>
> index 2727a6c87..70212350e 100755<br>
> --- a/tests/spec/arb_program_interface_query/getprogramresourceiv.c<br>
> +++ b/tests/spec/arb_program_interface_query/getprogramresourceiv.c<br>
> @@ -360,7 +360,7 @@ static const struct subtest_t subtests[] = {<br>
>       { GL_REFERENCED_BY_GEOMETRY_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_FRAGMENT_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_COMPUTE_SHADER, 1, { 0 } },<br>
> -     { GL_LOCATION, 1, { -1 } }, /* valid index == anything but -1 */<br>
> +     { GL_LOCATION, 1, { -1 } }, /* invalid index */<br>
>       { 0, 0, { 0 } }}<br>
>    },<br>
>    { &prog_loc, GL_PROGRAM_INPUT, "input0", NULL, {<br>
> @@ -396,12 +396,12 @@ static const struct subtest_t subtests[] = {<br>
>       { GL_NAME_LENGTH, 1, { 6 } },<br>
>       { GL_TYPE, 1, { GL_FLOAT_VEC4 } },<br>
>       { GL_ARRAY_SIZE, 1, { 1 } },<br>
> -     { GL_OFFSET, 1, { -1 } }, /* valid index == anything but -1 */<br>
> +     { GL_OFFSET, 1, { -1 } }, /* invalid index */<br>
>       { GL_BLOCK_INDEX, 1, { -1 } }, /* invalid index */<br>
> -     { GL_ARRAY_STRIDE, 1, { -1 } }, /* valid index == anything but -1 */<br>
> +     { GL_ARRAY_STRIDE, 1, { -1 } }, /* invalid index */<br>
>       { GL_MATRIX_STRIDE, 1, { -1 } },<br>
>       { GL_IS_ROW_MAJOR, 1, { 0 } },<br>
> -     { GL_ATOMIC_COUNTER_BUFFER_INDEX, 1, { -1 } }, /* valid index == anything but -1 */<br>
> +     { GL_ATOMIC_COUNTER_BUFFER_INDEX, 1, { -1 } }, /* invalid index */<br>
>       { GL_REFERENCED_BY_VERTEX_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_TESS_CONTROL_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_TESS_EVALUATION_SHADER, 1, { 0 } },<br>
> @@ -421,8 +421,8 @@ static const struct subtest_t subtests[] = {<br>
>          { GL_REFERENCED_BY_GEOMETRY_SHADER, 1, { 0 } },<br>
>          { GL_REFERENCED_BY_FRAGMENT_SHADER, 1, { 0 } },<br>
>          { GL_REFERENCED_BY_COMPUTE_SHADER, 1, { 0 } },<br>
> -       { GL_LOCATION, 1, { 0 } }, /* valid index == anything but -1 */<br>
> -       { GL_LOCATION_INDEX, 1, { -1 } }, /* valid index == anything but -1 */<br>
> +       { GL_LOCATION, 1, { -1 } }, /* invalid index */<br>
> +       { GL_LOCATION_INDEX, 1, { -1 } }, /* invalid index */<br>
>          { GL_IS_PER_PATCH, 1, { 1 } },<br>
>          { 0, 0, { 0 } }}<br>
>   },<br>
> @@ -435,14 +435,14 @@ static const struct subtest_t subtests[] = {<br>
>       { GL_ARRAY_STRIDE, 1, { 0 } }, /* valid index == anything but -1 */<br>
>       { GL_MATRIX_STRIDE, 1, { 0 } },<br>
>       { GL_IS_ROW_MAJOR, 1, { 0 } },<br>
> -     { GL_ATOMIC_COUNTER_BUFFER_INDEX, 1, { -1 } }, /* valid index == anything but -1 */<br>
> +     { GL_ATOMIC_COUNTER_BUFFER_INDEX, 1, { -1 } }, /* invalid index */<br>
>       { GL_REFERENCED_BY_VERTEX_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_TESS_CONTROL_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_TESS_EVALUATION_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_GEOMETRY_SHADER, 1, { 0 } },<br>
>       { GL_REFERENCED_BY_FRAGMENT_SHADER, 1, { 1 } },<br>
>       { GL_REFERENCED_BY_COMPUTE_SHADER, 1, { 0 } },<br>
> -     { GL_LOCATION, 1, { -1 } }, /* valid index == anything but -1 */<br>
> +     { GL_LOCATION, 1, { -1 } }, /* invalid index */<br>
>       { 0, 0, { 0 } }}<br>
>    },<br>
>    { &prog_std, GL_UNIFORM_BLOCK, "fs_uniform_block", fs_std_fs_uniform_blk, {<br>
> <br>
</blockquote></div>