Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
c4d529f
Apply consistent formatting, improve code readability, and add/update…
gpx1000 Dec 16, 2025
37cb78e
Remove unused debug comments and code fragments from rendering logic …
gpx1000 Dec 16, 2025
2176e06
Add CMake find scripts for nlohmann_json, tinygltf, VulkanHpp, Vulkan…
gpx1000 Dec 16, 2025
606be30
Add advanced topics documentation: Ray Query, Planar Reflections, Rob…
gpx1000 Dec 16, 2025
786c5cd
Refactor material caching and resource initialization to improve perf…
gpx1000 Dec 17, 2025
f5335e8
Add instance buffer recreation handling in Renderer
gpx1000 Dec 17, 2025
41365a0
Add checks for AS/ray query support in acceleration structure build p…
gpx1000 Dec 17, 2025
1ee46ba
Improve Watchdog functionality and mesh resource handling
gpx1000 Dec 19, 2025
b5a8882
Add SimpleEngine CI workflow for automated builds
gpx1000 Dec 19, 2025
0fb8c9d
Enhance CI workflow for Vulkan SDK setup and dependency management
gpx1000 Dec 19, 2025
e1a1d13
Remove Vulkan SDK installation from Linux dependency script
gpx1000 Dec 19, 2025
150d149
Streamline Vulkan SDK setup and dependency handling
gpx1000 Dec 19, 2025
4d9cc3e
Improve Vulkan SDK download resilience in CI workflow
gpx1000 Dec 19, 2025
65eac4f
Update KTX dependency to version 4.4.2 in CMake configuration.
gpx1000 Dec 20, 2025
82c8c5d
Remove unused "builtin-baseline" field from vcpkg.json.
gpx1000 Dec 20, 2025
376c7ea
Add Clang and Ninja toolchain setup for Linux CI builds.
gpx1000 Dec 20, 2025
24ce77c
Update Vulkan SDK setup in CI workflow for Linux builds.
gpx1000 Dec 20, 2025
ba1cbd7
Refine Vulkan SDK setup in Linux CI workflow: introduce sysroot separ…
gpx1000 Dec 21, 2025
f6d85be
Refine Linux CI workflow: add `spirv-tools` as a system fallback for …
gpx1000 Dec 21, 2025
6f6aaae
Implement rasterization ray-query shadows and refine rendering pipeli…
gpx1000 Dec 24, 2025
447f32b
Integrate ray-query shadows with Vulkan Ray Query, update linked chap…
gpx1000 Dec 24, 2025
361faea
Improve Windows CI: add Chocolatey bin path to GITHUB_PATH, enhance v…
gpx1000 Dec 24, 2025
9475cc5
Improve CI workflows: add cleanup of partial/failed clones for tinygl…
gpx1000 Dec 24, 2025
66a00ae
Refine Windows CI Vulkan SDK setup: improve caching logic, enhance di…
gpx1000 Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
441 changes: 441 additions & 0 deletions .github/workflows/simple_engine_ci.yml

Large diffs are not rendered by default.

106 changes: 106 additions & 0 deletions attachments/simple_engine/CMake/FindKTX.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# FindKTX.cmake
#
# Finds the KTX library
#
# This will define the following variables
#
# KTX_FOUND
# KTX_INCLUDE_DIRS
# KTX_LIBRARIES
#
# and the following imported targets
#
# KTX::ktx
#

# Check if we're on Linux - if so, we'll skip the search and directly use FetchContent
if(UNIX AND NOT APPLE)
# On Linux, we assume KTX is not installed and proceed directly to fetching it
set(KTX_FOUND FALSE)
else()
# On non-Linux platforms, try to find KTX using pkg-config first
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_KTX QUIET ktx libktx ktx2 libktx2)
endif()

# Try to find KTX using standard find_package
find_path(KTX_INCLUDE_DIR
NAMES ktx.h
PATH_SUFFIXES include ktx KTX ktx2 KTX2
HINTS
${PC_KTX_INCLUDEDIR}
/usr/include
/usr/local/include
$ENV{KTX_DIR}/include
$ENV{VULKAN_SDK}/include
${CMAKE_SOURCE_DIR}/external/ktx/include
)

find_library(KTX_LIBRARY
NAMES ktx ktx2 libktx libktx2
PATH_SUFFIXES lib lib64
HINTS
${PC_KTX_LIBDIR}
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
$ENV{KTX_DIR}/lib
$ENV{VULKAN_SDK}/lib
${CMAKE_SOURCE_DIR}/external/ktx/lib
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(KTX
REQUIRED_VARS KTX_INCLUDE_DIR KTX_LIBRARY
FAIL_MESSAGE "" # Suppress the error message to allow our fallback
)

# Debug output if KTX is not found (only on non-Linux platforms)
if(NOT KTX_FOUND)
message(STATUS "KTX include directory search paths: ${PC_KTX_INCLUDEDIR}, /usr/include, /usr/local/include, $ENV{KTX_DIR}/include, $ENV{VULKAN_SDK}/include, ${CMAKE_SOURCE_DIR}/external/ktx/include")
message(STATUS "KTX library search paths: ${PC_KTX_LIBDIR}, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64, $ENV{KTX_DIR}/lib, $ENV{VULKAN_SDK}/lib, ${CMAKE_SOURCE_DIR}/external/ktx/lib")
endif()
endif()

if(KTX_FOUND)
set(KTX_INCLUDE_DIRS ${KTX_INCLUDE_DIR})
set(KTX_LIBRARIES ${KTX_LIBRARY})

if(NOT TARGET KTX::ktx)
add_library(KTX::ktx UNKNOWN IMPORTED)
set_target_properties(KTX::ktx PROPERTIES
IMPORTED_LOCATION "${KTX_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${KTX_INCLUDE_DIRS}"
)
endif()
else()
# If not found, use FetchContent to download and build
include(FetchContent)

# Only show the message on non-Linux platforms
if(NOT (UNIX AND NOT APPLE))
message(STATUS "KTX not found, fetching from GitHub...")
endif()

FetchContent_Declare(
ktx
GIT_REPOSITORY https://github.com/KhronosGroup/KTX-Software.git
GIT_TAG v4.4.2 # Use a specific tag for stability
)

# Set options to minimize build time and dependencies
set(KTX_FEATURE_TOOLS OFF CACHE BOOL "Build KTX tools" FORCE)
set(KTX_FEATURE_DOC OFF CACHE BOOL "Build KTX documentation" FORCE)
set(KTX_FEATURE_TESTS OFF CACHE BOOL "Build KTX tests" FORCE)

FetchContent_MakeAvailable(ktx)

# Create an alias to match the expected target name
if(NOT TARGET KTX::ktx)
add_library(KTX::ktx ALIAS ktx)
endif()

set(KTX_FOUND TRUE)
endif()
Loading
Loading