Commit Graph

45 Commits

Author SHA1 Message Date
Turánszki János dfcdbdd40c shader refactor: removed resource and sampler binding macros 2021-11-21 20:10:19 +01:00
James Webb 4f82ed8fbd wiGraphics refactors (#359)
* 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>
2021-11-17 20:27:10 +01:00
Amer Koleci d0051dcb5f RHI improvements (#299)
* 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.
2021-09-06 16:32:25 +02:00
Turánszki János f3687dbf4e DX11 removal, Surfel GI
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)
2021-09-05 18:59:03 +02:00
Turánszki János f1ced24f05 Multi swapchain support (#257)
* multi swapchain draft

* uwp fix

* swapchain resize handling

* swapchain buffercount

* vsync toggle

* tests fix

* update

* everything removed from graphicsdevice regarding global screen params, engine refactor

* added GetSwapChainTexture() function to graphics device; screenshot() now requires swapChain

* linux fix: vulkan device needs window handle for instance creation

* refactor

* removed unused includes

* shader refactor and lensflare fix

* swapchain clearcolor and other refactors

* vulkan: no vector allocation in submit

* tests fix

* refactors

* lens flare canvas size fix

* gui refactor for canvas support

* refactors

* removed global canvas state

* msaa fix

* fixes

* refactor to minimize interface changes

* gui changes

* checkbox fix

* gui fixes

* fixes

* input system will accept window handle

* editor fixes

* refactor and removed resolution related system events

* small editor update

* refactor: renderpath inherits from canvas

* fixed tests duh

* image refactor

* image fix

* removed every using namespace std

* pushconstant fix

* editor: object picking only when necessary

* removed include

* dx12: copy fence waiting performed on CPU

* dx12 copyallocator update

* vulkan: copy allocator with timeline semaphores

* missing include

* dx12 copy allocator update

* refactor

* editor update

* vulkan copy allocator fix

* dx12 update

* vulkan, dx12 fixes

* version bump

* vsync event helper

* documentation update

* updated vulkan, dx12, dxc
2021-04-22 11:36:22 +02:00
Turánszki János 933080a2e4 Unified Shader Compiler (#250) 2021-03-21 18:54:04 +01:00
Turánszki János 5efe28fdf9 0.51.0 (#200)
* large renderer state refactor;
added subsurface scattering energy conservation;
added emitted particle subsurface scattering;
removed area lights;
optimizations;

* added layerMask support in shaders

* fixed incorrect shadow priority for directional light;
fix point light shadow disconnect;

* fix incorrect shadow assignment
2020-12-07 01:32:44 +01:00
Turanszki Janos 571f435253 refactor 2020-11-04 16:02:23 +01:00
Turánszki János 180ddc3586 0.49 (#160)
* renderer updates: material shadertype, customshaders

* custom shader updates

* hologram fix

* editor windows refactor

* major gui update:
- gui no longer lifetime manager
- window no longer needs gui to construct
- removed gui constructors/destructors
- rewritten every editor window

* renderer update

* gui hasfocus fix

* editor fix

* renderpath upgrades: hybrid forward-deferred

* fix

* water ripple refactor

* cmake fix

* cmake fix

* renderer fix

* volumetric light fix

* customshader stencilref

* cmake fix

* rtdeferred fix

* editor update

* raytraced shadows denoise

* anisotropic shader

* sss stencil greater

* added cartoon shader

* using precomputed tangents

* added unlit object shader

* importer update

* editor update

* editor fix

* vulkan envmap rendering fix

* terrain shader simplification (normal texture mapping instead of triplanar)

* added subsurface profiles, reduced gbuffer

* denoise disocclusion fallback

* editor fix

* more sorting priority for blend than instancing

* hairparticle culling

* particle updates; font update instancing instead of index buffer; vulkan/dx12 fixes;

* shader fixes

* hairparticle trianglestrip and no cross section

* editor fix

* cam wnd update

* terrain shader fix
2020-10-17 13:17:07 +02:00
Matteo De Carlo 3cd9e77889 WIP: Initial linux support using SDL (#136)
* Initial linux support using SDL

* fixed link error and gitignore

* fix in working directory initialization (windows side)

* Added README_Linux and fixed a few compilation issues in ubuntu

* Rename main to main_Windows in Tests

* Better default renderering backend selector

* Added backlog terminal output on linux

* added asserts on all missing vulkan function call results

* added portable file dialogs

also small tests update and cleanup

* Added Editor compile target

* linux ci

* linux ci

* cmake update

* cmake update?

* cmake

* Editor_Windows fix

* build test

* make

* build tools?

* update

* ubuntu 20.04

* fix?

* cmake

* build

* build?

* package linux build

* updates, bump version

* backslash to forward slash, eof newlines, add portable-file-dialogs license

* xcopy needs backslash duh; update readme;

* copy fix

* updated readme

* readme update

* updated readme

* updated readme

* fix incorrect file encoding linux

* paint tool fix

* linux: add missing shaders

* packaging update

Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
Co-authored-by: Turanszki Janos <turanszkij@gmail.com>
2020-10-05 00:03:22 +02:00
Turanszki Janos aa6fff51d5 editor: translator undo fix 2020-09-20 12:39:10 +02:00
Turanszki Janos 1c6921ea3d editor: velocity buffer fix when translator used 2020-09-01 22:06:52 +02:00
Turánszki János c6f3611439 Event system (#133)
* event system

* more refactor

* fixes

* fixes

* fixes, documentation update
2020-07-04 13:22:11 +01:00
Turanszki Janos 2a86f71cd6 input fix and editor improvements 2020-05-02 12:26:37 +01:00
turanszkij 8b059485fe editor: paint tool (softbody, hairparticle) #94;
editor: undo fix with rotation, scale operations;
debug draw updates;
2020-03-26 00:45:12 +00:00
turanszkij 235450e313 editor: translator update 2020-03-11 19:39:44 +00:00
turanszkij d95dfa7ef2 stability improvements, fixes 2020-03-07 16:18:23 +00:00
turanszkij 8a1b30a766 big refactor 2020-03-02 23:29:06 +00:00
Turanszki Janos 7bd3008398 soft body and debug draw updates 2020-02-29 16:23:14 +00:00
Turanszki Janos fa267b0e7d large refactor 2019-12-12 22:15:16 +00:00
Turanszki Janos 7d6fb9bccc handle controller disconnect and reconnect; input refactor #64 2019-11-30 00:19:28 +00:00
Turanszki Janos be79d4c097 removed platform defines from CommonInclude #54 2019-11-23 16:38:08 +00:00
Turanszki Janos fbb53e3a6d input refactor 2019-11-23 04:33:03 +00:00
turanszkij ee988cf55d autopipeline updates 2019-11-15 19:20:12 +00:00
turanszkij f19f251524 mega-refactor: cleaned up formats, removed matrix transposes, reversed order of matrix mul in shaders, removed many small headers... 2019-08-15 00:26:29 +01:00
turanszkij 7a82d57517 vulkan, dx12: new descriptor update method;
vulkan, dx12: new dynamic buffer update method;
other updates;
2019-07-18 00:25:22 +01:00
turanszkij 7aa3e3ad6f refactors, fixes, everything seems to work now with multithreaded renderer 2019-07-02 19:04:00 +01:00
turanszkij e8193eb559 editor update 2019-04-28 19:10:44 +01:00
turanszkij 6fbfe36665 refactor 2019-04-05 00:05:27 +01:00
turanszkij 39eb173635 constness refactor in renderpath, gui and others 2019-03-09 19:09:33 +00:00
turanszkij a2beb98f7c minor fixes, zeromemory macro removals 2019-03-08 22:12:55 +00:00
turanszkij 061c780ad9 refactor-part1:
removed rendertarget helpers;
non-static textures in render paths;
wiGraphicsTypes namespace renamed to wiGraphics;
2019-03-08 21:46:28 +00:00
turanszkij 8b506fc946 refactors and updated gpu queries 2019-02-15 00:39:32 +00:00
turanszkij 381f571458 general updates, refactors 2018-11-01 19:15:32 +00:00
turanszkij 61e2e3addd wiRenderer moved to namespace (finally...) 2018-09-22 14:15:44 +01:00
turanszkij 4fa8ba0be3 propagateSeedDeep serialization functionality;
ecs scripting updates;
renderer shaderinterop;
2018-09-21 18:15:27 +01:00
turanszkij 3ae00c34e7 refactors and start reworking scripting api 2018-09-20 18:47:21 +01:00
turanszkij 26a12876bb ecs serializers update + general refactors 2018-09-19 18:16:36 +01:00
turanszkij 9a2e810e2a updates 2018-09-18 21:37:20 +01:00
turanszkij ffb94b8d8c fixed editor translator/hierarchy 2018-09-16 13:57:19 +01:00
turanszkij 21b4e280a0 updates, fixes and merge in master 2018-09-14 22:36:17 +01:00
turanszkij ecea9f086d simplified transform component;
resurrected hair particle + added editor window
2018-09-12 18:34:54 +01:00
turanszkij dec5cb82d1 updates 2018-08-31 18:39:02 +01:00
turanszkij bd09400f07 editor running but not much happening yet 2018-08-29 17:10:28 +01:00
turanszkij ebe62c5278 refactors, fixes; translator is no longer engine feature, but editor instead 2018-08-23 21:33:21 +01:00