Archived
1
Fork 0
Commit graph

131 commits

Author SHA1 Message Date
e68d6bceeb Fix a ton of issues in the Metal backend
* Remaining push constant issues should be phased out, more changes to
come regarding declaring shader resources to make it less error-prone,.
* Sampler creation is restored for create_texture, for now.
* EndRenderPass command type is now supported, to partially reset render
state when needed.
2022-06-27 14:10:31 -04:00
ca2c2c9d3d Move all engine-specific models, materials etc. to a new base directory
This is a huge change, and basically breaks everything (as per usual!)

First of, this includes stuff like shaders so anything involving those
are broken and then fixed. A new BuildAssets cmake file is added to
aid in running AssetCompiler, and it seems to work fine on the engine
base assets.

The File API will eventually be revamped to handle this new way of
organizing the files and domains will eventually be gotten rid of all
together since I probably will replace it with game directory
priorities. As it stands right now, there isn't a way to easily
replace say - render_options.cfg with your own game-specific version.

Apple builds are probably broken by this commit (since I'm moving
around content and shader directories) to be fixed later.
2022-05-21 18:28:48 -04:00
ecea7f990e Seperate exposure pass from the rest of post processing
This prevents gamma-weirdness with SMAA
2022-04-04 12:15:15 -04:00
b5655efe0e Fix more stuff in SMAA pass
Now it's no longer flipped for some reason, gamma correction soon to follow
2022-04-04 11:06:39 -04:00
37866a9470 Fix implicit render pass dependencies and some more validation warnings 2022-04-04 10:38:08 -04:00
f036198bb9 Fix SMAA border color and nearest filter on search texture 2022-04-04 08:35:02 -04:00
eecc88ddcc Remove some debug messages 2022-04-04 08:22:25 -04:00
239ecc8d56 Revert "Another big WebGPU compatibility patch"
This reverts commit 3229c4fa2c.
2022-03-10 10:21:09 -05:00
dbc03078de Revert "Start to separate combined image samplers"
This reverts commit a0d92be759.
2022-03-10 10:21:03 -05:00
71d0eff8dc Revert "Next big changes to make WebGPU work"
This reverts commit 0a95ee2fa8.
2022-03-10 10:20:50 -05:00
0a95ee2fa8 Next big changes to make WebGPU work
Dynamic buffers are removed, since that's now the renderer's job. Texture usage and buffer usage has changed too.
2022-03-07 11:11:17 -05:00
3229c4fa2c Another big WebGPU compatibility patch
All specialization constants are removed (they cause trouble in
WebGPU, since they don't support array sizing, and it was a pain
in Metal anyway) - they are now macro defined. WebGPU now runs, although
push constant emulation is not implemented yet.
2022-03-07 00:33:44 -05:00
a0d92be759 Start to separate combined image samplers
This is to be in line with requirements from HLSL/DX12 and WebGPU,
both of which do not support this. It's probably better to get
started removing our usage of them now :-)
2022-03-06 22:45:08 -05:00
1c8e563e10 Static cast to float in ShadowPass::render_sun 2022-03-06 19:17:32 -05:00
f49ef792ab Remove old macro'd render options 2022-03-06 19:17:09 -05:00
46f9e99b94 Revert changing buffer index locations
This appeases Metal again
2022-03-06 17:23:01 -05:00
9dc43d9502 Add material path to pipeline debug name 2022-03-06 17:22:45 -05:00
bbff84eb61 Actually disable normal shadowing 2022-02-21 17:09:32 -05:00
a456dcb41a Disable expensive normal self-shadowing by default 2022-02-21 17:05:41 -05:00
a039d43d2e Fix a stupid typo in materialcompiler.cpp 2022-02-21 15:57:38 -05:00
7b67ed73d8 Use fmt::memory_buffer in material compiler 2022-02-21 13:20:55 -05:00
ea3049cb8a Remove default arguments in GFX api 2022-02-21 00:16:02 -05:00
0265f1920e Default initialize some more variables in example 2022-02-21 00:15:46 -05:00
b0d875832d Add [[nodiscard]] to some more methods 2022-02-21 00:14:47 -05:00
4d9a333781 Remove, cleanup some constructors 2022-02-21 00:14:12 -05:00
e13af96a72 Remove some unnecessary header includes 2022-02-21 00:13:45 -05:00
516c2129eb Remove old font.hpp 2022-02-21 00:12:09 -05:00
3cdeebf6bc Reduce the indices of the vertex buffers in an attempt to make WebGPU happy 2022-02-20 22:28:54 -05:00
da45d16388 Protect against buffers that actually don't have their contents mapped 2022-02-18 17:38:27 -05:00
4f6dbb8677 Only run SMAA when AA is actually enabled 2022-02-18 14:37:51 -05:00
8237eeb05b Fix Metal backend (finally) 2022-02-18 14:36:38 -05:00
6935f85351 Start work on converting GFXMetal to metal-cpp 2022-02-15 11:25:13 -05:00
2ce04b686d Merge remote-tracking branch 'origin/master'
# Conflicts:
#	engine/gfx/CMakeLists.txt
2022-02-15 09:25:08 -05:00
840a1e861f Add back support for normal textures in material compiler 2022-02-15 09:02:42 -05:00
e910425dc5 iOS builds now successfully build 2022-02-12 20:24:54 -05:00
9ee41d01b6 Remove some old and unused render pipelines 2022-02-08 09:37:39 -05:00
2c75d51278 Add parameters for metallic and roughness back
This also makes them modifiable in the debug menu at runtime
2022-02-08 08:50:10 -05:00
78078e92cd Fix multiple point light shadows on Vulkan
Light locations had to be padded properly, that ended up being the ultimate fix. Leading to this bug though I ended up patching a lot of stuff that was mysteriously missing from the Vulkan backend like specialization constants and
2022-02-07 18:36:23 -05:00
8816d64e42 Don't render shadows unless it's actually enabled on the light 2022-02-07 15:52:11 -05:00
ea93df18dd Remove all push constant binding declarations
This was a leftover from sharing GLSL with Metal and OpenGL, this is now a warning with modern SPIR-V compilers anyway.
2022-02-07 10:11:19 -05:00
8502521934 Rip out the material node system
This was over engineered, and it's blocking progress in the model compiler. Now it's
simpler, but not all features are implemented back.
2022-02-03 10:00:59 -05:00
redstrate
e79a98c7d2 Some minor code refactoring 2021-10-14 08:51:58 -04:00
redstrate
3f2be1e26a Fix viewports not rendering when index == nullptr 2021-10-13 10:38:10 -04:00
redstrate
a78a18a99a Set scissor for imgui commands 2021-10-13 07:25:18 -04:00
redstrate
a2f81d7ca7 Allow better DPI handling under SDL, handle external resize events in imgui 2021-10-12 11:06:59 -04:00
redstrate
8205f65a8e Clean up a bunch of pass/backend code for imgui 2021-10-12 10:52:29 -04:00
redstrate
c6bc56d033 Change window handles into opaque pointers 2021-10-12 10:22:16 -04:00
redstrate
529bc27702 Replace old logging and format system with fmt 2021-09-13 23:41:54 -04:00
redstrate
626e314ec2 Completely remove the defunct UI system 2021-09-13 23:10:26 -04:00
redstrate
e8bf0a8371 Create presentation command buffers for each surface instead of sharing globally
* Fixes multi-window vulkan validation errors because surfaces would just keep overwriting each other's command buffers.
2021-06-01 12:05:48 -04:00