Releases: vilbeyli/VQEngine
Releases · vilbeyli/VQEngine
v0.11.0 - Threaded Initialization, PSO Cache, Async Texture Uploading, Culling & DrawBatching Optimized Data & Task Scheduling
Pre-release
Release Notes
- Moved to C++20
- Load time improvements #176
- Threaded initialization
- Async texture loading #175
- PSO caching
- CPU Performance optimizations #174
- Optimized the data format used for frustum culling & instance batching to be more cache friendly (SoA)
- Removed busy waits, added signaling mechanisms & improved job scheduling
- Renderer
- Switched to using 3 distinct command queue group: Rendering, Background, Presentation #182
- Improved command list management & closed state tracking
- Command queues now use priority: NORMAL, HIGH, REALTIME
- Refactored & moved draw call batching into renderer
- Encapsulated texture data management into TextureManager
- Removed bloat & reduced build times 35%
- Remove assimp, add cgltf #183
- reduce C++ reliance, limit header usage
- UI
- Light editor can now add/remove lights

The new task-based TextureManager, separated disk reads from mip generation & GPU upload tasks, shown in newly threaded initialization sequence

The new command list & queue management, enabling background (lower prio) gpu tasks and dedicated presentation queue

The dedicated presentation queue, can be toggled on/off from settings


