userSam Pavloviccancel
reposboxcancel

1,819 Commits over 1,553 Days - 0.05cph!

Today
Make baked light complexity only count indexed lights Update shaders
Today
Fix light probe volumes being sampled in wrong color space, mainly made it's light index be wrong
Today
Fix toolsvis fucking alpha of existing translucent materials
3 Days Ago
Fix drop shadow tint not being consistent with CSS Box https://files.facepunch.com/sampavlovic/1b1811b1/0Mw5OMuyj4.png
3 Days Ago
Fix flickering shit on foliage by using conservative alphatest https://files.facepunch.com/sampavlovic/1b1811b1/JjzPJ3w0dN.png
3 Days Ago
Fix stationary lights being treated as dynamic lights (#7667)
3 Days Ago
Add albedo absorption parameter to glass https://files.facepunch.com/sampavlovic/1b1811b1/GpgOqFCTvs.png
4 Days Ago
Remove duplicate nvpatch postbuild event Avoid using parallax for diffuse IBLs, it's causing issues with non-uniform scaled envmaps for minimal actual gains https://files.facepunch.com/sampavlovic/1b1711b1/SMr1GfypB3.png
7 Days Ago
Feathering from legacy maps should point outwards rather than innards, still approximate with current behavior of world units
9 Days Ago
Readd IndirectLightScale property to lighting entities for enhanced control over light bounce brightness, values beyond 1.0f are not energy conserving https://files.facepunch.com/sampavlovic/1b1311b1/sbox-dev_6TJvtGnbXi.png
9 Days Ago
Revert "Use Unix trailing paths for codegen" This reverts commit eb86cb41a20dc2d3b57a0b5a67b2be5563d4d513.
9 Days Ago
Mac/Linux build scripts Mac: Add Makefile for VPC so we can actually build it without actually having vpc Rename some IOSALL flags to just PLATFORM_APPLE, we always imply arm64 SDL_config doesnt always imply windows Update gitignore Mac: Managed Build Scripts, no need for nvpatch for non-windows targets Use Unix trailing paths for codegen
9 Days Ago
[Pick] Set platform and Struct Pack Size properly from Facepunch.Steamworks
9 Days Ago
Linux/Mac: Resourcecompiler is only available on Windows right now, Clang/GCC has different behavior -std=c++20, revisit when back on mac Linux: HarfBuzzSharp and SkiaSharp native binaries [Pick] Linux: Remove references to loading Pango Fix Developer-BuildAll.sh
11 Days Ago
Linux: Required dependencies for libvideo, steam audio & dxcompiler
11 Days Ago
Linux: We are looking for linuxsteamrt64 instead of linux64, worth seeing to move that to just linux64 once it's working [Pick] Stub out FontManager on linux, this should be piped through UI2, removes a bunch of dependencies, android uses vulkan
11 Days Ago
Mac/Linux: Add MoltenVK Library, Set C++20 only for C++, explicit string conversion
11 Days Ago
Linux/Mac: Remove hardcoded directories. For Mac, we'll run a .sh to set DYLD_LIBRARY_PATH since we can't do it on the application itself (WTF AAPL)
11 Days Ago
Label Linux CI test properly without ambiguity
11 Days Ago
Create pull-linux-test.yml
11 Days Ago
Linux: Add Steam APIs, use SteamNetworkingSockets for Linux, same functionality as GameNetworkingSockets Explicitly delete copy constructors for thread tools and lean vectors, certain GCC versions are bitching about this?
12 Days Ago
[Pick] Linux: Remove any references to P4 on base makefiles, makes it stop bitching, add gitignore for linux files
12 Days Ago
[Pick] Linux: Fix case sensitivity on files, fix windows-only stuff Linux/Mac: Fix sed on both platforms, fix some rebase errors, Mac uses GameNetworkingSockets name without _s even though static, fix signature updates of hlsl_shader_compiler for stub, use c++20 everywhere
12 Days Ago
Mac: Add Makefile for VPC so we can actually build it without actually having vpc Rename some IOSALL flags to just PLATFORM_APPLE, we always imply arm64 SDL_config doesnt always imply windows Update gitignore Mac: Managed Build Scripts No need for nvpatch for non-windows targets Mac: Use Unix trailing paths for codegen, this should be fine on Windows too Backport new tier0 threadtools stuff for process thread creation, fixes things that were missing from our initial code drop Mac: update VPC, still needs cleanup, builds all but need to sort linking and .mm files Mac: Encapsulate Windows-specific code and error handling Mac: Finish setting up makeile for VPC on Mac ARM64 Mac: Remove some definitions for OSX64 for OSXARM64 Mac: Add prebuilt macOS vpc Mac: Fix OSXARM64 conditionals, update VPC binary Mac: Add gitignore rules for Xcode crap files and add build native step for POSIX Don't try to to build path from empty dependency string for a VPC Makefile dependency Mac: Cleanup source_posix_base, update SDK versions and build settings for macOS, just use latest SDK version, target Sonoma, don't use 10 year old tools for cc Mac/Linux: chmod +x on vpc_script bash scripts Mac: ISO C++20 Fixes Update .gitignore and build scripts, fix permission on antlr, some small code fixes Mac: fix copy_postbuild.sh Mac: add xcode_codesin.sh and xcode_gen_dsym.sh Mac: update osxarm64 vpc binary Mac/Linux: Add support for OSXARM64 platform for schemacompiler, fix CBaseFileSystem::GetModPath override, zip_utils on posix and vpc doesn't need to link from all these on other platforms Mac: libsteam_api platform_compile_base makes weird assumptions for using CLANG or GCC on windows Izabu/Mac/ARM: Izabu implies SSE SIMD, shim it with sse2neon, fix constructor on IzPulleyJoint Mac/Linux: Remove bunch of win32 & x86 implications, casting for Clang, -Wno-register, multiplat build retail native Mac: Use GameNetworkingSockets outside of windows builds, build EtcLib for arm64 Mac: libpnga Mac: GameNetworkingSockets and SteamAPI libs on game folder Convert .dlls to platform-specific (linux/mac) equivalents on GlobalParser for nativedlls in interopgen Mac: SDL2 dylib Only run nvpatch on windows for all C# projects that use it Linux: make prebuilt binary of vpc executable Linux: Skip nvpatch.exe for all projects when not on Windows Linux: Add Linux platform to build scripts Linux: Add original from /engine branch Linux: Remove GCC 5 version requirement and set -std=c++20 [Pick] Use multiplatform SDL config instead of one hardcoded for windows, might make more sense to eventually just use mainline SDL2 entirely Mac/Linux: Unmangle SDL in other platforms too, we're trying other platforms and you're still alive Linux: Add various hacks/fixes to bring `schemacompiler` up to the link step. THIS MAY BREAK SOMETHING. Linux: Add an auto-generated SDL_config_linux.h which is specific to my system, but we need to start somewhere. Later, this will be made specific to Steam Runtime. Mac/Linux: Some more platform guards, tier0_utils_base.h not being declared, Invoke ErrorReport crash without dummy variable, fixes unused variable warning Mac: Link to SDL implicitly on source_exe_posix_base.vpc, add this to the folder if you're working on a new platform Linux: Remove `gendbg.sh` and `sourceindex_p4posix.py` from build process because we don't have them Mac: libSDL2-2.0.0.dylib > libSDL2.dylib Mac: Target OSX 15.0 Mac/Linux: Link SDL against tier0 too, windows does it implicitly on code Mac/Linux: MacOS can compile from sys/sysctrl.h just fine, remove vector.h from outside header guard in ssemath_impl Linux: Fix Makefile to build VPC on Linux (expects libSDL2 to be present system-wide) Linux: Define EXPLICIT macro for all compilers Linux: Make sure the `schemacompiler` is executable (because it wasn't) Mac: Update VPC binary for OSX NEON: MaxComponent doesn't exist, use Vector::LargestComponent() [DON'T MERGE] Stub out WindowsGlue, this should be on managed or we could use something like tinyfiledialogs Use ISO C++ instead of MSFT extensions for try catch on managed calls, double check if this is correct Cupertino/Penguin: Zip works with ISO-C++, use standard keywords in other stuff that was using MSFT standard Cupertino/Penguin: Cast some stuff properly, explicit casting, threadtools missing ThreadGetCurrentProcessId() Cupertino/Penguin: Wrap inputsystem stuff into windows conditionals, implement equivalent hopefully in SDL Clang doesn't like conditionals for this, make if else explicit wtf Cupertino/Penguin: Steam Audio 4.5.2 on all 3 platforms Cupertino/Penguin: Define Steam Audio directly, move SDL2 from Tier0 & Posix DLL Base to Posix Base [REVIEW, DONT MERGE?] Mac/Linux: Platform guards for fpxr and lipsync, this is the worst way to do this, should see a way for interopgen to have platform conditionals Remove some dead code that cause issues on clang, particles were all using wrong function signature, are these dead code too? Refactor stuff to work on linux/mac, mostly platform typos Shader compilation only on windows right now, dxc should support other platforms, add Mac version of dxcompiler lib anyway platform_compile_base had this seemingly unused GUID identifier that was causing conflicts in both lzma and dxc winadapter Get WinAdapter working for Dxc Mach Dxcompiler binary not really compatible, might be tricky to use microsoft's dxc without dxil, a task for another day Add hlsl_shader_compiler_stub Vulkan: Exclusive fullscreen is only a thing on windows Add dxc & dxcompiler from Vulkan build, organize this all in win64/osxarm64 Add MoltenVK directly Mac: Vulkan adjustments for metal platform, OpenGL is nevermore on OSX rendersystemvulkan builds on all platforms lzma has inconsistent binary output dir Linux: Various little #ifdef fixes regarding Linux specifics, C++20 and a strange macro definition of "None" Linux: Use GNU++20 instead of C++20 because the code is making use of some GNU extensions in macros Linux: Add precompiled binaries libsteam_api.so, libGameNetworkingSockets.so, libpng.a and libdxcompiler.so because we don't compile them ourselves. Mac: Add libs and missing dependencies for GameNetworkingSockets, update GameNetworkingSockets Mac: Libvideo, libSkiasharp, libmpg123 binaries Mac: libHarfBuzz and libdxcompiler, configdefaults.osx.vcfg ( do we need this? :S ) Game boots again [DONT MERGE] Mac: Hardcode some paths and fix trailing slashes, note that outside windows steam_api64 dll is just called steam_api Linux: Don't undefine lerp on expressioncalculator, we should see where it's using namespace std to get std::lerp wrongly, make it ifdef linux if all else fails Readd inline source compilation to renderdevicevulkan, do conversion to wchar directly Linux: Solve the lerp/std::lerp ambiguity with an #ifdef LINUX (math.h has using std::lerp on Linux, unfortunately) Linux: Specify --allow-multiple-definitions to allow stubbing out the API OVRLipSync.h Linux: Add gendbg.sh from engine/ branch and use it Linux: Fix typedef for Clang (__sFILE FILE vs. _IO_FILE FILE) Linux: Resolve ambiguity between std::byte and typedef byte for Clang in one specific case Linux: Disable .cfi_sections directives entirely for x64 SystemV ABI to avoid confusing assemblers and restore the original code for all other platforms Linux: Use the compiler flags for Clang on OSX/Android for all POSIX platforms. Linux: Replace CUtlVector with std::vector because it was causing a crash on destruction. Linux: Replace CSceneParticleObject* with void* using sed in 4.sh Linux: Replace the old VPC binary with a newer one because the old one doesn't work anyways Linux: Silence all compiler warnings until we fell ready to fix them because it's so many that they slow down the build Linux: Add missing libSDL2.so which is required to build Mac: Fix sed and FILE struct for mac, should work on linux too, I'll double check, getting this to boot on mac/linux again and slowly trickling this branch to master Mac/Linux: Use static version of gamenetworkingsockets, cuts a lot of the mess of dependency hunting Mac: OSX doesn't allow setting DYLD PATH from the application itself, make it parse these relative to the current directory, load correct steam DLL regardless of platform Mac/Linux Add Developer-BuildAll.sh for Posix to make it easier to debug, but without tools
14 Days Ago
Bind instance ID buffer too, remove all this bullshit, keep initial transforms at 1 million like it was for now
14 Days Ago
[pick] Compute skinning as structured buffer, simpler, easier to understand and removes need to do encoding, doesn't affect existing shaders Add previous frame buffer offset [Pick] use CUtlMemory for transform buffer instead of a fixed transform size that crashes, allows for it to be smaller and alloc as much as it needs, needs testing
16 Days Ago
Motion vector experiments https://files.facepunch.com/sampavlovic/1b0511b1/ShareX_18HStfTFsS.mp4
16 Days Ago
We aren't using m_pTransformBufferPrevData and probably won't need to with compute transforms, also remove m_hTransformTexture which has been deprecated for years
17 Days Ago
Apply offset when sampling Prepass Normals https://files.facepunch.com/sampavlovic/1b0411b1/dfC5VELlYw.png
18 Days Ago
Pass screen size to managed texture we create for depthnormal gbuffer, dimensions must match the swapchain, which resized viewports don't match
18 Days Ago
DepthNormals mode fallback if shader doesn't have it
18 Days Ago
Update shaders
18 Days Ago
DepthNormalPrepassLayer stub, DepthNormal shader class consumes from S_MODE_DEPTH DepthNormals mode, uses values directly instead of Material, attach it to ShadingModels Ignore and don't compile combo if it's not referenced by a mode or feature instead of erroring out, e.g. We want to reference DepthNormal.hlsl everywhere in Class.hlsl, but we want to only have combos for it if we're using a DepthNormal mode without complicating the codebase, this way when adding a new mode that references that combo, it's added to the shader without convoluting the source, argue with me if you think this is shit behavior Temp bind FindOrCreateRenderTarget and use managed rendertarget for depthnormalprepasslayer Should be continue rather than break, fix undefined identifier if S_MODE_DEPTH_NORMAL is not set Pass MSAA value from pipeline, make DepthNormals a dynamic combo instead of a mode, conditional Add Normals.hlsl, with fallback if no depthnormals are available, add Bindless::GetTexture2DMS Adjustments, Depth Prepass Depth Only under a convar, do depthnormals without size cull threshold GTAO uses Normals::Sample() instead of recalculating normals from depth https://files.facepunch.com/sampavlovic/1b1711b1/sbox-dev_e5dHGELNmU.mp4 Bind ClearFlags, this should probably be implicit Just use DepthNormalPrepassLayer, use depthnormal mode again Add DepthNormal() mode to lit shaders, this seem the most straightforward way to do this, shaders with just Depth() usually have a shared shader with no-color no-material output, legacy shaders rebuild normals from depth, not rendered in depthnormals mode https://files.facepunch.com/sampavlovic/1b2711b1/hSVL6jr1Rx.png Remove old no-normals depth prepass, keeps things simple, effects that we use will need to rely on depthnormals, doesn't add too much cost Fix typo on gtao Reconstruct Normals::Sample from depth if underlying texel doesn't use DepthNormal mode https://files.facepunch.com/sampavlovic/1b2711b1/DdYOdR9WrI.png
21 Days Ago
Add support for custom I16F color format, a generic grayscale 16-bpp float texture, unlike R16F it'll sample all channels to gray (#1813)
22 Days Ago
Add support for custom I16F color format, a generic grayscale 16-bpp float texture, unlike R16F it'll sample all channels to gray
23 Days Ago
Update shaders Fix implicit truncation
23 Days Ago
Mode fallback / VrForward > Forward (#1805) * Add Mode fallback, used for both using Depth() as a fallback if shader doesn't have DepthNormal() and to move VrForward() to just Forward() * VrForward > Forward, reverse fallback so that old shaders with VrForward use that still * Remove duplicate Forward() and remove DepthNormal fallback * Put mode fallbacks on materialsystem init instead of gameinfo
23 Days Ago
GrabFrameTexture/GrabDepthTexture returns grabbed render target instead of void
23 Days Ago
Use BC7 for default material input, higher precision than DXT5, this whole material input stuff feels like bogus now Make sure we don't composite SSAO/SSR to glass, this can handled better https://files.facepunch.com/sampavlovic/1b2911b1/rcWAoleK3t.png
24 Days Ago
Remove duplicate Forward() and remove DepthNormal fallback Put mode fallbacks on materialsystem init instead of gameinfo
24 Days Ago
Add Mode fallback, used for both using Depth() as a fallback if shader doesn't have DepthNormal() and to move VrForward() to just Forward() VrForward > Forward, reverse fallback so that old shaders with VrForward use that still
25 Days Ago
Reconstruct Normals::Sample from depth if underlying texel doesn't use DepthNormal mode https://files.facepunch.com/sampavlovic/1b2711b1/DdYOdR9WrI.png
25 Days Ago
Add DepthNormal() mode to lit shaders, this seem the most straightforward way to do this, shaders with just Depth() usually have a shared shader with no-color no-material output, legacy shaders rebuild normals from depth, not rendered in depthnormals mode https://files.facepunch.com/sampavlovic/1b2711b1/hSVL6jr1Rx.png Remove old no-normals depth prepass, keeps things simple, effects that we use will need to rely on depthnormals, doesn't add too much cost Fix typo on gtao
25 Days Ago
Bind ClearFlags, this should probably be implicit [Pick] Add Mode fallback, used for both using Depth() as a fallback if shader doesn't have DepthNormal() and to move VrForward() to just Forward() Just use DepthNormalPrepassLayer, use depthnormal mode again [Pick] VrForward > Forward, reverse fallback so that old shaders with VrForward use that still
28 Days Ago
DepthNormalPrepassLayer stub, DepthNormal shader class consumes from S_MODE_DEPTH DepthNormals mode, uses values directly instead of Material, attach it to ShadingModels Ignore and don't compile combo if it's not referenced by a mode or feature instead of erroring out, e.g. We want to reference DepthNormal.hlsl everywhere in Class.hlsl, but we want to only have combos for it if we're using a DepthNormal mode without complicating the codebase, this way when adding a new mode that references that combo, it's added to the shader without convoluting the source, argue with me if you think this is shit behavior Temp bind FindOrCreateRenderTarget and use managed rendertarget for depthnormalprepasslayer Should be continue rather than break, fix undefined identifier if S_MODE_DEPTH_NORMAL is not set Pass MSAA value from pipeline, make DepthNormals a dynamic combo instead of a mode, conditional Add Normals.hlsl, with fallback if no depthnormals are available, add Bindless::GetTexture2DMS Adjustments, Depth Prepass Depth Only under a convar, do depthnormals without size cull threshold GTAO uses Normals::Sample() instead of recalculating normals from depth https://files.facepunch.com/sampavlovic/1b1711b1/sbox-dev_e5dHGELNmU.mp4
28 Days Ago
Make shaders compile with Vulkan 1.2, allows for wave ops instructions used in new SSR, etc Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics Bitch when variables are uninitialized in HLSL, can cause all sorts of weird undefined behavior in certain drivers Fix warnings on all shaders, remove D_EYE_WHITE (bullshit?) Avoid sampling diffuse cubemap for fog at lod0 to not have fireflies like in Eagle One Rain Demo
29 Days Ago
Reapply "Bindless lightmaps/Lightmap Combo Removal (#1765)" This reverts commit de7b93d17c7a036a567347794ca51163132ef42a. Reapply BATCH_FLAGS_CONTROLLING_COMBO_CHANGES for legacy shaders, accidentally removed binding lightmap for legacy shaders Initialize vertex output of lightmap uv when lightmapping is disabled Update drivers with bindless lightmaps & amd fix
29 Days Ago
update shaders
29 Days Ago
Initialize vertex output of lightmap uv when lightmapping is disabled
29 Days Ago
Reapply "Bindless lightmaps/Lightmap Combo Removal (#1765)" This reverts commit de7b93d17c7a036a567347794ca51163132ef42a. Reapply BATCH_FLAGS_CONTROLLING_COMBO_CHANGES for legacy shaders, accidentally removed binding lightmap for legacy shaders Build shaders