[Piglit] [PATCH 4/4] glsl-1.30: Verify that gl_Frag{Color, Data} and a function out can be written

Chad Versace chad.versace at linux.intel.com
Wed Dec 14 11:24:09 PST 2011


On 11/16/2011 01:50 PM, Ian Romanick wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
> 
> These tests try to trick the GLSL compiler by writing a built-in
> fragment shader output and a function "out" variable.  The compiler is
> supposed to generate an error if a built-in output and a user-defined
> shader "out" variable are written.  Writing to a built-in and a
> funciton "out" should be allowed.
> 
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
>  .../write-gl_FragColor-and-function-output.frag    |   29 ++++++++++++++++++++
>  .../write-gl_FragData-and-function-output.frag     |   29 ++++++++++++++++++++
>  2 files changed, 58 insertions(+), 0 deletions(-)
>  create mode 100644 tests/spec/glsl-1.30/compiler/fragment-outputs/write-gl_FragColor-and-function-output.frag
>  create mode 100644 tests/spec/glsl-1.30/compiler/fragment-outputs/write-gl_FragData-and-function-output.frag

These tests look correct to me.
Reviewed-by: Chad Versace <chad.versace at linux.intel.com>

I'm having difficulty seeing the motivation for them, though. Unless the motivation
was a weakness in the compiler implementation that you identified while working on
this test series.

To wrap up this series, I think we also need tests that write to the out variables
as function out params. Like this:
   // expect_result: fail
   out vec4 frag_color;
   void f(out vec4 x) {
        x = vec4(1.0);
   }
   void main() {
       f(gl_FragColor);
       frag_color = vec4(1.0);
   }
You're more familiar with the linker than I. Do you also think we need these tests?

----
Chad Versace
chad.versace at linux.intel.com


More information about the Piglit mailing list