Build Labrador
You build Labrador on its own first. That proves the tools work before your own project adds anything, and it builds the samples you will look at next.
-
Clone the repository into your projects folder:
Terminal window cd C:\devgit clone https://github.com/matt439/Labrador.gitcd Labrador -
Configure the build:
Terminal window cmake --preset x64-debugA preset is a named configuration in the repository’s
CMakePresets.json.x64-debugis a 64-bit debug build using the Direct3D 11 renderer, with its output inout\build\x64-debug.The first time you run this, vcpkg downloads and builds Labrador’s dependencies: DirectX Tool Kit, the XAudio2 redistributable and the doctest test framework. That takes several minutes, and vcpkg keeps the results, so later configures are quick.
-
Build it:
Terminal window cmake --build --preset x64-debugThis builds the engine, all five samples, the tests and the benchmarks. Warnings are errors in every Labrador build, so a successful build has none.
-
Run the tests:
Terminal window ctest --preset x64-debugFourteen test programs run, and ctest should report
100% tests passed, 0 tests failed out of 17. One of them,RenderPixelTests, draws real frames through Direct3D and compares them with reference images, so a pass also tells you the renderer works on your machine.
Other configurations
Section titled “Other configurations”The repository has a debug and a release preset for each renderer. Swap the preset name in all three commands to use one:
| Preset | Renderer |
|---|---|
x64-debug, x64-release |
Direct3D 11 |
x64-debug-d3d12, x64-release-d3d12 |
Direct3D 12 |
x64-debug-gl, x64-release-gl |
OpenGL 3.3 |
x64-debug-vulkan, x64-release-vulkan |
Vulkan, which needs the Vulkan SDK |
x64-debug-null, x64-release-null |
None: records what it was asked to draw, for testing on machines without a graphics card |
The renderer is chosen when you configure rather than when the game starts. Asking for one that was not built is a link error, not a crash on the first frame.
If something fails
Section titled “If something fails”Development documentation (unreleased). Built from Labrador 862e08b of 2026-10-08.