[Piglit] [PATCH 0/23] Port glsl1 Glean test to Piglit

Fabian Bieler fabianbieler at fastmail.fm
Thu Nov 23 20:44:28 UTC 2017


This series replaces the "glsl1" Glean test with some Piglit tests.

Most tests were replaced by shader_runner tests.

The tests for built-in-uniform state were extended.

Some of the preprocessor tests were modified to make them stricter.

To port some texture tests shader_runner had to be extended with
"texture rgbw 1D" and "texture rgbw 3D" commands.
These (and the underlying piglit-util-functions) are very basic and
don't allow for variable texture size or pixel format. If desired, I can
remedy that.

Some tests ("Global vars and initializers", "Global vars and
initializers (2)", "Swizzle", "Writemask") are pretty trivial. I doubt
they would break without some existing, more complex Piglit test
failing, too. However, I opted to port them regardless since I couldn't
find an existing simple Piglit test for the feature in question.

Attached is a list of all Glean GLSL subtests with the location of the
new or existing Piglit test that replaces it.

Patch 23 fixes an unrelated test.
-------------- next part --------------
# Simple tests
Primary plus secondary color				exist	general/attribs.c, shaders/glsl-routing.c
Global vars and initializers				new	spec/glsl-1.10/execution/global-vars-and-initializers.shader_test
Global vars and initializers (2)			new	spec/glsl-1.10/execution/global-vars-and-initializers-expression.shader_test
# Swizzle, writemask
Swizzle							new	spec/glsl-1.10/execution/swizzle.shader_test
Swizzle (rgba)						new	spec/glsl-1.10/execution/swizzle-rgba.shader_test
Swizzle (stpq)						new	spec/glsl-1.10/execution/swizzle-stpq.shader_test
Writemask						new	spec/glsl-1.10/execution/writemask.shader_test
Swizzled writemask					new	spec/glsl-1.10/execution/swizzled-writemask.shader_test
Swizzled writemask (2)					new	spec/glsl-1.10/execution/swizzled-writemask-split.shader_test
Swizzled writemask (rgba)				new	spec/glsl-1.10/execution/swizzled-writemask-rgba.shader_test
Swizzled writemask (stpq)				new	spec/glsl-1.10/execution/swizzled-writemask-stpq.shader_test
Swizzled expression					new	spec/glsl-1.10/execution/swizzled-expression.shader_test
Swizzle in-place					exits	shaders/glsl-fs-swizzle-1.shader_test
Swizzled swizzle					exits	spec/glsl-1.10/execution/vs-swizzle-swizzle-rhs.shader_test
Swizzled swizzled swizzle				new	spec/glsl-1.10/execution/swizzled-swizzled-swizzle.shader_test
# Z-write
gl_FragDepth writing					exist	spec/glsl-1.10/execution/fragdepth.c
# Basic arithmetic
chained assignment					new	spec/glsl-1.10/execution/chained-assignment.shader_test
# built-in functions
cross() function, in-place				exist	shaders/glsl-fs-cross-2.shader_test, shaders/glsl-vs-cross-2.shader_test, shaders/glsl-vs-cross.shader_test
# Flow Control
sequence (comma) operator				new	spec/glsl-1.10/execution/sequence-operator.shader_test
# Logic operators
&& operator, short-circuit				new	spec/glsl-1.10/execution/and-operator-short-circuit.shader_test
|| operator, short-circuit				new	spec/glsl-1.10/execution/or-operator-short-circuit.shader_test
# GL state refs
GL state variable reference (gl_FrontMaterial.ambient)	new	spec/glsl-1.10/execution/built-in-uniform-state.c
GL state variable reference (gl_LightSource[0].diffuse)	new	spec/glsl-1.10/execution/built-in-uniform-state.c
GL state variable reference (diffuse product)		new	spec/glsl-1.10/execution/built-in-uniform-state.c
GL state variable reference (point size)		new	spec/glsl-1.10/execution/built-in-uniform-state.c
GL state variable reference (point attenuation)		new	spec/glsl-1.10/execution/built-in-uniform-state.c
linear fog						new	spec/glsl-1.10/execution/linear-fog.c
built-in constants					new	spec/glsl-1.10/execution/built-in-constants.shader_test
# Texture functions
texture2D()						exist	shaders/glsl-fs-texture2d.shader_test
texture2D(), computed coordinate			new	spec/glsl-1.10/execution/texture2D-computed-coordinate.shader_test
texture2D(), with bias					exist	shaders/glsl-fs-texture2d-bias.shader_test
2D Texture lookup with explicit lod (Vertex shader)	exist	shaders/glsl-fs-texturelod-01.shader_test
texture2DProj()						exist	shaders/glsl-fs-texture2dproj.shader_test
texture1D()						new	spec/glsl-1.10/execution/texture1D.shader_test
texture3D()						new	spec/glsl-1.10/execution/texture3D.shader_test
texture3D(), computed coord				new	spec/glsl-1.10/execution/texture3D-computed-coord.shader_test
shadow2D(): 1						exist	spec/glsl-1.10/execution/samplers/glsl-fs-shadow2D-*.shader_test
shadow2D(): 2						exist	spec/glsl-1.10/execution/samplers/glsl-fs-shadow2D-*.shader_test
shadow2D(): 3						exist	spec/glsl-1.10/execution/samplers/glsl-fs-shadow2D-*.shader_test
shadow2D(): 4						exist	spec/glsl-1.10/execution/samplers/glsl-fs-shadow2D-*.shader_test
# Function calls
nested function calls (1)				new	spec/glsl-1.10/execution/nested-function-calls.shader_test
nested function calls (2)				exist	shaders/glsl-fs-functions-3.shader_test
nested function calls (3)				new	spec/glsl-1.10/execution/nested-function-calls-same-function.shader_test
TPPStreamCompiler::assignOperands			new	spec/glsl-1.10/compiler/struct/assign-immediata-to-const.frag
# Matrix tests
matrix column check (1)					new	spec/glsl-1.10/execution/built-in-matrix-state.c
matrix column check (2)					new	spec/glsl-1.10/execution/built-in-matrix-state.c
matrix, vector multiply (1)				new	spec/glsl-1.10/execution/matrix-vector-multiply-scale.shader_test
matrix, vector multiply (2)				new	spec/glsl-1.10/execution/matrix-vector-multiply-rhs.shader_test
matrix, vector multiply (3)				new	spec/glsl-1.10/execution/matrix-vector-multiply-lhs.shader_test
uniform matrix						new	spec/glsl-1.10/execution/uniform-matrix.shader_test
uniform matrix, transposed				new	spec/glsl-1.10/execution/uniform-matrix-transposed.c
# Struct tests
struct (1)						new	spec/glsl-1.10/execution/struct-multiple-instances.shader_test
struct (2)						new	spec/glsl-1.10/execution/struct-array.shader_test
struct (3)						new	spec/glsl-1.10/execution/struct.shader_test
struct (4)						new	spec/glsl-1.10/execution/struct-nested.shader_test
# Preprocessor tests
Preprocessor test 1 (#if 0)				new	spec/glsl-1.10/preprocessor/if-0.shader_test
Preprocessor test 2 (#if 1)				new	spec/glsl-1.10/preprocessor/if-1.shader_test
Preprocessor test 3 (#if ==)				new	spec/glsl-1.10/preprocessor/if-eq.shader_test
Preprocessor test 4 (#if 1, #define macro)		new	spec/glsl-1.10/preprocessor/if-1-define-macro.shader_test
Preprocessor test 5 (#if 1, #define macro)		new	spec/glsl-1.10/preprocessor/if-1-define-nested-macro.shader_test
Preprocessor test 6 (#if 0, #define macro)		new	spec/glsl-1.10/preprocessor/if-0-define-macro.shader_test
Preprocessor test 7 (multi-line #define)		new	spec/glsl-1.10/preprocessor/multi-line-define.shader_test
Preprocessor test 8 (#ifdef)				new	spec/glsl-1.10/preprocessor/ifdef.shader_test
Preprocessor test 9 (#ifndef)				new	spec/glsl-1.10/preprocessor/ifndef.shader_test
Preprocessor test 10 (#if defined())			new	spec/glsl-1.10/preprocessor/if-defined.shader_test
Preprocessor test 11 (#elif)				new	spec/glsl-1.10/preprocessor/elif-1.shader_test
Preprocessor test 12 (#elif)				new	spec/glsl-1.10/preprocessor/elif-2.shader_test
Preprocessor test 13 (nested #if)			new	spec/glsl-1.10/preprocessor/nested-if-1.shader_test
Preprocessor test 14 (nested #if)			new	spec/glsl-1.10/preprocessor/nested-if-2.shader_test
Preprocessor test 15 (nested #if, #elif)		new	spec/glsl-1.10/preprocessor/nested-if-elif.shader_test
Preprocessor test (extension test 1)			new	spec/glsl-1.10/preprocessor/extension-defined.shader_test
Preprocessor test (extension test 2)			new	spec/glsl-1.10/preprocessor/extension-if-1.shader_test
Preprocessor test (extension test 3)			new	spec/glsl-1.10/preprocessor/bogus-extension-test.frag
Preprocessor test (11)					new	spec/glsl-1.10/preprocessor/not-defined.shader_test
# Illegal shaders
undefined variable					new	spec/glsl-1.10/compiler/undefined-variable.frag
if (boolean-scalar) check				new	spec/glsl-1.10/compiler/if-boolean-scalar-check.frag
break with no loop					new	spec/glsl-1.10/compiler/break-with-no-loop.frag
continue with no loop					new	spec/glsl-1.10/compiler/continue-with-no-loop.frag
illegal assignment					new	spec/glsl-1.10/compiler/illegal-assignment.frag
syntax error check (1)					new	spec/glsl-1.10/compiler/two-immediate-float-constant-without-operator.frag
syntax error check (2)					new	spec/glsl-1.10/compiler/main-without-return-type.frag
syntax error check (3)					new	spec/glsl-1.10/compiler/assignment-without-rhs.frag
TIntermediate::addUnaryMath				new	spec/glsl-1.10/compiler/undefined-variable-in-selection-operator.frag
# Other new GLSL 1.20, 1.30 features (just parse/compile tests)
GLSL 1.30 precision qualifiers				new	spec/glsl-1.30/compiler/precision-qualifiers/multiple-precision-float.frag
GLSL 1.20 invariant, centroid qualifiers		new	spec/glsl-1.20/compiler/qualifiers/multiple-invariant-centroid-vec4.frag
# Check behaviour of inf/nan
Divide by zero						dropped	was commented out in glean
# Illegal link test
gl_Position not written check				new	spec/glsl-1.10/linker/gl_Position-not-written-check.shader_test
varying var mismatch					new	spec/glsl-1.10/linker/varying-var-mismatch.shader_test
varying read but not written				new	spec/glsl-1.10/linker/varying-read-but-not-written.shader_test
texcoord varying					new	spec/glsl-1.10/linker/texcoord-varying.shader_test


More information about the Piglit mailing list