* Wrote Linux package files
* Moved the package distribution content
* Started rewriting `Install.sh` in Python
* Added the `ttkbootstrap` module
* Applied a dark theme to the installer
* More dependency installation changes
* More installer changes
* Overhauled all distribution changes
* Fixed the `Setup.py` script
The `Setup.py` script tried to build `Dependencies.py`, which was
removed. It now builds `Install.py` instead.
* Moved from `subprocess.run()` to `os.system()`
The installer now uses the **deprecated** `os.system` function. In the
feature `Install.py` will use `subprocess.run()` again, however,
`os.system()` has better infrastructure to work.
* Fixed a grammatical error in `Install.py`
A comment referred to *the* Discord server as Discord, as a whole.
* Fixed two typos in `Install.py` caused by my editor
* Fixed major bugs in the `Install.py` script
* Fixed a possible issue that might occur in `Install.py`
* (Linux) File dialog glob pattern fix (#403)
* ocean: change to use indexed draw; fixed gradient tiling;
* raytracing now uses configurable sampler + refactors
* Underwater post process (#405)
* added underwater post process
* improvements
* update
* update
* border between underwater and air is better faded
* fixes: volumetric cloud blend mode in planar reflection; ocean receive shadow;
* underwater caustics
* Fixed a major `.gitignore` issue
* Debug changes
Co-authored-by: Megumumpkin <megumumpkin@protonmail.ch>
Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
* 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
- 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>
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.
* emitter rewrite to support raytracing, still has some problems
* added emitters to compute BVH
* sorting only for culled rasterized particles; fixes;
* emitter mesh shader update
* emitter tracing improvements
* particle traces will use simplified lighting model
* don't update particle gpu data when scene update requests are stopped
* path tracing unlit material support
* path tracing unlit material fix
* path tracing: unlit refactor
* GPUBufferDesc.ByteWidth is uint64_t, we don't support D3D11 anymore.
AllocateGPU, UpdateBuffer uses uint64_t.
Rename SubresourceData members with better name.
PipelineStateDesc support custom patch control points, default to 3.
* CreateBuffer accepts const void* instead of const SubresourceData.
Cleanup and improve documentation about buffer creations.
* Rename StructureByteStride to Stride.
* GPUBufferDesc rename ByteWidth to Size.
* CreateBuffer: Under D3D12 - USAGE_READBACK use D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE flag and honor BIND_SHADER_RESOURCE.
version 0.57.0:
- DX11 removed, DX12 is default now on Windows
- graphics interfaces improved:
- Bindless descriptor support is now assumed
- GPU Buffers with USAGE_UPLOAD and USAGE_READBACK will be persistently mapped after creation
- Removed Map/Unmap
- added BindDynamicConstantBuffer helper function
- improved AllocateGPU helper function
- GPU Queries resolving can be done directly into GPUBuffer
- UpdateBuffer now doesn't synchronize internally, this allows batching updates
- removed support for bindless constant buffers (uniform buffers)
- BindConstantBuffer will accept offset
- RESOURCE_STATES refactor, they can be combined now in the barriers
- many other refactors
- gbuffer normals removed, implemented visibility buffer
- bindless decals, bindless lightmaps, bindless hair particles, bindless software path tracing
- hair particles path tracing support
- path tracing eye adaption supported
- Surfel GI (experimental)