Before: 6.95ms, After: 4.1ms | CullFrustum+GatherMeshData+BatchInstances+RecordCmds
Issue Fixes
fixes #160
fixes #171
fixes #172
fixes #173
fixes #179
fixes #180
fixes #88
VQE-v0.10.0 - Tessellation, async compute & copy, object picking, magnifier, instanced draw + LODs
VQE-v0.10.0 - Tessellation, async compute & copy, object picking, magnifier, instanced draw + LODs
Pre-release
Pre-release
RELEASE NOTES
- Added Tessellation pipeline for geometry passes
- Quad + Triangle Domain -- Lines to be added later
- Added instanced rendering & LODs for built-in meshes: Cylinder, Sphere, Grids
- Added Magnifier effect
- Added pixel-perfect object picking & outlining
- Added vertex displacement through height maps
- Added Motion Vector rendering
- Added Asnyc compute & copy queue support
- Async Compute: Depth Resolve + SSAO
- Async Copy: ObjectID copy pass
- Updated DirectX compiler to version 1.8.2407
- All shaders are now SM6.0 & above
- Added
.exrfile support - Reduced PBR texture set resolution to 2K from 4K
- Improved multi-threading, better load & runtime performance
- Separated meshes & textures into their own worker thread pools
- Separated shader & PSO loading workers
- Finer frustum culling & draw call batching to improve thread utilization
- Added Editor GUI: Materials, Lights & Transforms
- Added Light bounds rendering for debugging
- Various stability fixes including resource barriers, race conditions & crashes
- Updated Tools/7zip to standalone release
- Updated requirements: CMake 3.4 to 3.24 & Visual Studio 2019 to 2022
VQE-v0.9.0 - FidelityFX: Stochastic Screen-Space Reflections, SPD, Denoiser
RELEASE NOTES
Features
Rendering
- FidelityFX Stochastic Screen Space Reflections (SSSR)
- FidelityFX Single-Pass Downsampler (SPD)
- FidelityFX Denoiser (DNSR)
- Motion Vectors
- Scene Render Visualization Modes
- Lit
- Depth
- Normals
- Roughness
- Metallic
- AO
- Motion Vectors
- Albedo
Engine
- Graceful exit with error reporting upon device lost instead of crashing
- Extended EngineSettings.ini: added EnvironmentMapResolution, Reflections options
- Improved shader compilation
- PIX can now debug SM6 shaders
- Extended support for DXC compiler flags
- Release/Debug shaders are now separately cached
- Added more built-in materials: Checkerboard_Glossy, Checkerboard_Rough, Checkerboard_Metallic, MetallicBlack_VerySmooth
Scenes
- Default scene: assigned PBR material to the ground, swapped cylinder with the boombox model, load an environment map
- Stress Test scene: crank up object count, add randomized materials with compile-time toggles
Bug Fixes
- Fixed RenderDoc not being able to attach / device lost upon launch
- Fixed build script failing with file paths with spaces in them
- Fixed shader include path not resolving correctly
- Fixed assertion when the window is minimized
VQE-v0.8.0 - ImGui UI & FidelityFX Super Resolution 1.0
RELEASE NOTES
Features
Renderer
- FidelityFX Super Resolution 1.0 integrated with minimal support
- EASU (Upscaling) & RCAS (Sharpening) passes with sharpness slider, presets and custom upscaling ratio between [0.5, 1.0]
- TAA, MipBias & HDR are NOT supported with this release and will be added at a later date
Engine
- Added UI using Dear ImGui
- Profiler, Graphics Options, Debug Panel and Scene Editor windows with various controls
- Updated camera controller and mouse capture behavior
- Left Click : Orbit Camera
- Right Click : 'FPS' Camera
- Mouse is now only captured when right or left click is held to operate the camera, and will stay uncaptured while interacting with the UI
- Removed pipelined Update+Render threads, merged them into a single Simulation thread
- This change is added to support the ImGui integration as ImGui didn't provide a deferred context without global state, which made the engine architecture incompatible with ImGui by resulting in a race condition when the update thread is writing into the global context that the render thread is reading to draw
- A preprocessor define
VQENGINE_MT_PIPELINED_UPDATE_AND_RENDER_THREADSwas added to toggle between the two architectures, although the separate update+render threads disable UI rendering
- Added frame stat collection
Bug Fixes
- Fixed the DownloadAssets.bat script after the texture website updated its URL for the assets
- VSync can sometimes add some frame delay
VQE-v0.7.0 - Multi-threaded command recording & frustum culling, SM6, Ambient Occlusion
Pre-release
RELEASE NOTES
Features
Renderer
- DXC / SM6.0 support
- Ambient Occlusion
- AMD FidelityFX - Combined Adaptive Compute Ambient Occlusion (CACAO)
Engine
- Multi-threaded command recording
- Bounding Boxes & Multi-threaded view frustum culling
- Add RGP & PIX markers
- Skip loading materials if they're not used in the scene
- Add image downsizing for Environment maps
Bug Fixes
- Black line at the bottom of the screen when CAS is enabled
VQE-v0.6.0 - Physically Based Rendering (PBR), Environment Maps & Image-based Lighting (IBL), AMD FidelityFX CAS
Pre-release
Release Notes
Features
- Forward Renderer w/ Lighting System
- Spot Lights (5x w/ shadows)
- Point Lights (5x w/ shadows)
- Directional Light (1x w/ shadows)
- PCF Shadows for all lights
- UE4's PBR Model Pipeline
- BRDF
- NDF : Trowbridge-Reitz GGX
- G : Smith
- F : Fresnel_Schlick / Fresnel_Gaussian
- Metallic / Roughness Maps
- Emissive Maps
- Built-in PBR Materials w/ textures from cgbookcase
- BRDF
- Environment maps
- Real-time Image-based lighting
- Cubemap convolutions for pre-filtered diffuse & irradiance maps
- Post Processing
- Added AMD's FidelityFX Contrast Adaptive Sharpening (CAS)
Known Issues
- Repeatedly changing scenes crashes due to the static heaps
- Alt+Enter might crash on some laptops
- VSync can sometimes add some frame delay
- Black bar at the bottom few pixels when CAS is switched on
Controls
| Key | |
|---|---|
| WASD+EQ | Camera movement |
| Page Up/Down | Change Environment Map |
| 1-4 | Change scenes 1 - Default Scene 2 - Sponza 3 - Geometry Test Scene 4 - Stress Test Scene |
| Shift+R | Reload level |
| C | Change scene camera |
| V | Toggle VSync |
| M | Toggle MSAA |
| B | Toggle FidelityFX-CAS |
| Alt+Enter | Toggle Fullscreen |
| Esc | Release mouse |
See README.md for details.
VQE-v0.5.0 - Scene/Level System, GPU Event Markers, DPI-awareness, Model Loading (glTF, obj)
VQE-v0.5.0 - Scene/Level System, GPU Event Markers, DPI-awareness, Model Loading (glTF, obj)
Pre-release
Pre-release
VQE-v0.4.0 - HDR, Skybox, VSync, MSAA
Release Notes
Features
- HDR Display support w/ FP16 Swapchain & HDR10 Static Metadata
- HDR Environment Maps using HDRI Haven
- PostProcess: Reinhard Tonemapping & Gamma Correction
- MSAA & VSync support
Bug Fixes
- Mouse isn't captured when debug window is not initialized
- Window focus capturing mouse causes inconsistent behavior
Known Issues
VQE v0.3.0 - Keyboard/Mouse Input & Camera Controller
Release Notes
Features
- Keyboard/Mouse input handling
- First-Person Shooter Camera Controller
- Mouse Input using Raw input
- Improved Window behavior for Resizing, Alt+Tab & Alt+Enter
Fixed Issues
Known Issues
VQE v0.2.0 - Hello Cube!
Release Notes
Features
- Textures & Constant buffers
- Transformation pipeline (Model-View-Projection)
- Generic Geometry generator for various Vertex/Index Buffer types
- Loading Screen Rendering: 1 second 'loading' simulation by rendering a fullscreen triangle
- New Shaders
- Fullscreen triangle: requires only index buffer with values
{0, 1, 2} - Hello-Cube: supports textures + transformation matrix
- Fullscreen triangle: requires only index buffer with values
Utilities
- Added Camera, Transform & Quaternion classes
- Added Timer class
- Added Image class to load common image formats, including HDR
- Supported Image formats:
.png,.jpg,.hdr, etc.
- Supported Image formats:
Bug Fixes
- Memory leak on Window events (resize + fullscreen)











