* removed hard coded command list count
* commandlist has internal_state pointer now instead of an index
* BeginCommandList thread safety
* refactor
* acceleration structure builds will not allocate after warmup
* refactors, fixes
* vulkan fix
* fix
* dx12: abandoned shader reflection, added support for custom root signatures, removed dxcompiler dependency
* removed dll copies from build scripts
* update
* updates
* updates
* fix
* update
* update
* updates
* added custom root signatures to some passes
* fix
* updates
* comment fix
* allow shaders to not have root signatures, if they are part of a pipeline which has root signature for an other shader
* root signature optimizer
* batched descriptor null initializer
* shader updates
* update
* put the atmospheric sky update to async compute
* improved debug of root constant - push constant data size mismatch
* bitwise root param iteration
* added superluminal perf api
* performance api will be optional
* async updaterenderdata fixes
* fixes
* fixes
* occludee update
* raytraced reflection implementation with ray query instead of rt pipeline
* alwaysactive
* shadercompiler enable old d3dcompiler because why not, it's only loaded on demand now
* removed common sampler api
* root signature simplification
* fixes
* linear allocator fix
* push constants are now immediately set
* fixes
* version
* fix?
* improved descriptor allocator
* default sampler table reduction
* gpu sort lib push constants
* small update
* descriptor allocator safety
* shader compiler refactor
* some optimizations
* custom implementation for wi::vector
* fix
* sdl vulkan fix
* linux fix
* fix
* vector fix
* shader compiler and job system will be initialized automatically on first use
* vector improvements
* updates
* update
* network and audio will be auto initializing on first use only
* fix
* for now, use std::vector
* vector refactor minor
* backlog: access safety
* shader clearcoat fix
* gui initialization on demand
* initializer updates
* job system will be explicitly initialized
* RHI: Add SetDepthBounds.
* Rename SetDepthBounds as BindDepthBounds, add depth_bounds_test_enable in DepthStencilState and manage on D3D12/Vulkan side.
* ENH: Add DEPTH_BOUNDS_TEST capability and check across backends.
- namespace refactor (example: wiGraphics:: -> wi::graphics)
- provided namespace compatibility macro for old user code: WICKEDENGINE_BACKWARDS_COMPATIBILITY_0_59
- resource manager will return `Resource` instead of `shared_ptr<Resource>` objects
- MAD shader optimizations
- implemented alpha to coverage with alpha tested materials when MSAA is enabled
- alpha testing fix with transparent shadow maps
- TLAS and scene buffers will be recreated less frequently when things get added/removed from the scene
- std container replacements for vector, unordered_map, unordered_set
- unordered_map and unordered_set replaced with ska::flat_hash_map
- vector replacement is still std::
- unordered_map performance test (std:: vs ska::)
- backlog improvements
- wiArchive improvements
- editor: added option to dump scene to C++ header file
- common improvements, refactors
* common refactors:
- DirectXMath only included in wiMath.h instead of CommonInclude.h
- cleanups in CommonInclude.h
- lua math refactor
- generic allocator refactor
* FLT_MAX to numeric_limits
* linebreak
* comment fix
* allocator fix
* more math refactors
* removed wiContainers, renamed wiAllocators to wiAllocator, moved ThreadSafeRingBuffer to wiAllocator
* Mark concrete graphics device classes as final - they should not be inherited from further.
* Apply consistent snake_cast naming (which has been used in more recent additions) across wiGraphics structs
* Make 'CommandList' type safe so that calling graphics device functions is less error-prone.
* Decouple wiProfiler from wiRenderer by passing the device instance to functions instead of using wiRenderer::GetDevice().
* Bump minor version for graphics refactors.
* Decouple wiHelper screenshot/saveTexture* functions from wiRenderer by providing the graphics device as a parameter.
* Convert wiGraphics.h enums to use enum class (except a couple of raytracing flag enums which seem best left)
* hdr fix
* Documentation updates for enum class.
* Revert "Decouple wiHelper screenshot/saveTexture* functions from wiRenderer by providing the graphics device as a parameter."
This reverts commit fd70249554.
* Revert "Decouple wiProfiler from wiRenderer by passing the device instance to functions instead of using wiRenderer::GetDevice()."
This reverts commit 69b5326cfc.
* Fix debug build
* Fix gcc build (hopefully). Move bitmask operator defs to end of file outside of wiGraphics namespace.
* Remove 'to_underlying' and replace with casts
* graphics device access decoupled from wiRenderer, now should be accessed from wiGraphics::GetDevice()
* minor refactors, comments
* dx12 assert fix
* fixes
* commandlist refactor
* commandlist initial value
* commandlist refactor
* graphicsdevice comments, GetActivePipelineCount() function
* has changed to has_flag
* just rename a thing
Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
* Don't redefine NOMINMAX if already defined
* Don't redefine WIN32_LEAN_AND_MEAN or NOMINMAX if already defined
* Explicitly use LoadLibraryExW so that compilation still succeeds on projects not defining UNICODE.
linux: works only with wayland backend, can be used with SDL_VIDEODRIVER=wayland enviroment variable set.
It's possible that it works also on other platforms when using the SDL backend.
The engine would crash on exit because SDL handles the deletion of the swapchain on his own, making the engine delete the swapchain twice, which would result in a crash on wayland.
This fix checks if the Video Subsystem is not running any more, if not it will assume there is no need to destroy the swap chains any more.