blob: 8ce470a6b1410a3e05c29a7aeb28cbebec0faa2b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
Crucible: a Vulkan testsuite
cru·ci·ble
ˈkro͞osəb(ə)l/
noun
[literal] a ceramic or metal container in which metals or other substances
may be melted or subjected to very high temperatures.
[symbolic] a place or occasion of severe test or trial.
ex: "the crucible of combat"
Feature Summary
===============
- Crucible requires no window system, as all tests run headless. To allow
inspection of test images, tests may optionally dumping them to PNG files.
(See option '--dump' in crucible-run.1.txt).
- The test runner and the tests themselves reside in different processes. This
protects the test runner from crashing tests.
- Crucible can run each test as a separate process, providing better isolation
between tests and thus improving reproducibility of results. (See option
'--isolation' in crucible-run.1.txt).
- Crucible can also run each test as a separate thread in a single process,
providing better testing of concurrent use of Vulkan. (See option
'--isolation' in crucible-run.1.txt).
- Tests are based on comparison of reference images to actual images.
Most reference images are PNG files committed into the source repository or
generated at build-time. Some are generated at runtime with CPU rasterization.
- Tests can optionally dump their reference images and actual images to PNG
files to a temporary directory, allowing easy inspection when debugging
failing tests. (See option '--dump' in crucible-run.1.txt).
Supported Platforms
===================
- Crucible targets version 0.138.2 of vulkan.h.
- Crucible requires a C11 compiler. This language requirement may be lowered to
C99 for the sake of portability. (The language requirement will *not* be
lowered to C90).
- Operating Systems
- Linux: Crucible has been exclusively developed on Fedora 22. Porting to other
Linux distributions should require only minimal effort consisting of
generalizing some header and library names. Crucible is independent of window
system.
- Other Unixen: Porting to Mac OS X or Android should be straightforward, as
Crucible mostly conforms to POSIX.
- Non-Unixy: Patches welcome.
- Hardware and Drivers
- Intel: Crucible has been exclusively developed against Intel's Mesa
drivers for Broadwell and Ivybridge. (That is, the drivers directly
developed by Intel, not by LunarG).
- Other: Not yet tested.
License
=======
Crucible is opensource software. See the LICENSE file for details.
|