summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-01-31arb_shader_image_load_store: Import test for atomics with unused result.image-load-storeFrancisco Jerez3-0/+180
Test all image atomic built-in functions without using their return value to make sure that they aren't optimized out by the compiler accidentally and because some implementations may use different hardware instructions for the same atomic operation depending on whether the return value of the built-in is used or not.
2015-01-31arb_shader_image_load_store: Import image unit and uniform state tracking tests.Francisco Jerez3-0/+482
Test the image unit and image uniform binding commands and then check that the state query APIs return the expected values for all bound image units.
2015-01-31arb_shader_image_load_store: Import shader memory barrier tests.Francisco Jerez4-0/+226
Test the relative ordering of memory transactions before and after a call to the memoryBarrier() GLSL built-in.
2015-01-31arb_shader_image_load_store: Import built-in semantics tests.Francisco Jerez4-0/+401
Test that image built-in functions do what they are supposed to do by comparing their results with a simulation run on the CPU with similar inputs. The test is repeated for all built-ins, shader stages, formats and texture targets either sequentially or combinatorially depending on the --quick flag.
2015-01-31arb_shader_image_load_store: Import image aliasing test.Francisco Jerez3-0/+181
Test if the implementation is incorrectly assuming that different image uniforms point to disjoint locations in memory, which could lead to incorrect code transformations and break valid GLSL programs.
2015-01-31arb_shader_image_load_store: Import memory access qualifier test.Francisco Jerez3-0/+192
Test that no changes are observed when an optional image qualifier is omitted (e.g. access qualifiers may be omitted, format qualifiers may be omitted when the "writeonly" qualifier is present), and test several combinations of binding access modes and access qualifiers.
2015-01-31arb_shader_image_load_store: Import minimum maximum test.Francisco Jerez3-0/+78
2015-01-31arb_shader_image_load_store: Import test for the maximum texture size.Francisco Jerez4-0/+201
Test that images work as expected up to the maximum texture dimensions reported by the implementation for each target. The test is carried out one dimension at a time to avoid creating huge textures (a 16Kx16K RGBA32F texture is already 4GB), but this is not always possible because e.g. both dimensions of a cubemap necessarily have to be equal. There is a hard-coded limit for the total texture size (which is especially stringent in quick mode) to make sure that the implementation doesn't make us do anything stupid like creating a 32 GB cubemap array texture.
2015-01-31arb_shader_image_load_store: Import tests for the maximum of supported images.Francisco Jerez3-0/+276
Test that the limits of supported image units (GL_MAX_IMAGE_UNITS), per-shader image uniforms (GL_MAX_*_IMAGE_UNIFORMS), and combined image uniforms (GL_MAX_COMBINED_IMAGE_UNIFORMS) are true by setting up a GL pipeline that reaches some of the limits and checking that it renders as expected. v2: Don't assume that the implementation supports images on the vertex/tesselation/geometry shader.
2015-01-31arb_shader_image_load_store: Import test for mipmap level binding.Francisco Jerez3-0/+197
Test that image loads and stores land in the correct mipmap level of the texture when a level other than the first is bound to an image unit.
2015-01-31arb_shader_image_load_store: Import tests for layered and unlayered binding.Francisco Jerez3-0/+223
Test binding of individual layers from a layered texture and the simultaneous binding of all layers (layered binding). For textures targets that don't have multiple layers we just test that the layered and unlayered binding modes have no effect as required by the spec.
2015-01-31arb_shader_image_load_store: Import invalid and undefined image access tests.Francisco Jerez3-0/+487
Test a number of cases like reading or writing outside the limits of the image that the spec defines as being invalid either return zero or have no effect depending on the specific built-in. In addition test that other cases that according to the spec cause undefined results don't lead to program termination.
2015-01-31arb_shader_image_load_store: Import image array indexing test.Francisco Jerez3-0/+176
Test that indexing of image arrays using dynamically uniform expressions works as expected. v2: Add support for shader stages other than fragment.
2015-01-31arb_shader_image_load_store: Import host memory barrier tests.Francisco Jerez4-0/+1067
Add tests for the glMemoryBarrier() API which provides a way to serialize shader memory transactions issued by previous drawing commands with respect to subsequent GL commands. v2: Skip indirect draw and transform feedback tests when the extensions they rely on are not supported.
2015-01-31arb_shader_image_load_store: Import early_fragment_tests test.Francisco Jerez3-0/+300
The extension defines an input layout qualifier that allows the application to force early fragment tests for a specified shader program. This has several consequences that are verified by this test, including that the fragment shader is guaranteed not to be executed if the depth test fails, that the depth value computed by the fragment shader is ignored, and that fragments discarded during or after fragment shader execution are counted by occlusion queries.
2015-01-31arb_shader_image_load_store: Import dead fragments test.Francisco Jerez3-0/+251
Test that image stores and atomics have no effect when called from fragment shader invocations that aren't covered by a primitive or have been discarded.
2015-01-31arb_shader_image_load_store: Import memory coherency test.Francisco Jerez4-1/+234
Test the cache coherency of images declared as "coherent" or "volatile" when accessed from different combinations of dependent shader stages.
2015-01-31arb_shader_image_load_store: Import image format bitcasting test.Francisco Jerez3-0/+176
The ARB_shader_image_load_store extension allows the reinterpretation of the binary contents of an existing image as an image of a different compatible format. The resulting values should be predictable and are defined in terms of the usual GL pixel transfer operations. v2: Actually bind the image with the bitcasted format.
2015-01-31arb_shader_image_load_store: Import atomicity image built-in tests.Francisco Jerez3-0/+369
Import a number of tests intended to check if the read-modify-write built-in functions defined by the spec are carried out atomically. v2: Disable the locking imageAtomicExchange test and use a lockless algorithm instead to test the built-in. Avoids GPU hang on Intel hardware.
2015-01-31arb_shader_image_load_store: Add misc. image manipulation code and hook up ↵Francisco Jerez6-0/+784
to the build system.
2015-01-31arb_shader_image_load_store: Import grid execution helpers.Francisco Jerez2-0/+605
Define helper functions that are able to run a piece of GLSL code on an arbitrary shader stage (as of now VS, TCS, TES, GS, FS and CS are supported) for a given execution size. This makes every shader stage expose a consistent interface that looks like a sort of primitive two-dimensional compute grid, with the peculiarity that you can run several stages at the same time and chain the results of one stage into the arguments of the next. This is useful in cases where one needs to run the exact same test on a number of shader stages and using code generators or duplicating code would be inconvenient. v2: Fix crash when generate_program() is called with unsupported shader stage arguments.
2015-01-31arb_shader_image_load_store: Add common image metadata.Francisco Jerez2-0/+1129
Define helper data structures and functions to query several kinds of information for any supported image format, target or shader stage, like the matching pixel transfer type and format for a given image format, GLSL type information, error tolerance, maximum supported dimensions and samples for a given image dimensionality, number of supported image uniforms for a given shader stage, etc. This also defines the image_info data structure that aggregates some combination of image target, format and dimensions in a single object to avoid having to repeat the same three arguments constantly when working with images. v2: Encode per-image base datatype information in a struct instead of having separate switch-case statements spread over several query functions. Add comment explaining the reason why there are no specific semantics attached to image dimensions. (Ian)
2015-01-31util/shader: Define "nothrow" variant of piglit_compile_shader_text().Francisco Jerez2-2/+19
Define a variant of piglit_compile_shader_text() that doesn't call piglit_report_result() on failure killing the program, which is quite annoying for tests that expect a compilation to fail and for tests that are structured in a number of subtests, because a single sub-test failing to compile a shader will prevent the remaining tests from running. I guess this would ideally be the default behavior of piglit_compile_shader_text(), but with >300 callers in tree it seems rather difficult to change at this stage.
2015-01-30gbm: Use caca_flop to vertically flop the outputJordan Justen1-18/+2
Ken pointed out cucul_flop in the original libcaca patch, but going back to 2008-09-27, r2821, http://caca.zoy.org/browser/libcaca/trunk/caca/caca.h?rev=2821#L251 caca_flop seems to be preferred. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2015-01-30gbm: Fix off by 1 error in libcaca image flopJordan Justen1-2/+2
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2015-01-30sso: consume error in active-sampler-conflictTapani Pälli1-0/+2
Test currently fails because INVALID_OPERATION generated by program_pipeline_check_status is not read and piglit_check_gl_error is called for another call later. This change makes the test pass as expected. Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
2015-01-28gen_dispatch.py: silence errorDylan Baker1-1/+1
This script manipulates the python path to get at some modules, because of this pylint gives an error (as opposed to a warning) about not being able to import that module. This patch silences that error. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28gen_dispatch.py: Remove unnecessary parens from assert keywordDylan Baker1-4/+4
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
2015-01-28gen_dispatch.py: remove use of cmp.Dylan Baker2-40/+64
gen_dispatch.py contains a function used to sort Enums, and uses cmp. This patch moves that logic into the Enum class using rich comparison methods instead. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28gen_dispatch.py: sort imports into groupsDylan Baker1-2/+3
PEP8 specifies that imports should be sorted into groups, separated by a blank line. The first should by core modules, the second should be system wide modules, and the third local modules. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28gen_dispatch.py: remove unused importsDylan Baker1-4/+1
spotted by pylint Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28regsitry/gl.py: Make Error class inherit from ExceptionDylan Baker1-1/+1
In python 2 it is expected that errors descend from Exception, but there is no requirement that they do so, in python 3 it is required. This also is problematic because it makes the exception class an old style class, which has all the problems associated with old style classes. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28registry/gl.py: remove unused variableDylan Baker1-1/+0
This was spotted by pylint. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28registry/gl.py: Strip superfluous parens from the assert keywordDylan Baker1-27/+27
In C assert is a function and requires parens, in python it is a keyword, and doesn't require parens. This might not be that big of a deal, but if you put a comma in those parens then then argument becomes a tuple, which will not do what one intends. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28registry/gl.py: Replace __cmp__ methods with rich comparison methodsDylan Baker1-46/+70
In the days of yore python had a single magic method for comparison, __cmp__, which was called with the cmp() function. __cmp__ would return a negative number for less than, 0 for equal, and a positive for greater than. Then in python 2.1 this single method was replace by the "rich comparison methods", __lt__, __gt__, __le__, __ge__, __eq__, and __ne__. These methods provide a more fine grained way to compare objects. Finally, in 2.7 a class decorator was added (functools.total_ordering) which allows one to implement __eq__ and either __lt__ or __gt__, and it fills in the rest. So, why bother? Well, in python 2.1 cmp was deprecated, but in 3.0 it was removed. As we continue to look toward a future that includes python 3 not having features that bind us to python2.ancient is just a good plan. Thanks Chad for looking at this and realizing why my logic was failing. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28registry/gl.py: fix no-attribute errorDylan Baker1-1/+1
The Command class defines self.requirements, but not self.__requirements, but the vendor_namespace property checks self.__requirements. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28registry/gl.py: remove unused importDylan Baker1-1/+0
Spotted by pylint Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28piglit-displatch-gen.h.mako: sort commentsDylan Baker1-1/+1
Currently the comments are not sorted, and therefor not deterministic, which makes it very difficult to diff the output when trying to make changes and ensure no changes. With this change the order is deterministic, which solves the problem of using diff on the output. Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-28tests/igt.py: don't run tests if the environment check failedThomas Wood1-12/+7
Allow tests to be enumerated but not run if the environment check fails. This allows the piglit-print-commands utility to continue to work correctly, but prevents the tests from being run if the current environment will cause them to fail. This also helps prevent appending incorrect results to resumed test runs. Signed-off-by: Thomas Wood <thomas.wood@intel.com> Reviewed-by: Dylan Baker <baker.dylan.c@gmail.com>
2015-01-28results.py: avoid an attribute error when using the json moduleThomas Wood1-1/+1
Check for ValueError rather than JSONDecodeError because JSONDecodeError is only available when using the simplejson module. v2: just check for ValueError since it is a subclass of JSONDecodeError (Dylan Baker) Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-01-27glsl-fs-function-samplers: rename mix parameter to mixFactorBrian Paul1-2/+2
To avoid a compile failure on NVIDIA. The mix function parameter is hiding the built-in mix() function. The point of this test is not to exercise compile-time name resolution. Reviewed-by: <ian.d.romanick@intel.com>
2015-01-27Add a new shader attachment/link ordering test.Brian Paul2-0/+88
AFAICT, the GL and GLSL specs don't say anything about the significance of the order in which shaders are attached to a program object. For example, if there's two vertex shader A and B, it shouldn't matter if they're attached in order A,B or B,A. This pair of shader tests exercises that. Both pass with Mesa but the "b-a" case fails with NVIDIA. Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
2015-01-27README: update the list of test profilesDylan Baker1-7/+12
v2: - fix cpu.py message (Emil) - correct typo (deqp-gles3.py -> deqp_gles3.py) v3: - correct second occurrence typo (Emil) Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> (v1)
2015-01-27README: update documentation about paths and profilesDylan Baker1-3/+7
v2: - Add this patch after comments (Emil) Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-01-27Update documentation to be clear about using multiple profilesDylan Baker2-3/+9
Updates README and the help message to be clear about using multiple test profiles. v2: - Fix spelling error (Emil) Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> (v1)
2015-01-26grouptools.py: from_path should not return .Dylan Baker2-0/+9
Since groups cannot be '.' (ie: 'foo/./bar' is not valid), grouptools.from_path should not return '.', it should return '' Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-26deqp: (V5)Add option to run subset of external dEQP-GLES3Wang Shuo2-0/+41
Google have already added a subset of dEQP into Android CTS test, and we believe this part of dEQP have higher priority than the rest of dEQP test cases. The case list is stored at some xml files. Such as: com.drawelements.deqp.gles3.xml. It's git repo lives in the Android tree at [https://android.googlesource.com/platform/external/ \ deqp/+/master/android/cts/com.drawelements.deqp.gles3.xml] This patch is based on Chad's patch(Add test profile for external dEQP-GLES3 tests), and add an option to run the subset of dEQP-GLES3. The only differnce for the running method is: you need to set the environment variable PIGLIT_DEQP_MUSTPASS or the piglit.conf option deqp-gles3.mustpasslist,then it will run the subset of dEQP follow the test case list. If not set, it will still run the whole dEQP. Tested on Intel HSW. There are 45866 test cases for the whole dEQP and 37354 test cases for the subset of dEQP using Android CTS test case list. V2: 1.Update the link of get test case list file. 2.Using xml.etree.cElementTree module instead of re module. 3.Fix some Piglit style issue V3: 1.Update the output issue. 2.Fix some Piglit style issue. V4: 1.Fix some Piglit style issue. V5: 1.Fix some Piglit style issue. v6 (Dylan): - Remove trailing whitespace Signed-off-by: Wang Shuo <shuo.wang@intel.com> Reviewed-by: Dylan Baker <dylanx.c.baker@intel.com>
2015-01-26cl: Add exp testsMeng, Mengmeng1-1/+11
Signed-off-by: Meng Mengmeng <mengmeng.meng@intel.com> Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
2015-01-26cl: Fix tolerance for SP divisionJan Vesely1-3/+3
The specs say 2.5 ulp, but we only take integer values Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
2015-01-26cl: add log10 testJan Vesely1-1/+11
v2: Fix tolerance Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>