summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-05-11gl-1.0: Bitmap test that draws zelda hearts.bitmapLaura Ekstrand3-0/+221
2018-05-10glsl-uniform-initializer-7: Fixed uninitialized uniform.Mathias Fröhlich1-1/+1
This fixes a valgrind error in executing shader_runner on this test. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
2018-05-10ext_packed_float: Add a test that queries GL_RGBA_SIGNED_COMPONENTS_EXTBruce Merry3-0/+164
V2 (Timothy Arceri): - use piglit_get_gl_enum_name() - use ARRAY_SIZE() - set config.khr_no_error_support Reviewed-by: Brian Paul <brianp@vmware.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73096
2018-05-09tests/quick_shader.py: Fix test count of quick_shaderDylan Baker1-0/+3
This filter hasn't worked quite right since the XML profile conversion, the reason is that the assumption all filters had before the conversion was that they would be used once, which is no longer true. They'll be run at least twice now, once to get the count of tests, and once to run the tests. With the addition of the reset() method to the filter protocol, and the Filter class that calls it, we can set the seed in the random generator back to 42 (an arbitrary starting value), before it's run. This ensures that the generation of the count and running of the actual tests match. Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2018-05-09framework: make use of Filter.run in Profile classesDylan Baker1-16/+21
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2018-05-09framework: Add filters classDylan Baker1-3/+39
This class works like a list, but with an extra method that allows it to "reset" a filter. This will allow class based filters that need to be reset to have deterministic behavior to do so. Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2018-05-09framework: ensure that all tests are run before exitingDylan Baker1-2/+2
This is a bug that has existed for a long time, and I'm not really sure how we haven't hit this before honestly, I think that the reason this has worked is that we've always provided a concrete type to to pool.imap. The problem is that pool.imap is an iterator. If you don't walk the results then the program might exit before finishing. This seems to be especially true when running without -c or -1. Instead we'll write the loop, using pool.apply_async does basically the same thing (without the ability to use chunks), but with out exiting early. Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2018-05-09shader_runner: Support PIGLIT_DEFAULT_SIZE env varJordan Justen1-4/+8
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com>
2018-05-09framework-gl: Export window size override functionJordan Justen2-3/+6
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com>
2018-05-09framework: fix running with mixed concurrency (neither -c or -1)Dylan Baker1-2/+5
test_list is an iterator, you can't walk an iterator more than once. To solve this we use itertools.tee, which creates a shared buffer for the iterators to draw from. This fixes errors like: [000/480] Traceback (most recent call last): File "./piglit", line 178, in <module> main() File "./piglit", line 174, in main sys.exit(runner(args)) File "/home/user/piglit/framework/exceptions.py", line 51, in _inner func(*args, **kwargs) File "/home/user/piglit/framework/programs/run.py", line 370, in run backend.finalize({'time_elapsed': time_elapsed.to_json()}) File "/home/user/piglit/framework/backends/json.py", line 163, in finalize assert data['tests'] AssertionError Thanks Tomi for figuring out what was wrong with the original patch! CC: Tomi Sarvela <tomi.p.sarvela@intel.com> Tested-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
2018-05-09arb_internalformat_query2: test new ARB_ES3_compatibility internalformatsAlejandro Piñeiro12-14/+89
ARB_ES_compatibility add several compressed (and specific) internalformats. Those become part of 4.3. We try to be smart and only try them if the extension is available. In order to do that we differentiate the base (list of internalformats available when the extension was defined) and es3_compatibility formats, and concatenate to test them all only if needed. Reviewed-by: Antia Puentes <apuentes@igalia.com>
2018-05-09util-gl: add ARB_ES3_compatibility internalformats supportAlejandro Piñeiro1-0/+10
Values based on mesa format_info.h values. Reviewed-by: Antia Puentes <apuentes@igalia.com>
2018-05-09arb_internalformat_query2: use CompressedTexImage*D for specific compressed ↵Alejandro Piñeiro1-9/+118
formats Until right now we were using glTexImage*D for any compressed internalformat. That would only work always if the driver supports online compression for specific compressed internalformats. As it is not really easy to check which internalformats the driver supports online compression for, it is safer to use glCompressedTexImage*D for any specific internalformat, keeping glTexImage*D for the generic ones. v2: specific compressed internalformat GL_COMPRESSED_RED_RGTC1 was missing, minor tweaks (Antia) Reviewed-by: Antia Puentes <apuentes@igalia.com>
2018-05-08crucible: if a test has no XML output consider it a crashDylan Baker1-0/+10
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
2018-05-08crucible: use tempfiles to allow running with concurrencyDylan Baker1-6/+11
Because concurrency is nice. v2: - squash always remove tempfile into this (Juan) Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
2018-05-08crucible: fix getting values from piglit.confDylan Baker1-1/+1
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
2018-05-07ext_texture_norm16-render: refactor subtest executionTapani Pälli1-90/+93
Patch moves subtest execution in a separate function that returns total result for each format, this fixes issues in test with current pass/fail reporting. Also remove reporting from verify_contents_float, this caused duplicate subtest result reporting. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2018-05-03find_static_tests.py: fix python2 compatibilityDylan Baker1-1/+10
Because python2 uses bytes, but python3 uses unicode. CC: Michel Dänzer <michel.daenzer@amd.com> Fixes: d42d909cd754d0e2c41eec60f3a1015f2d882b95 ("tests: Add script to find all hand written test files") Tested-by: Brian Paul <brianp@vmware.com>
2018-05-03name no_error profile depen on shader generationDylan Baker1-1/+1
Since it includes shaders.
2018-05-03piglit-framework-gl: skip compat test when not supportedTimothy Arceri1-2/+9
OpenGL 3.1 is a little special when it comes to compatibility. If a 3.1 compat profile is requested by piglit and ARB_compatibility not supported waffle will end up creating a core profile for us. Here we make sure ARB_compatibility is supported when explicitly requesting a 3.1 compat profile from piglit. This allows us to avoid testing for ARB_compatibility in all GL 3.1 compat tests. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106277
2018-05-02framework: handle UnicodeDecodeErrorMarek Olšák1-0/+3
This happens due to LLVM printing colored text into stdout/stderr on error. Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2018-05-02deqp_egl: add support for mustpass listsNicolai Hähnle1-3/+7
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2018-05-02khr_gl45: add support for mustpass listsNicolai Hähnle1-10/+13
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2018-05-02framework: fix grouptools.commonprefix when len(args) == 1Nicolai Hähnle1-1/+1
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2018-05-01profile: use gz to compress profilesDylan Baker4-11/+13
This results in substantially smaller profiles and doesn't seem to affect runtime. v2: - install xml and xml.gz files. This is needed so that meta profiles will be installed. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01Generate xml for builtin profilesDylan Baker3-1/+98
This creates and installs xml for all builtin profiles. Using these profiles I see startup times of ~1 second as opposed to more than 10 with current master, and runtimes that drop by ~1 minute. v2: - Fix compilation with make. v1 only worked with ninja. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01tests: Add script to find all hand written test filesDylan Baker1-0/+74
Including asmparser, glslparser, shader, and program tests, which will be used by cmake to regenerate the appropriate xml whenever a new test is added. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01Add script to serialize profiles to XMLDylan Baker1-0/+149
This script loads a python module and creates an XML profiles. It will be used at build time to serialize the built-in profiles. It currently cannot serialize integrated suites (such as dEQP or IGC), but it could be extended to do so. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01opengl.py: Remove exported gl extensionsDylan Baker1-213/+122
This conflicts with the idea of serializing the tests at build time, since we can't assume that the build machine has the same features set as the machine that will run tests, we can't run such a filter. Since startup time is much faster and fast skip calculations are done at build time I hope that no one will miss this. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01tests/cl.py: fix out of tree serializationDylan Baker1-22/+45
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01fix asmparser test serialization for out of tree buildsDylan Baker1-1/+1
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01fix glslparser test for out of tree buildsDylan Baker2-8/+24
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01tests/glsl_parser_test.py: fix is_skip for serialized profilesDylan Baker2-17/+16
Currently is_skip() relies on runtime detection of which glslparsertest binaries are built, but we can't assume that at build time. Instead always assign the appropriate binary, and then check for the existence of that binary at run time. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01shader_tests: correctly generate xml during out of tree buildsDylan Baker2-8/+37
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01tests: use meta profilesDylan Baker17-171/+196
This is a rather sizeable commit, I'm sorry for that. Basically there was no clean way I could come up with to make the change from a single python file to multiple xml files. The reason we want this is to to avoid duplication amongst profiles (and very long build times), by allowing a single profile to be included in multiple other profiles. This means that the all profile is now composed of the "glslparser", "shader", and "opengl" (everything in all that's not glslparser, asmparser, or shader tests). Running `piglit run all foo` still produces the same results. This also allows us to mix native and non-native tests so that traditional targets like quick_cl still work. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01tests/quick: fix filtering of vs_in shader testsDylan Baker1-2/+3
This filter is incorrect as is, in that it can mask tests that it can remove tests it shouldn't, for example spec@arb_enhanced_layouts@arb_enhanced_layouts-transform-feedback-layout-qualifiers_vs_interface. Correcting this is problematic because it changes the way the filter works and filter will now remove different tests than it did before. However, it is necessary for a couple of reasons. 1) it's removing tests it shouldn't, 2) this series is going to split reverse the shader.py/all.py relationship, and this bug is going to surface there. The good news is that while this changes the specific tests run, at least on Intel hardware no failures are removed and no failures are added. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01py_modules: Add support for out of tree buildsDylan Baker1-3/+5
For out of tree builds we need to point at a TESTS_DIR that is in tree, and a GENERATED_TESTS dir that is out of tree. At no other time do we need to do this. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/profile: Add support for meta profilesDylan Baker1-2/+62
MetaProfiles are a single profile composed of more than one profile. This is designed to allow the old all-inclusive names to continue to exist without having to keep duplicates of each profile around. A metaprofile simply declares that it needs profiles a, b, and c and then runs those. This allows an "all" meta profile to include opengl, shader, and glslparser, for example. A metaprofile is allowed to include XML or python based profiles. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01profile: allow forcing python or xml loadingDylan Baker1-6/+15
This will be used during build time to allow profiles that modify other profiles to load XML instead of rebuilding. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01profile: Add support for loading xml based profilesDylan Baker2-5/+108
Which includes de-serialization on demand. This will vastly reduce the amount of resident memory that is necessary to hold the tests since test instances are made on demand, and can be garbage collected as soon as the run in complete. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/test: make CLProgramTester take relative pathsDylan Baker2-3/+3
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/test: make BuiltInConstantTest files relativeDylan Baker2-13/+18
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01tests/all: Make asmparser tests path relativeDylan Baker1-1/+2
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/test: use relative paths for GLSLParser testsDylan Baker2-5/+12
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/test: Make shader paths relativeDylan Baker2-8/+15
Because they need to be relative at build time for serialization. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/test: Add class for cl-program-testerDylan Baker2-13/+28
These tests need some special handling for serializing, since they take file paths as arguments. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/test/piglit_test: make cl_concurrency always a booleanDylan Baker1-2/+2
Just a nice cleanup. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework/test: Split multishader tooDylan Baker3-23/+59
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework: do the same for shader testDylan Baker3-32/+38
Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>
2018-05-01framework: use a class method for building test via parsingDylan Baker3-28/+34
Since the serialized tests wont need this path, build a generic constructor that this special constructor can leverage. Tested-by: Rafael Antognolli <rafael.antognolli@intel.com>