On Wednesday, October 07, 2015 10:04:06 AM Tapani Pälli wrote:
> Varyings can be considered inputs or outputs of a program only when
> SSO is in use. With multi-stage programs, inputs contain only inputs
> for first stage and outputs contains outputs of the final shader stage.
> 
> I've tested that fix works for Assault Android Cactus (demo version)
> and does not cause Piglit or CTS regressions in glGetProgramiv tests.
> 
> Following ES 3.1 CTS separate shader tests that do query properties
> of varyings in SSO shader programs pass:
> 
>    ES31-CTS.program_interface_query.separate-programs-vertex
>    ES31-CTS.program_interface_query.separate-programs-fragment
> 
> Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92122
> ---
>  src/glsl/linker.cpp | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
> index 6df8d61..a97b4ef 100644
> --- a/src/glsl/linker.cpp
> +++ b/src/glsl/linker.cpp
> @@ -3421,10 +3421,13 @@ build_program_resource_list(struct gl_shader_program 
> *shProg)
>     if (input_stage == MESA_SHADER_STAGES && output_stage == 0)
>        return;
>  
> -   if (!add_packed_varyings(shProg, input_stage))
> -      return;
> -   if (!add_packed_varyings(shProg, output_stage))
> -      return;
> +   /* Program interface needs to expose varyings in case of SSO. */
> +   if (shProg->SeparateShader) {
> +      if (!add_packed_varyings(shProg, input_stage))
> +         return;
> +      if (!add_packed_varyings(shProg, output_stage))
> +         return;
> +   }
>  
>     /* Add inputs and outputs to the resource list. */
>     if (!add_interface_variables(shProg, 
> shProg->_LinkedShaders[input_stage]->ir,
> 

Looks good to me, thanks Tapani!

Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to