<div dir="ltr"><div dir="ltr">Thanks for reviewing and push)</div><div>Andrii.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 22, 2019 at 8:25 PM Ian Romanick <<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I made a couple small adjustments to the tests and pushed them.<br>
<br>
Thanks!<br>
<br>
On 2/15/19 5:43 AM, <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>
> The tests for a compiler which leads to mismatch between max_array_access<br>
> and the var type when the compiler tries to optimize unused ssbo instances.<br>
> This mismatch leads to crash because in some cases the type length is less<br>
> than the max_array_access field.<br>
> <br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=109532" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=109532</a><br>
> Signed-off-by: Andrii Simiklit <<a href="mailto:andrii.simiklit@globallogic.com" target="_blank">andrii.simiklit@globallogic.com</a>><br>
> ---<br>
>  .../compiler/unused-array-element.comp        | 34 +++++++++++++++++++<br>
>  .../compiler/unused-array-element.frag        | 32 +++++++++++++++++<br>
>  2 files changed, 66 insertions(+)<br>
>  create mode 100644 tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.comp<br>
>  create mode 100644 tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.frag<br>
> <br>
> diff --git a/tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.comp b/tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.comp<br>
> new file mode 100644<br>
> index 000000000..a5ec4d972<br>
> --- /dev/null<br>
> +++ b/tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.comp<br>
> @@ -0,0 +1,34 @@<br>
> +// [config]<br>
> +// expect_result: pass<br>
> +// glsl_version: 4.30<br>
> +// [end config]<br>
> +//<br>
> +//The tests for a compiler which leads to mismatch between max_array_access<br>
> +//and the var type when the compiler tries to optimize unused ssbo instances.<br>
> +//This mismatch leads to crash because in some cases the type length is less<br>
> +//than the max_array_access field.<br>
> +//<br>
> +#version 430<br>
> +<br>
> +layout(local_size_x = 1) in;<br>
> +<br>
> +layout(packed) buffer BlockA {<br>
> +   float a;<br>
> +} blockA[3];<br>
> +<br>
> +layout(packed) buffer BlockB {<br>
> +   float a;<br>
> +} blockB[2];<br>
> +<br>
> +layout(packed) buffer BlockC {<br>
> +   float a;<br>
> +} blockC[2];<br>
> +<br>
> +buffer Result {<br>
> +   float result;<br>
> +};<br>
> +<br>
> +void main()<br>
> +{<br>
> +   result = blockA[1].a + blockB[0].a + blockC[1].a;<br>
> +}<br>
> diff --git a/tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.frag b/tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.frag<br>
> new file mode 100644<br>
> index 000000000..8fdb1bf2e<br>
> --- /dev/null<br>
> +++ b/tests/spec/arb_shader_storage_buffer_object/compiler/unused-array-element.frag<br>
> @@ -0,0 +1,32 @@<br>
> +// [config]<br>
> +// expect_result: pass<br>
> +// glsl_version: 3.20<br>
> +// [end config]<br>
> +//<br>
> +//The tests for a compiler which leads to mismatch between max_array_access<br>
> +//and the var type when the compiler tries to optimize unused ssbo instances.<br>
> +//This mismatch leads to crash because in some cases the type length is less<br>
> +//than the max_array_access field.<br>
> +//<br>
> +#version 320 es<br>
> +<br>
> +precision mediump float;<br>
> +<br>
> +layout(packed) buffer BlockA {<br>
> +   float a;<br>
> +} blockA[3];<br>
> +<br>
> +layout(packed) buffer BlockB {<br>
> +   float a;<br>
> +} blockB[2];<br>
> +<br>
> +layout(packed) buffer BlockC {<br>
> +   float a;<br>
> +} blockC[2];<br>
> +<br>
> +out vec4 color;<br>
> +<br>
> +void main()<br>
> +{<br>
> +   color = vec4(blockA[1].a, blockB[0].a, blockC[1].a, 1.0);<br>
> +}<br>
> \ No newline at end of file<br>
> <br>
<br>
</blockquote></div></div>