usermattcancel
reposboxcancel

1,380 Commits over 1,066 Days - 0.05cph!

9 Months Ago
Heightfield shape collision (collide directly with heightmap values to save memory and construction time) https://files.facepunch.com/layla/1b2711b1/sbox-dev_te9aXdBHk6.mp4 Bit of cleanup simd cell triangle vertices up front Ray casts and shape casts against heightfield but slow because there's no acceleration structure yet Shape cast against heightfield using swept bounds, awful for long traces but fine for player controller for now Pin heightfield memory to the PhysicsShape so GC can't free it whilst native is using it
9 Months Ago
depthresolve uses min of all msaa samples
9 Months Ago
Pass engine version how web expects it when searching for packages
9 Months Ago
Up Engine API version
9 Months Ago
Remove r_depth_prepass option, we should always be doing it as part of forward+ Depth class uses the pre-resolved depth chain from the prepass instead of trying to sample an MSAA buffer, which was never working on certain MSAA levels and would've required a combo and loads of extra bullshit to do.
9 Months Ago
Add r_depth_debug to visualize the depth buffer
9 Months Ago
Make `ListView.ItemAlign = Align.SpaceBetween` work better, especially when there's not enough items to fill a row
9 Months Ago
ReflectionSerializedObject properties set their PropertyType
9 Months Ago
Wireframe and ToolsVisMode can be driven per-view by Camera attributes instead of global convars
9 Months Ago
vk: "fix" semaphore hang when recreating swapchains vk: always use D32FS8 for depth buffer
10 Months Ago
ui: flex gap scales
10 Months Ago
Material::Init initializes TextureCoords too
10 Months Ago
Update new shader template
10 Months Ago
Remove stereo multiview instancing from debug menu Add Texture.Update<T>( ReadOnlySpan<T> data ) & Texture2DBuilder.WithData<T>( ReadOnlySpan<T> data )
10 Months Ago
Stop using PixelInput for everything (#1336) * PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too * Material shading API can be used without common PixelInput Internals rewritten to remove reliance on a commonly defined PixelInput instead every function just takes what it needs. The only public methods you may have been using were changed like so: ```diff - float3 TransformNormal( const PixelInput i, float3 vNormalTs ) + float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs ) - float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs ) + float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs ) ``` Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... ) stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work with the common PixelInput include. Material::Init() added to initialize a Material with default values Geometric normals are now distinctive from normals in Material too, this is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png And a lot of tool vis modes were fixed too. * Material.AmbientOcclusion float3 -> float
10 Months Ago
PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too Material shading API can be used without common PixelInput Internals rewritten to remove reliance on a commonly defined PixelInput instead every function just takes what it needs. The only public methods you may have been using were changed like so: ```diff - float3 TransformNormal( const PixelInput i, float3 vNormalTs ) + float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs ) - float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs ) + float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs ) ``` Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... ) stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work with the common PixelInput include. Material::Init() added to initialize a Material with default values Geometric normals are now distinctive from normals in Material too, this is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png And a lot of tool vis modes were fixed too. Material.AmbientOcclusion float3 -> float ShaderGraph fixes Fix
10 Months Ago
ShaderGraph fixes
10 Months Ago
Material.AmbientOcclusion float3 -> float
10 Months Ago
PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too Material shading API can be used without common PixelInput Internals rewritten to remove reliance on a commonly defined PixelInput instead every function just takes what it needs. The only public methods you may have been using were changed like so: ```diff - float3 TransformNormal( const PixelInput i, float3 vNormalTs ) + float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs ) - float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs ) + float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs ) ``` Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... ) stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work with the common PixelInput include. Material::Init() added to initialize a Material with default values Geometric normals are now distinctive from normals in Material too, this is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png And a lot of tool vis modes were fixed too.
10 Months Ago
Light fixes Can use Material and shading without PixelInput
10 Months Ago
Lights don't accept PixelInput - explicitly pass positions / lightmap uvs These should be g_vHighPrecisionLightingOffsetWs instead of g_vCameraPositionWs float4 DoAtmospherics( PixelInput i, float4 vColor, bool bAdditiveBlending = false ) -> float4 DoAtmospherics( float3 vInputColor, float3 vPositionWs, float2 vPositionSs, bool bAdditiveBlending = false ) ShadingModel is never going to be an interface like this TransformNormal, NormalWorldToTangent accept explicit parameters instead of PixelInput PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway Delete DryEraseMarker from common ps code PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too Wrap Material funcs that interact with assumed common PixelInput with COMMON_PS_INPUT_DEFINED
10 Months Ago
Lights don't accept PixelInput - explicitly pass positions / lightmap uvs
10 Months Ago
Strip multiview instancing / instancing scalars from engine Remove D_MULTIVIEW_INSTANCING and multiview methods from shaders Remove X360 macros INSTANCING_PARAMS & INSTANCED_SHADER_PARAMS Update system.fxc
10 Months Ago
Strip multiview instancing / instancing scalars from engine Remove D_MULTIVIEW_INSTANCING and multiview methods from shaders Remove X360 macros INSTANCING_PARAMS & INSTANCED_SHADER_PARAMS Update system.fxc
10 Months Ago
Refactor some Graphics files, remove long obsolete methods
10 Months Ago
Add PhysicsWorld debug drawing methods for scenestaging
10 Months Ago
Fix shadergraph error when compiling
10 Months Ago
ResourceControlWidget: Add Open In Editor to context menu Gizmo.SceneSettings.CameraZFar default from 10,000 -> 100,000
10 Months Ago
Get rid of D_MULTIVIEW_INSTANCING combo Revert "Latest compiled shaders" - sunlight shadows are fucked, and are fucked in any new shaders compiled. Not worth me debugging since the new lightbinner doesn't use them and is right around the corner
10 Months Ago
Latest compiled shaders
10 Months Ago
Remove debug flex log
10 Months Ago
Don't destroy PVS if it's also used in another SceneWorld
10 Months Ago
Nah that wasn't it + it already does this further down
10 Months Ago
Fix crash when clearing SceneMap worlds, we were setting PVS to nullptr instead of the default pvs
10 Months Ago
Add SceneParticles.SetNamedValue( string name, Vector3 value )
10 Months Ago
Update shader build github workflow
10 Months Ago
Fix out of bounds write in tiled_light_builder_cs causing nasty undefined behaviour Tiled lighting branches properly, ideally this should be matured enough to not need to be toggled as it's vital to high perf
10 Months Ago
Old envmap code Fix cubemaps always using 1 extra cubemap they shouldn't be (need shader rebuild) Before: https://files.facepunch.com/matt/1b0211b1/sbox_ZJY2zoiVoF.png After: https://files.facepunch.com/matt/1b0211b1/sbox_Gvuv88s1oY.png convolve_environment_map.shader - optimized compile + vk shader
10 Months Ago
Merge latest Valve rendersystemvulkan & rendersystembase changes Primarily this is switching to use VMA, but also dozens of major and minor fixes and general upstream parity with our own changes distinct and clear.
10 Months Ago
Update renderstate
10 Months Ago
Merge latest rendersystemvulkan changes
10 Months Ago
Vulkan BarrierHelper Use barriers for the multipass texture downsampling, this was messing up our depth pyramid making mips look like this: https://files.facepunch.com/matt/1b3111b1/qrenderdoc_bn7FgvAx1n.png
10 Months Ago
Move these procedural layer renderers to not be inline, drop Vr prefix from quad renderer Move tiled light culling to it's own layer renderer ( this should be per-view in the lightbinner really, but I can't touch that right now ) Buffer barriers on the culled lights buffer
11 Months Ago
Clean resource names of textures further to not mistake for absolute path
11 Months Ago
Fucked it
11 Months Ago
IRenderDevice: delete 360 only method GPU Resident Textures debug menu Set debug names for c# loaded images Use schema-less RuntimeTextureSpecificationFlags_t, remove redundant flags
11 Months Ago
Fix Model.Load exception
11 Months Ago
Native Resource Cache Use a sliding window cache alongside weak references for our native resources in C#. There were cases where we were reloading resources every frame because the garbage collector was too good at it's job, so we'll let per frame loads hang around a bit longer. Resolves #1306
11 Months Ago
Clear cache at opportune moments Use NativeResourceCache for other native resources Destroy strong handles on main thread Get rid of debug
11 Months Ago
Give this a go