1,728 Commits over 1,491 Days - 0.05cph!
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
vLevel isn't const
Update path of build-shaders, upload all shaders as artifacts
Fix EnvironmentMapLight::GetEnvMapColor using deprecated variable
Compiled shaders with ao viewporting changes
CommandLists SetConstantBuffer and be able to specify mip
Motion::TemporalFilter is converting from Pixel Coordinates to UV not the other way around
Fix ambient occlusion in offsetted viewports
Calculate aspect ratio from viewport size rather than screen size, fixes splitscreen viewports being fucked up
https://files.facepunch.com/sampavlovic/1b2811b1/sbox-dev_19tjSjbPcm.png
Compiled shaders with ao viewporting changes
CommandList.SetData > CommandList.SetConstantBuffer
[Pick] Calculate aspect ratio from viewport size rather than screen size, fixes splitscreen viewports being fucked up
https://files.facepunch.com/sampavlovic/1b2811b1/sbox-dev_19tjSjbPcm.png
Fix ambient occlusion in offsetted viewports
Adjustments, default old components to ssao
Move AmbientOcclusion to Command Lists
Constant Buffers in Command List
Iterate minimum Camera.hlsl, no Time.hlsl for now
Camera.hlsl and Time.hlsl stubs
Fix EnvironmentMapLight::GetEnvMapColor using deprecated variable
Update path of build-shaders, upload all shaders as artifacts
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
vLevel isn't const
Update shaders, might get stumped with AO changes but i'll just build them back
Squashed commit of the following:
-GTAO
-Aoproxy removal
Split between SSAO and GTAO
Start moving gtao to command lists, adjustments
Start moving gtao to command lists, adjustments
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
Squashed commit of the following:
-GTAO
-Aoproxy removal
Split between SSAO and GTAO
Squashed commit of the following:
-GTAO
-Aoproxy removal
Split between SSAO and GTAO
Composite SSAO on Lighting rather than Blitting (#1677)
Update shaders, might get stumped with AO changes but i'll just build them back
Replace AO on shader with a single, non-directional AO but that composites properly, older shaders wont have incompatibility problems, also makes Dynamic Reflection work without ao
SampleScreenSsMSAA to composite non-MSAA screen effects ( SSR, AO, etc ) into an MSAA buffer
https://files.facepunch.com/sampavlovic/1b1711b1/05csVIYZJM.png
Fix AO compositing for custom shaders
https://files.facepunch.com/sampavlovic/1b2111b1/CRqx99maFj.png
Add compiled shaders for AO including for Material shaders
Composite AO to pipeline rather than blitting, cleanup
AddHookAfterTranslucent > AddHookAfterDepthPrepass
[Pick] Add internal Graphics.FrameAttributes, up to review
Remove hack for clearing AO and use FrameAttributes instead
[pick] GetBindlessRWTextureXXX if compute shader
Move all ambient occlusion sampling to AmbientOcclusion.hlsl, bindless sampling
RWTextureCubeArray doesnt exist, should just be a RWTexture2DArray
[pick] Fog.hlsl cant be sampled from compute shaders in compute shaders that also ref lighting.fxc
[pick] Fix include guards for hlsl classes, fixes declaration in both standard and material shaders, fix AO sampling
Update shaders with bindless SSAO sampling
Do a simple texture fetch for AmbientOcclusion::Sample, simplify SampleScreenSsMSAA
Compile shaders without MSAA sampling for AO
Child camera executes command lists from camera it's taking attributes from
Internal CommandList with calling action directly
Temp pass RenderEffect inside the command list directly
Fix validaiton error in old AO where we were writing normals when never bound
Execute procedural layers ( managed hooks ) before threaded action to set up geometry, this fixes race condition in viewattributes from hooks
Previously FrameAttributes/ViewAttributes were working to pass to the rest of the pipeline merely because of a race condition and would break down in low framerates and wouldn't actually pass changed view attributes to those partitions in the correct order ( https://i.imgur.com/fW4VPVJ.mp4 ), this does it properly
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
Envmap feathering defaults to much tighter
SkyIndirectLighting param in hammer env_sky since it seems it never was there
Fix validaiton error in old AO where we were writing normals when never bound
Execute procedural layers ( managed hooks ) before threaded action to set up geometry, this fixes race condition in viewattributes from hooks
Previously FrameAttributes/ViewAttributes were working to pass to the rest of the pipeline merely because of a race condition and would break down in low framerates and wouldn't actually pass changed view attributes to those partitions in the correct order ( https://i.imgur.com/fW4VPVJ.mp4 ), this does it properly
Internal CommandList with calling action directly
Temp pass RenderEffect inside the command list directly
Clear volumetric fog texture on creation, this seems to could've caused problems even back on Alyx but issue is bigger now that we don't write to all volumetric fog froxels at once
Fix ClearUnorderedAccessViewUint not clearing properly for Texture2DArray and Texture3D
Child camera executes command lists from camera it's taking attributes from
Replace AO on shader with a single, non-directional AO but that composites properly, older shaders wont have incompatibility problems, also makes Dynamic Reflection work without ao
SampleScreenSsMSAA to composite non-MSAA screen effects ( SSR, AO, etc ) into an MSAA buffer
https://files.facepunch.com/sampavlovic/1b1711b1/05csVIYZJM.png
Fix AO compositing for custom shaders
https://files.facepunch.com/sampavlovic/1b2111b1/CRqx99maFj.png
Add compiled shaders for AO including for Material shaders
Composite AO to pipeline rather than blitting, cleanup
AddHookAfterTranslucent > AddHookAfterDepthPrepass
[Pick] Add internal Graphics.FrameAttributes, up to review
Remove hack for clearing AO and use FrameAttributes instead
[pick] GetBindlessRWTextureXXX if compute shader
Move all ambient occlusion sampling to AmbientOcclusion.hlsl, bindless sampling
RWTextureCubeArray doesnt exist, should just be a RWTexture2DArray
[pick] Fog.hlsl cant be sampled from compute shaders in compute shaders that also ref lighting.fxc
[pick] Fix include guards for hlsl classes, fixes declaration in both standard and material shaders, fix AO sampling
Update shaders with bindless SSAO sampling
Do a simple texture fetch for AmbientOcclusion::Sample, simplify SampleScreenSsMSAA
Compile shaders without MSAA sampling for AO
Specify .net 9 for shaders.yml
Fix sampletexture_bicubic (is anything using it)?
Compiled shaders with correct specular brdf
Fix sampletexture_bicubic (is anything using it)?
Specify .net 9 for shaders.yml
Penguin: 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
Specify setup-dotnet version for shaders.yml
[DONT MERGE] Cupertino: Hardcode some paths and fix trailing slashes, note that outside windows steam_api64 dll is just called steam_api
Cupertino: Libvideo, libSkiasharp, libmpg123 binaries
Cupertino: libHarfBuzz and libdxcompiler, configdefaults.osx.vcfg ( do we need this? :S )
Game boots again
Cupertino: Add libs and missing dependencies for GameNetworkingSockets, update GameNetworkingSockets
rendersystemvulkan builds on all platforms
lzma has inconsistent binary output dir
Vulkan: Exclusive fullscreen is only a thing on windows
Vulkan: Pretty sure this compilation step in renderdevicevulkan goes unused now, checking once game boots again
Add dxc & dxcompiler from Vulkan build, organize this all in win64/osxarm64
Add MoltenVK directly
Vulkan adjustments for metal platform, OpenGL is nevermore on OSX
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
platform_compile_base had this seemingly unused GUID identifier that was causing conflicts in both lzma and dxc winadapter
Get WinAdapter working for Dxc
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
[REVIEW, DONT MERGE?] Cupertino/Penguin: Platform guards for fpxr and lipsync, this is the worst way to do this, should see a way for interopgen to have platform conditionals
Cupertino/Penguin: Define Steam Audio directly, move SDL2 from Tier0 & Posix DLL Base to Posix Base
Cupertino/Penguin: Steam Audio 4.5.2 on all 3 platforms
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(), should fuck off with shapemanager
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: Update VPC binary for OSX
Cupertino: libSDL2-2.0.0.dylib > libSDL2.dylib
Cupertino: Target OSX 15.0
Cupertino/Penguin: Link SDL against tier0 too
Cupertino/Penguin: MacOS can compile from sys/sysctrl.h just fine, remove vector.h from outside header guard in ssemath_impl
Cupertino/Penguin: Some more platform guards, tier0_utils_base.h not being declared, Invoke ErrorReport crash without dummy variable, fixes unused variable warning
Cupertino: Link to SDL implicitly on source_exe_posix_base.vpc, add the dingus to the folder if you're working on a new platform
Cupertino/Penguin: Unmangle SDL in other platforms too, we're trying other platforms and you're still alive
[Pick] Use multiplatform SDL config instead of one hardcoded for windows, might make more sense to eventually just use mainline SDL2 entirely