- Notifications
You must be signed in to change notification settings - Fork 48
samples version of the game engine now in tutorial.#253
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading. Please reload this page.
Conversation
gpx1000 commented Dec 16, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
… copyright headers across multiple files. This is the full simple game engine with all features implemented including: streaming textures in separate threads with transfer queue ray query rendeirng pipeline forward+ rendering pipeline reflections thick and thin glass translucency better lighting fixes so light doesn't appear over bright animation from GLTF robustness2 synchronization2 Dynamic rendering local read shader tile image culling Incorporated PRs for: Android support Windows support memory leak fixes
…and shaders for cleaner production-ready code.
SaschaWillems commented Dec 16, 2025
CMake setup doesn't work for me (while it does/did work on master). I get the following error: This is on Windows 11. |
SaschaWillems commented Dec 16, 2025
I also don't see any added .adoc documentation files. Afair the samples PR had a few new documentation chapters? |
gpx1000 commented Dec 16, 2025
Yep, I'm working those into the tutorial itself. Should have them soon |
SaschaWillems commented Dec 16, 2025
Adding a CMake folder and putting Findtinygltf.cmake in there makes CMake work. So looks like that file simply is missing in the right folder. |
SaschaWillems commented Dec 16, 2025
SaschaWillems commented Dec 16, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
If I increase the watchdog timeout, same issue as I had with an earlier version: In debug it starts loading things and at some point just gets stuck, and nothing ever happens. In release it outright crashes in the driver right at startup (Nvidia RTX 4070). Enabling validation layers I do not see any errors, but I do get an exception in pNext validation of the layers. So this looks like the application is not properly initializing things. |
SaschaWillems commented Dec 16, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
SaschaWillems commented Dec 16, 2025
SaschaWillems commented Dec 16, 2025
One thing that I'm totally unsure about and might be something that should be cleared inside Vulkan: The original tutorial was licensed under CC-BY-SA 4.0. So we had to use the same license for our tutorial too. The simple game engine files use Apache-2.0 as their license, which differs from CC-BY-SA. Not sure if we can/should mix licenses like that. Any thoughts @marty-johnson59? |
…-Profiles, and GLM libraries, enabling automated detection and integration of dependencies.
gpx1000 commented Dec 16, 2025
I fixed the cmake by committing the cmake folder that was missing. The watchdog I might remove; I don't know if it makes sense for slower computers. 2 seconds between update should have been fine. Maybe 10 seconds? Or maybe just remove it. Lemme see if I can find all the places where I messed up the scoping. The indention, was done by the samples' script. I'll redo it and make it cleaner. Just about to add the updates to the tutorial text. |
…ustness2, Mipmaps and LOD, glTF Animation, and Push Constants.
marty-johnson59 commented Dec 17, 2025
Hmm, might be cleaner to have the same license. Is that possible @gpx1000? If not, I can check with Khronos legal to see if mixing licenses is an issue.. |
gpx1000 commented Dec 17, 2025
I only put the copyright at the top to get past the sample's PR requirements. I'm fine with whatever license we want to use. |
…ormance, reduce redundant lookups, and enhance thread safety in rendering pipelines. Hopefully fix windows, also, fix frames-in-flight so we can handle more than 1. Hopefully, improve the windows frame rate. In linux testing all rendering types and options result in about 60fps on an older computer. Forward+ does drop to 30, but that's due to requirements of the Forward+ methodology.
gpx1000 commented Dec 17, 2025
@SaschaWillems I think I hopefully got all of the potential places that windows could have crash potential problems. I also did a bunch of work on improving the frame rate. I now see 60fps in Linux for all render types while in debug build, except for forward+ (for hopefully obvious reasons (i.e. if you want boundless dynamic lighting capabilities without deferred there's significant overhead to that kind of trade off; could refine this further to get frame rate up there, but these optimizations are the ones I can do in a day). |
SaschaWillems commented Dec 17, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
gpx1000 commented Dec 17, 2025
I'll debug in windows, just gonna take some logistics on my end. I shouldn't travel this close to holidays and only bring linux and mac laptops. I think I have a solution, will just take time to set it up. |
SaschaWillems commented Dec 17, 2025
No need to hurry ;) |
This gets windows to run out of the box.
gpx1000 commented Dec 17, 2025
I am in the process of upgrading my work computer so I had a brand new never before used computer that had windows pre-installed. I got it setup enough to do the debugging. Simple memory issue causing the race condition. This should now build and run out of the box. Okay, now to get this machine turned into Linux. So, if there's further windows issues, I'll have to wait until I get back to the office and have another windows machine to try out or I'll try to borrow some of Sam's time. |
marty-johnson59 commented Dec 18, 2025
Hi folks, regarding the license for the game engine code (not the docs), I checked with Emily and others on Khronos staff and we're OK with mixed licenses for this repo. I recommend we stick with Apache2 for the code - which matches what we do for our other sample code. But of course, for the tutorial documentation, we should stick with CC SA 4.0...LMK if questions. |
SaschaWillems commented Dec 18, 2025
SaschaWillems commented Dec 18, 2025
SaschaWillems commented Dec 18, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
Also seeing some rendering issues, where e.g. the windows are not transparent depending on my camera angle. Looks like a culling issue. |
SaschaWillems commented Dec 19, 2025
Please post your CMake command line. A clean CMake works fine for me, but you need to use the vcpkg toolchain. |
8SecSleeper commented Dec 19, 2025
I was going off what it suggested in the install_dependencies_windows.bat. echo All dependencies have been installed successfully! So I took it as.. cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=C:\Users\Sadman\Desktop\Github\vcpkg\scripts\buildsystems\vcpkg.cmake even tried using the explicit version suggested. cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=[C:\Users\Sadman\Desktop\Github\vcpkg]\scripts\buildsystems\vcpkg.cmake With you suggesting it's an issue with the command. I broke down and asked AI what the command should be and it gave me this. cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="C:/Users/Sadman/Desktop/Github/vcpkg/scripts/buildsystems/vcpkg.cmake" Which works for me. Whilst the others failed. |
SaschaWillems commented Dec 19, 2025
Makes sense. I'm used to put paths in Windows inside quotes, so we might neeed to update the build instructions to let people know that this might be required. |
gpx1000 commented Dec 19, 2025
I went ahead and added ci to this last night. Need to fix Linux again. But hopefully that'll help as well. Thanks for testing. I expect there's plenty of bugs in the pr. Spaces in the path and making sure the path is under a certain length are always the fun ways windows throws is curve balls. I'll have to think about where and how best to document that as it could appear anywhere there's file interaction and paths. |
SaschaWillems commented Dec 19, 2025
8SecSleeper commented Dec 19, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
gpx1000 commented Dec 19, 2025
Ahh... okay, getting CI working required some of that. I'll nuke that from the vcpkg in the next commit. Still working on Linux. |
Enhance Vulkan SDK configuration by dynamically handling sysroot paths, setting explicit include and library directories, and refining CMake arguments, ensuring better compatibility and diagnostics.
…ation, enhance environment variable handling, improve tool detection, and add support for slangc in CMake configuration.
…`slangc`, enhance Vulkan SDK shared library handling, and improve environment diagnostics.
gpx1000 commented Dec 21, 2025
Linux and windows finally work in the CI. Gonna try to get Android working in CI as well. I thought I grabbed all the changes from the other PR for it, but maybe not. I think once we have that we're good to merge this if you guys are comfortable with that. |
8SecSleeper commented Dec 21, 2025
Has anyone managed to get windows to build on release? I only had luck with debug build. Gonna try the latest commits today. But as of yesterday no luck. |
SaschaWillems commented Dec 21, 2025
See my comments above. Haven't had time to test with latest commits yet. |
SaschaWillems commented Dec 21, 2025 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
With the latest commits it actually got worse for me. In release I now do get multiple device losts at startup (which on my setup also results in nasty audio hangs) :( Debug works, but the image is extremely noisy. Looks like a combination of lighting issues, high frequency shading and missing mip maps. Transparent surfaces like the Café's windows are broken too. Will prob. defer further testing until things become stable on Windows. |
gpx1000 commented Dec 21, 2025
Which render pipeline in debug is showing as extremely noisy? Is it the ray query, the PBR, the Forward+, or the phong? I'm guessing the ray query. Culling make it better/worse? Try adjusting the number of bounces slider. It might be worth taking the slider out and only allowing one bounce at most. I'll look at the windows side again, right now am trying to get the gaussian splats out. and all the other things on plate before end of year. I do want to try to get this merged as soon as possible, and put the checklist up of all the comments we had in the original PR; try to work through all of them. We'll see when I get time. |
SaschaWillems commented Dec 21, 2025
The rasterization pipelines are indeed less noisy than the ray query one. My no. 1 request would be getting this to properly work on Windows ;) |
gpx1000 commented Dec 21, 2025
I have windows here now so will try iterating a bit on that side. |
gpx1000 commented Dec 23, 2025
I think the noisy thing you're seeing is the reflections code in ray tracing. Without shadows, light doesn't really care about geometry correctly, so all light is additive and the reflections are thus exaggerated. I went ahead and added some shadows with that being the assumption (i.e. I don't see any noisy effects with reflections turned off before the change). I'm still working on glass. but this is now taking a back seat to getting the gaussian splat sample. and all the other things that we need to get done by end of year. I'll try to get a new version up with shadows tonight/tomorrow. |
…nes: - Add support for ray-query shadows in raster fragment shaders using TLAS. - Introduce frustum and LOD culling for planar reflections and TLAS. - Enhance reflection handling with adjustable intensity and refined tone mapping. - Improve material and instance masking for ray-query shadows. - Optimize descriptor binding updates, reducing redundancy. - Refactor draw queue logic to separate opaque and blended entities for efficiency. - Extend RayQuery uniforms to support soft shadows and reflection customization. - Introduce rendering shadows with ray query to all pipelines.
…ters, and enhance CI with caching and toolchain improvements.
…cpkg cache handling, and update binary source configuration.
…tf and KTX dependencies before retrying builds.
…agnostics, and dynamically pass Vulkan paths to CMake configuration.
gpx1000 commented Dec 24, 2025
I've added shadows, and reworked quite a bit of things on how the lighting works. Lots of optimizations. Shadows are now handled by Ray Query in all pipelines. |
…factorings: - Add Android project files (`settings.gradle`, `gradle.properties`, `build.gradle`, `README.adoc`). - Implement Android compatibility via `PLATFORM_ANDROID` macros and input handling changes. - Adjust Vulkan surface interactions to handle shared pointers. - Refactor descriptor and resource logic for improved null checking and initialization. - Enhance code formatting, readability, and consistency across `renderer_pipelines`, `ray_query`, and others. - Update CI systems and improve cross-platform compatibility.









NB: if you have the bistro from before, please grab the latest to be able to see the animations of the ceiling fan.
Apply consistent formatting, improve code readability, and add/update copyright headers across multiple files.
This is the full simple game engine with all features implemented including:
Incorporated PRs for: