|
| 1 | +# Examples and Tests |
| 2 | + |
| 3 | +The Nabla Examples are documentation-by-example and building blocks for our future Continuous Integration GPU Integration Tests. |
| 4 | + |
| 5 | +## Where can I find the makefiles or IDE projects/solutions? |
| 6 | + |
| 7 | +Given an example in folder `XY.ExampleName`, CMake will generate either a target or a separate makefile/project/solution called `examplename` (no number, always lowercase). |
| 8 | + |
| 9 | +Whenever CMake generates separate makefiles/solutions/projects, they will be generated in the `./examples_tests` under the build directory you supplied to CMake. |
| 10 | + |
| 11 | +**Samples are meant to be built into the `./bin` directory in the source (its git-ignored) and invoked with that Current Working Directory.** |
| 12 | + |
| 13 | +**WARNING:** If you're using an IDE different than Visual Studio you need to set the CWD correctly for when you start the example for Debugging! |
| 14 | + |
| 15 | +**WARNING:** Only generation of IDE projects by standalone CMake is supported, we do not use or rely on IDE integrations of CMake. |
| 16 | + |
| 17 | +## Maintenance Matrix |
| 18 | + |
| 19 | +In the future we expect this matrix to be kept up to date, live by our CI. |
| 20 | + |
| 21 | +_Examples numbered 00 are provisional and are not part of the example suite._ |
| 22 | + |
| 23 | +Y = Already Works |
| 24 | + |
| 25 | +B = Has a known bug |
| 26 | + |
| 27 | +W = Work-In-Progress, sample logic not complete or temporarily modifed |
| 28 | + |
| 29 | +S = Intended to be Supported (requires some work to port after an API change) |
| 30 | + |
| 31 | +N = No support |
| 32 | + |
| 33 | +| | Win32 OpenGL | Win32 OpenGL ES* | Win32 Vulkan | X11** OpenGL | X11** OpenGL ES | X11** Vulkan | Android OpenGL ES | Android Vulkan | Required CMake Options**** | |
| 34 | +|---------------------------------|--------------|------------------|--------------|--------------|-----------------|--------------|-------------------|----------------|---------------------------------------------------| |
| 35 | +| 01.HelloWorld | Y | Y | Y | S | S | S | Y | S | | |
| 36 | +| 02.ComputeShader | B | B | Y | B | B | S | B | S | | |
| 37 | +| 03.GPU_Mesh | S | S | S | S | S | S | S | S | | |
| 38 | +| 04.Keyframe | S | S | S | S | S | S | S | S | | |
| 39 | +| 05.NablaTutorialExample | Y | Y | Y | S | S | S | S | S | | |
| 40 | +| 06.MeshLoaders | Y | Y | Y | S | S | S | Y | Y | | |
| 41 | +| 07.SubpassBaking | S | S | S | S | S | S | S | S | | |
| 42 | +| FREE_SLOT | | | | | | | | | | |
| 43 | +| 09.ColorSpaceTest | W | W | W | W | W | W | W | W | | |
| 44 | +| 10.AllocatorTest | Y | Y | Y | S | S | S | N | N | | |
| 45 | +| 11.LoDSystem | Y | N | B | S | N | S | N | S | | |
| 46 | +| 12.glTF | W | N | W | W | N | W | N | W | COMPILE_WITH_GLTF_LOADER | |
| 47 | +| FREE_SLOT | | | | | | | | | | |
| 48 | +| 14.ComputeScan | B | N | B | S | N | S | N | S | | |
| 49 | +| FREE_SLOT | | | | | | | | | | |
| 50 | +| 16.OrderIndependentTransparency | B | B | B | S | S | S | S | S | | |
| 51 | +| 17.SimpleBulletIntegration | Y | N | Y | S | N | S | N | N | BUILD_BULLET | |
| 52 | +| 18.MitsubaLoader | S | N | S | S | N | S | N | N | BUILD_MITSUBA_LOADER | |
| 53 | +| FREE_SLOT | | | | | | | | | | |
| 54 | +| 20.Megatexture | S | S | S | S | S | S | N | S | | |
| 55 | +| 21.DynamicTextureIndexing | S | N | S | S | N | S | N | S | | |
| 56 | +| 22.RaytracedAO | N | N | W | N | N | W | N | N | BUILD_MITSUBA_LOADER | |
| 57 | +| 23.Autoexposure | Y | Y | Y | S | S | S | N | S | | |
| 58 | +| FREE_SLOT | | | | | | | | | | |
| 59 | +| 25.Blur | S | N | S | S | N | S | N | S | | |
| 60 | +| FREE_SLOT | | | | | | | | | | |
| 61 | +| 27.PLYSTLDemo | Y | Y | Y | S | S | S | N | N | COMPILE_WITH_STL_LOADER & COMPILE_WITH_PLY_LOADER | |
| 62 | +| FREE_SLOT | | | | | | | | | | |
| 63 | +| 29.SpecializationConstants | S | S | S | S | S | S | N | S | | |
| 64 | +| FREE_SLOT | | | | | | | | | | |
| 65 | +| FREE_SLOT | | | | | | | | | | |
| 66 | +| FREE_SLOT | | | | | | | | | | |
| 67 | +| 33.Draw3DLine | Y | Y | Y | S | S | S | S | S | | |
| 68 | +| 34.LRUCacheUnitTest | Y | Y | Y | Y | Y | Y | N | N | | |
| 69 | +| 35.GeometryCreator | Y | Y | Y | S | S | S | N | S | | |
| 70 | +| 36.CUDAInterop | N | N | W | N | N | W | N | N | COMPILE_WITH_CUDA | |
| 71 | +| FREE_SLOT | | | | | | | | | | |
| 72 | +| 38.EXRSplit | S | S | S | S | S | S | N | N | | |
| 73 | +| 39.DenoiserTonemapper | N | N | W | N | N | W | N | N | COMPILE_WITH_CUDA & COMPILE_WITH_OPTIX | |
| 74 | +| 40.GLITest | S | S | S | S | S | S | N | S | COMPILE_WITH_GLI_LOADER | |
| 75 | +| 41.VisibilityBuffer | S | S | S | S | S | S | N | N | | |
| 76 | +| 42.FragmentShaderPathTracer | B | B | Y | S | S | S | S | S | | |
| 77 | +| 43.SumAndCDFFilters | S | N | S | S | N | S | N | N | | |
| 78 | +| 44.LevelCurveExtraction | S | N | S | S | N | S | N | N | | |
| 79 | +| 45.BRDFEvalTest | S | S | S | S | S | S | N | S | | |
| 80 | +| 46.SamplingValidation | S | S | S | S | S | S | N | S | | |
| 81 | +| 47.DerivMapTest | S | N | S | S | N | S | N | N | | |
| 82 | +| 48.ArithmeticUnitTest | Y | N | Y | S | N | S | N | S | | |
| 83 | +| 49.ComputeFFT | S | N | S | S | N | S | N | N | | |
| 84 | +| 50.NewAPITest | S | S | S | S | S | S | S | S | | |
| 85 | +| 51.RadixSort | W | N | W | W | N | W | N | W | | |
| 86 | +| 52.SystemTest | S | S | S | S | S | S | S | S | | |
| 87 | +| 53.ComputeShaders | S | N | S | S | N | S | N | S | | |
| 88 | +| 54.Transformations | S | S | S | S | S | S | S | S | | |
| 89 | +| 55.RGB18E7S3 | S | S | S | S | S | S | N | N | | |
| 90 | +| 56.RayQuery | N | N | S | N | N | S | N | S | | |
| 91 | +| 57.AndroidSample | N | N | N | N | N | N | S | S | | |
| 92 | +| 58.MediaUnpackingOnAndroid | N | N | N | N | N | N | Y | Y | | |
| 93 | +| FREE_SLOT | | | | | | | | | | |
| 94 | +| 60.ClusteredRendering | W | N | W | W | N | W | N | N | | |
| 95 | + |
| 96 | +`*` Only Nvidia provides a working GLES 3.1 driver with OES_texture_view on Windows, so we only test there. |
| 97 | + |
| 98 | +`**` Needs the Xcb implementation of the `ui::` namespace to be complete. |
| 99 | + |
| 100 | +`***` Only x86_64 architecture supported for Android builds, also NBL_BUILD_ANDROID is required. |
| 101 | + |
| 102 | +`****` NBL_BUILD_EXAMPLES is needed for any example to build! |
0 commit comments