- 01 Apr, 2019 1 commit
-
-
Marek Olšák authored
v2: test glGetIntegerv after every every change of the thread count spaces -> tabs
-
- 29 Mar, 2019 7 commits
-
-
Eric Anholt authored
Besides code removal, this fixes behavior if test_format was to return PIGLIT_WARN on some tests but not others. Reviewed-by:
Jordan Justen <jordan.l.justen@intel.com>
-
Eric Anholt authored
Reviewed-by:
Tapani Pälli <tapani.palli@intel.com>
-
Eric Anholt authored
I wanted to fix up some type-punning warnings and was surprised to see we didn't have this yet. Reviewed-by:
Tapani Pälli <tapani.palli@intel.com>
-
Eric Anholt authored
The shared one is a more complete implementation of half-float packing. Untested, since Mesa doesn't support the extension. Reviewed-by:
Tapani Pälli <tapani.palli@intel.com>
-
Andres Gomez authored
From the GL_ARB_program_interface_query spec v.20: " When a program is linked, the GL builds a list of /active resources/ for each interface. Examples of active resources include variables, interface blocks, and subroutines used by shader code. Resources referenced in shader code are considered /active/ unless the compiler and linker can conclusively determine that they have no observable effect on the results produced by the executable code of the program. For example, variables might be considered inactive if they are declared but not used in executable code, used only in a clause of an "if" statement that would never be executed, used only in functions that are never called, or used only in computations of temporary variables having no effect on any shader output. In cases where the compiler or linker cannot make a conclusive determination, any resource referenced by shader code will be considered active. The set of active resources on for any interface is implementation-dependent because it depends on various analysis and optimizations performed by the compiler and linker." Therefore, although the determination of the active resources is implementation dependent, it is clear that not making any kind of use in the shader code will, most probably, make the compiler/linker determine that the resource is inactive. Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Martin Peres <martin.peres@linux.intel.com>
-
Andres Gomez authored
And also redefined built-ins that are not used. From Section 7.4.1 (Shader Interface Matching) of the OpenGL 4.60 spec: " To use any built-in input or output in the gl_PerVertex block in separable program objects, shader code must redeclare that block prior to use. A separable program will fail to link if: * it contains multiple shaders of a single type with different redeclarations of this built-in block; or * any shader uses a built-in block member not found in the redeclaration of that block. There is one exception to this rule described below. As described above, an exact interface match requires matching built-in input and output blocks. At an interface between two non-fragment shader stages, the gl_PerVertex input and output blocks are considered to match if and only if the block members match exactly in name, type, qualification, and declaration order. At an interface involving the fragment shader stage, the presence or absence of any built-in output does not affect interface matching." Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Martin Peres <martin.peres@linux.intel.com>
-
Andres Gomez authored
From Section 7.4.1 (Shader Interface Matching) of the OpenGL 4.60 spec: " To use any built-in input or output in the gl_PerVertex block in separable program objects, shader code must redeclare that block prior to use. A separable program will fail to link if: * it contains multiple shaders of a single type with different redeclarations of this built-in block; or * any shader uses a built-in block member not found in the redeclaration of that block. There is one exception to this rule described below. As described above, an exact interface match requires matching built-in input and output blocks. At an interface between two non-fragment shader stages, the gl_PerVertex input and output blocks are considered to match if and only if the block members match exactly in name, type, qualification, and declaration order. At an interface involving the fragment shader stage, the presence or absence of any built-in output does not affect interface matching." Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Martin Peres <martin.peres@linux.intel.com>
-
- 26 Mar, 2019 1 commit
-
-
Vinson Lee authored
no-error.c: In function ‘check_no_error’: no-error.c:37:3: error: ‘GLX_CONTEXT_OPENGL_NO_ERROR_ARB’ undeclared (first use in this function) GLX_CONTEXT_OPENGL_NO_ERROR_ARB, 1, ^ Fixes: 4991384f ("glx: add test for GLX_ARB_create_context_no_error") Signed-off-by:
Vinson Lee <vlee@freedesktop.org> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- 22 Mar, 2019 1 commit
-
-
Andres Gomez authored
Fixes: db98d3a7 ("arb_enhanced_layouts: corrected multiple comments") Suggested-by:
Timothy Arceri <tarceri@itsqueeze.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
- 21 Mar, 2019 1 commit
-
-
Timothy Arceri authored
This test for a crash in Mesa seen in an Assasins Creed Odyssey shader. Reviewed-by:
Andres Gomez <agomez@igalia.com>
-
- 20 Mar, 2019 8 commits
-
-
Andres Gomez authored
From the GL_ARB_enhanced_layouts spec: " No aliasing in output buffers is allowed: It is a compile-time or link-time error to specify variables with overlapping transform feedback offsets." v2: added forgotten check_link. Cc: Timothy Arceri <tarceri@itsqueeze.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Andres Gomez authored
Additional check to address a bug in mesa in which a stride which is a divisor of the declared offset for an overflowing varying won't fail. From the GL_ARB_enhanced_layouts spec: " It is a compile-time or link-time error to have any *xfb_offset* that overflows *xfb_stride*, whether stated on declarations before or after the *xfb_stride*, or in different compilation units." Cc: Timothy Arceri <tarceri@itsqueeze.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Andres Gomez authored
New tests for component aliasing with duplicated inputs which match the same output variable in the previous stage. From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.60 spec: " Location aliasing is causing two variables or block members to have the same location number. Component aliasing is assigning the same (or overlapping) component numbers for two location aliases. (Recall if component is not used, components are assigned starting with 0.) With one exception, location aliasing is allowed only if it does not cause component aliasing; it is a compile-time or link-time error to cause component aliasing." From Section 7.4.1 (Shader Interface Matching) of the OpenGL 4.60 spec: " * An output variable is considered to match an input variable in the subsequent shader if: – the two variables match in name, type, and qualification, and neither has a location qualifier, or – the two variables are declared with the same location and component layout qualifiers and match in type and qualification." Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Iago Toral Quiroga <itoral@igalia.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Juan A. Suarez <jasuarez@igalia.com>
-
Andres Gomez authored
There was a pre-existing test using "component = 0" with dvec3 which was not failing as it should. This was because the other tests checking for the usage of the component keyword with dvec3 and dvec4 were failing due to a different restriction: the component sequence was overflowing 3 and/or a double based type was using component 1 o 3. Now we fix them by using "component = 0" when need to fail and removing the keyword when need to succeed. From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.50 spec: " It is a compile-time error if this sequence of components gets larger than 3. A scalar double will consume two of these components, and a dvec2 will consume all four components available within a location. A dvec3 or dvec4 can only be declared without specifying a component." ... " It is a compile-time error to use component 1 or 3 as the beginning of a double or dvec2." Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Andres Gomez authored
Added tests which check component aliasing between types that have different bit widths. From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.60 spec: "Further, when location aliasing, the aliases sharing the location must have the same underlying numerical type and bit width (floating-point or integer, 32-bit versus 64-bit, etc.) and the same auxiliary storage and interpolation qualification. The one exception where component aliasing is permitted is for two input variables (not block members) to a vertex shader, which are allowed to have component aliasing. This vertex-variable component aliasing is intended only to support vertex shaders where each execution path accesses at most one input per each aliased component. Implementations are permitted, but not required, to generate link-time errors if they detect that every path through the vertex shader executable accesses multiple inputs aliased to any single component." Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Iago Toral Quiroga <itoral@igalia.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Juan A. Suarez <jasuarez@igalia.com>
-
Andres Gomez authored
Corrected several component aliasing tests which shouldn't be failing or were failing due to a different reason than the tested one: interpolation qualifiers mismatch. From Section 4.4.1 (Input Layout Qualifiers) of the GLSL 4.50 spec: " Further, when location aliasing, the aliases sharing the location must have the same underlying numerical type (floating-point or integer) and the same auxiliary storage and interpolation qualification." Cc: Timothy Arceri <tarceri@itsqueeze.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Juan A. Suarez <jasuarez@igalia.com>
-
Andres Gomez authored
Cc: Timothy Arceri <tarceri@itsqueeze.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Juan A. Suarez <jasuarez@igalia.com>
-
Andres Gomez authored
Cc: Timothy Arceri <tarceri@itsqueeze.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Juan A. Suarez <jasuarez@igalia.com>
-
- 19 Mar, 2019 6 commits
-
-
Andres Gomez authored
New tests to check that an unused input varying, which would be matched based on its explicit location, won't cause a link failure if there is no matching output variable. From the ARB_separate_shader_objects spec v.25: " * An output variable is considered to match an input variable in the subequent shader if: * the two variables match in name, type, and qualification; or * the two variables are declared with the same location layout qualifier and match in type and qualification." ... " For program objects containing multiple shaders, LinkProgram will check for mismatches on interfaces between shader stages in the program being linked and generate a link error if a mismatch is detected. A link error will be generated if any statically referenced input variable or block does not have a matching output." Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Iago Toral Quiroga <itoral@igalia.com> Cc: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Cc: Tapani Pälli <tapani.palli@intel.com> Cc: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Andres Gomez authored
New tests for location overlap with scalars, doubles and for duplicated inputs which match the same output variable in the previous stage. From the ARB_separate_shader_objects spec v.25: " * An output variable is considered to match an input variable in the subequent shader if: * the two variables match in name, type, and qualification; or * the two variables are declared with the same location layout qualifier and match in type and qualification." ... " A program will fail to link if any two non-vertex shader input variables are assigned to the same location." Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Iago Toral Quiroga <itoral@igalia.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Andres Gomez authored
New tests to check that, with separable program objects, interface matching by name or location are still checked at link time between the inner interfaces existing inside the program. From the ARB_separate_shader_objects spec v.25: " With separable program objects, interfaces between shader stages may involve the outputs from one program object and the inputs from a second program object. For such interfaces, it is not possible to detect mismatches at link time, because the programs are linked separately. When each such program is linked, all inputs or outputs interfacing with another program stage are treated as active. The linker will generate an executable that assumes the presence of a compatible program on the other side of the interface. If a mismatch between programs occurs, no GL error will be generated, but some or all of the inputs on the interface will be undefined." Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Iago Toral Quiroga <itoral@igalia.com> Cc: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Cc: Tapani Pälli <tapani.palli@intel.com> Cc: Ian Romanick <ian.d.romanick@intel.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Andres Gomez authored
Previuosly, this was overlooked asuming that, since they were SSOs, no inner interface matching check was needed. From the ARB_separate_shader_objects spec v.25: " With separable program objects, interfaces between shader stages may involve the outputs from one program object and the inputs from a second program object. For such interfaces, it is not possible to detect mismatches at link time, because the programs are linked separately. When each such program is linked, all inputs or outputs interfacing with another program stage are treated as active. The linker will generate an executable that assumes the presence of a compatible program on the other side of the interface. If a mismatch between programs occurs, no GL error will be generated, but some or all of the inputs on the interface will be undefined." Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Tapani Pälli <tapani.palli@intel.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Cc: Martin Peres <martin.peres@linux.intel.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Andres Gomez authored
Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Martin Peres <martin.peres@linux.intel.com> Signed-off-by:
Andres Gomez <agomez@igalia.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com>
-
Illia Iorin authored
In OpenGL 4.6 (Table 23.57: Implementation Dependent Vertex Shader Limits) specification said, that minimum value of MAX_VERTEX_ATOMIC_COUNTERS is 0. Therefore if we use them we have to check available count. Signed-off-by:
Illia Iorin <illia.iorin@globallogic.com> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
- 14 Mar, 2019 4 commits
-
-
Eric Engestrom authored
Signed-off-by:
Eric Engestrom <eric.engestrom@intel.com> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Jose Fonseca authored
With GitLab is now much easier to setup. Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Jose Fonseca authored
Newer CMake versions (in particular 3.13.3 currently used by default Appveyor machine) expects GLUT_glut_LIBRARY_RELEASE variable, instead of GLUT_glut_LIBRARY. Reviewed-by:
Brian Paul <brianp@vmware.com>
-
Tapani Pälli authored
We made some wrong assumptions about the format layout, this fixes input given to formats, input can be identical. v2: clear out 6 lsb from P010 and 4 lsb from P012 Fixes: 3ce4e483 "EGL_EXT_image_dma_buf_import: add P12, P16 format support" Signed-off-by:
Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com>
-
- 12 Mar, 2019 4 commits
-
-
Jason Ekstrand authored
Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Jason Ekstrand authored
Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
-
Grigori Goronzy authored
Same as the EGL test, but without testing GLES contexts. Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Grigori Goronzy authored
This test verifies context creation with the EGL_KHR_create_context_no_error extension, which includes interaction with debug and robustness flags. The test also verifies that the KHR_no_error mode is successfully enabled with a check of context flags. Both GL 2.0 and GLES2 are tested. Reviewed-by:
Eric Anholt <eric@anholt.net>
-
- 11 Mar, 2019 1 commit
-
-
Kenneth Graunke authored
The old version of the test assumed the compiler would generate a link error, but it's equally valid to generate a compile-time error. There isn't a great way to do this in shader_runner (which assumes shaders compile), or glslparsertest (which only works on a single shader, and GLSL ES requires both a VS and FS in order to link). So, we port the test to C. It's simpler than adding infrastructure. Reviewed-by:
Dylan Baker <dylan@pnwbakers.com> Reviewed-by:
Tapani Pälli <tapani.palli@intel.com>
-
- 08 Mar, 2019 1 commit
-
-
Eric Anholt authored
v2: Fold in winsys fbo binding bugfix that was reviewed on the ML, though the original test never was. v3: Use piglit_build_simple_program(), avoid & on bools (review by Jordan). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75207Reviewed-by:
Jordan Justen <jordan.l.justen@intel.com>
-
- 06 Mar, 2019 4 commits
-
-
Eric Anholt authored
The passthrough VS doesn't set a texcoord, so it could be anything. Reviewed-by:
Jordan Justen <jordan.l.justen@intel.com>
-
Eric Anholt authored
The x and y were swapped. Reviewed-by:
Jordan Justen <jordan.l.justen@intel.com>
-
Illia Iorin authored
This test checks that GL_ARB_indirect_parameters works correctly with GL_NV_conditional_render. Both extensions conditionally execute commands and on hardware level they could use the same flag/mechanism to do this so driver may fail to account their simultaneous usage. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108759Signed-off-by:
Illia Iorin <illia.iorin@gloaballogic.com> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Timothy Arceri authored
This tests unrolling of a loop with a single exit point but where the exact trip count is unknown, only the max iteration count is known. Here we make sure that the and condition won't be simplified into a min() by another opt pass.
-
- 01 Mar, 2019 1 commit
-
-
Ian Romanick authored
In Mesa, NIR has an optimization that will convert certain patterns into instructions that extract an individual byte from a larger integer. When extracting from a 64-bit value, the i965 compiler backend has some bugs emitting these instructions. These tests try to reproduce these problems, but only fs-ushr-and-mask.shader_test is able to trigger the failure. The optimization is not (yet) able to recognize the patterns from the other tests to generate the mishandled instructions. With those patterns added, all of these tests either fail or hit the assertion: src/intel/compiler/brw_ir_fs.h:295: fs_reg subscript(fs_reg, brw_reg_type, unsigned int): Assertion `(i + 1) * type_sz(type) <= type_sz(reg.type)' failed. Reviewed-by:
Matt Turner <mattst88@gmail.com> Cc: Jason Ekstrand <jason@jlekstrand.net>
-