userSam Pavloviccancel

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

9 Months Ago
CI fails building shaders when machine is coming from a branch that was deleted, full checkout action should be enough for pulling?
9 Months Ago
Be able to disable cubemap normalization without S_TOOLS_VIS on shader
9 Months Ago
Add HandlePendingSwapChainResize for explicitly handling swapchain resize events before doing any work, fixes NativeRenderingWidget.RenderScene rendering on a frame with different window size than the actual swapchain ( and then having invalid color/depth buffers)
9 Months Ago
Don't flag SceneObject and SceneModel as ESceneObjectFlags.IS_OPAQUE, the materials should dictate it, fixes translucent materials drawing in opaque passes (& drawing twice)
9 Months Ago
Cubemapper tests Remove all ggx code for now & just copy directly to cubemap array TextureCube with mipmaps and arrays and mipmaps Move texture logic from cubemapper to c# Stub for cubemapper_cs, will calculate both GGX and spherical harmonics all in GPU Handle all array index stuff in cubemapper Allow for single sliced cubemap array, needed to be able to render an independent texture in the renderer since it expects a TextureCubeArray, also allow TSPEC_CUBE_CAN_SAMPLE_AS_ARRAY if we want UAV Also fix a problem where CTextureManagerVulkan::GetImageView wouldn't work with a cubemap array as a rwtexture2darray in compute shaders Fix cube orientation when copying, do texture per envmap probe instead of a singleton array, this will cause headaches with multiple envmaps intersecting but makes it much simpler GGX filtering Don't bother with writing cubemap normalization right now (in fact disable it for now!), reuse previous mip so that we have more quality with less samples Assert isn't valid anymore in ComputeImageViews since we can pass a cube array Do cubemapper processing of all faces at once without using intermediary copies, 4-8x speedup (~17ms > ~2.5ms), still needs to be faster https://i.imgur.com/b61mX1Y.png Rendersystemvulkan: Alllow binding specific cubemap [ & arrays ] mips if UAV
9 Months Ago
Actually set D_MSAA combo on depth_downsample
9 Months Ago
Vulkan: Fix validation errors with MSAA disabled, this should fix a lot of crashing problems for people playing without MSAA
10 Months Ago
Cubemapper tests Remove all ggx code for now & just copy directly to cubemap array TextureCube with mipmaps and arrays and mipmaps Move texture logic from cubemapper to c# Stub for cubemapper_cs, will calculate both GGX and spherical harmonics all in GPU Handle all array index stuff in cubemapper Allow for single sliced cubemap array, needed to be able to render an independent texture in the renderer since it expects a TextureCubeArray, also allow TSPEC_CUBE_CAN_SAMPLE_AS_ARRAY if we want UAV Also fix a problem where CTextureManagerVulkan::GetImageView wouldn't work with a cubemap array as a rwtexture2darray in compute shaders Fix cube orientation when copying, do texture per envmap probe instead of a singleton array, this will cause headaches with multiple envmaps intersecting but makes it much simpler GGX filtering Don't bother with writing cubemap normalization right now (in fact disable it for now!), reuse previous mip so that we have more quality with less samples Assert isn't valid anymore in ComputeImageViews since we can pass a cube array Do cubemapper processing of all faces at once without using intermediary copies, 4-8x speedup (~17ms > ~2.5ms), still needs to be faster https://i.imgur.com/b61mX1Y.png Rendersystemvulkan: Alllow binding specific cubemap [ & arrays ] mips if UAV
10 Months Ago
Don't bother with writing cubemap normalization right now (in fact disable it for now!), reuse previous mip so that we have more quality with less samples Assert isn't valid anymore in ComputeImageViews since we can pass a cube array
10 Months Ago
GGX filtering
10 Months Ago
Fix cube orientation when copying, do texture per envmap probe instead of a singleton array, this will cause headaches with multiple envmaps intersecting but makes it much simpler
10 Months Ago
Allow for single sliced cubemap array, needed to be able to render an independent texture in the renderer since it expects a TextureCubeArray, also allow TSPEC_CUBE_CAN_SAMPLE_AS_ARRAY if we want UAV Also fix a problem where CTextureManagerVulkan::GetImageView wouldn't work with a cubemap array as a rwtexture2darray in compute shaders
10 Months Ago
Cubemapper tests Remove all ggx code for now & just copy directly to cubemap array TextureCube with mipmaps and arrays and mipmaps Move texture logic from cubemapper to c# Stub for cubemapper_cs, will calculate both GGX and spherical harmonics all in GPU Handle all array index stuff in cubemapper
10 Months Ago
Stub for cubemapper_cs, will calculate both GGX and spherical harmonics all in GPU Handle all array index stuff in cubemapper
10 Months Ago
Cubemapper tests Remove all ggx code for now & just copy directly to cubemap array TextureCube with mipmaps and arrays and mipmaps Move texture logic from cubemapper to c#
10 Months Ago
Remove all ggx code for now & just copy directly to cubemap array
10 Months Ago
Fixes local interpolation jitter Game Object Network Mode Selection https://files.facepunch.com/conna/1b0711b1/sbox-dev_G97N4pdA3q.png (#1495) [ActionGraphInclude] implies [Expose] Rename "Game Object" node category to "Scene" Expose scene tracing to Action Graph https://files.facepunch.com/ziks/2024-03-11/sbox-dev_rirZ1oi97u.mp4 Fixes Facepunch/sbox-issues#5120 ActionGraph node menu respects [ReadOnly] attributes Check all conditionals in SerializedProperty.ShouldShow, should make multiple ShowIf's work again Update Facepunch.ActionGraph Facepunch/sbox-issues#5066 Facepunch/sbox-issues#5128 OnDestroyInternal should be internal IzTriangleHull calculates center with doubles, I have no idea why this fixes triangle collision but it does handlebar_moustache small adjustments studdle colour adjustments Allow easy access to graph inputs from node menu, including "This" https://files.facepunch.com/ziks/2024-03-11/RkOMLQmLlN.png Facepunch/sbox-issues#5082 Fix copy/pasting nodes referencing graph target input. Fix NRE when deleting items from serialized list in inspector Fix removing dictionary entries not marking scene unsaved Get rid of redraw flicker when adding/removing from lists and dicts Proper fix for hull vs mesh at large coordinates (thanks dirk) Handle exceptions thrown when discovering reflection-based nodes Fixes Facepunch/sbox-issues#5157 Remove last references to lightbinnervr Readd Dynamic/Baked light settings on hammer Add Scene.Render to unify scene rendering - should fix sbox-issues/issues/4924 Strip out menu resources/startup resources - more trouble than it's worth Fix OnPreRender always getting called, even if execute in editor is false Tick UI right before render, after other updates Make ComponentTypeSelector slightly taller (fixes sbox-issues/issues/5155) Component selector search is scored, uses classname and description too Add tooltip to component selector Rename Particle System to Legacy Particle System Asset preview for fbx, obj, smd https://files.facepunch.com/layla/1b1211b1/sbox-dev_uPe3bKuNAh.png Don't preview smd for now SerializedProperty and ControlSheet support nullable values BoolControlWidget fade property when disabled Fbx serializer is too spammy Ignore unknown color formats in CMesh::CalculateInputLayoutFromAttributes Don't create model for preview mesh if there's no valid meshes Add Vector3.CatmullRomSpline, Vector3.TcbSpline Add SceneLineObject Add LineRenderer component Add line prefab Fix NRE Make joint more robust in finding physics bodies, improve the gizmos a bit Better anchor points for spring joint Fix async warning in PreviewMesh Izabu: Move triangle shifting further up the callstack so the fix gets applied to sphere and capsules too ICollisionListener & ITriggerListener have default interface methods + docs Resolves sbox-issues/issues/4852 Fix game setup's Launch Mode always falling back to default LaunchMode.Normal Resolves sbox-issues/issues/4923 Add RigidBody.MotionEnabled Fix prismatic disabling limit when it shouldn't Create slider with 2 pivots and an axis, this makes the most sense Base joint passes two physics points for joint creation Do a pass on all joints to make sure their local frames make sense Fixed joint keeps the bodies fixed where they are at the moment of joint creation instead of snapping Joint gizmo just draws a line from self to target game object Drag & drop components to change their order Resolves sbox-issues/issues/4254 EditLogs for when a component is moved Tick UI before resetting input - fixes sbox-issues/issues/5169 Fix ParticleGradient defaults not saving properly - fixes sbox-issues/issues/5144 Store lobby owner in lobby data, for access from list - fixes sbox-issues/issues/5141 Try to store package revision id in lobby Cubemapper tests Merge branch 'cubemapper' of sbox into cubemapper
10 Months Ago
Remove last references to lightbinnervr Readd Dynamic/Baked light settings on hammer
10 Months Ago
Fix build
10 Months Ago
Move light culling renderer to scenesystem and remove GetPtrValue hacks from it, we'll call it from lightbinner to pass results from light culling, layers still exist on renderingpipeline for ordering
10 Months Ago
Revert "Move depth prepass to be the first pass of everything, we'll use it on lightbinner for light culling from now on" This reverts commit 65bc314734f0003a9d2dc5c10e5f7da3a11a8db0.
10 Months Ago
Move depth prepass to be the first pass of everything, we'll use it on lightbinner for light culling from now on
10 Months Ago
GatherVisibleLightsGPU Move depth prepass to be the first pass of everything, we'll use it on lightbinner for light culling from now on Do lightbinning for light culling on render thread when a layer first wants to request lights, guarantees we have a depth pyramid by then If we are on a render thread just do a simple flush for ForceFlushGPU(), we just want the GPU to finish it's work, not clean up things Run lightbinner calculation in render thread & actually on lightbinner layer Light culling tests with depth & light radius on compute shader Flush rather than ForceGPUFlush on CReadGPUBuffer::WaitUntilRead() Finish light visibility test shader, rewrite to be cleaner, temp pass PerViewConstantBuffer_t for g_vDepthPsToVsConversion on layer
10 Months Ago
Hash view ID to FindOrCreateFrameBufferScratchTexture as well to solve collision when we have multiple views with same resolution, eg with splitscreen Fix dynamic reflections and AO in viewported views Add compiled shaders for viewport shading fixes Texture barriers for SSR in multiple viewports
11 Months Ago
GatherVisibleLightsGPU Move depth prepass to be the first pass of everything, we'll use it on lightbinner for light culling from now on Do lightbinning for light culling on render thread when a layer first wants to request lights, guarantees we have a depth pyramid by then If we are on a render thread just do a simple flush for ForceFlushGPU(), we just want the GPU to finish it's work, not clean up things Run lightbinner calculation in render thread & actually on lightbinner layer Light culling tests with depth & light radius on compute shader Flush rather than ForceGPUFlush on CReadGPUBuffer::WaitUntilRead()
11 Months Ago
GatherVisibleLightsGPU Move depth prepass to be the first pass of everything, we'll use it on lightbinner for light culling from now on Do lightbinning for light culling on render thread when a layer first wants to request lights, guarantees we have a depth pyramid by then If we are on a render thread just do a simple flush for ForceFlushGPU(), we just want the GPU to finish it's work, not clean up things
11 Months Ago
Cupertino: libpnga Cupertino: GameNetworkingSockets and SteamAPI libs on game folder Convert .dlls to platform-specific (linux/mac) equivalents on GlobalParser for nativedlls in interopgen
11 Months Ago
Cupertino: Remove bunch of win32 & x86 implications, casting for Clang, -Wno-register, multiplat build retail native Cupertino: Use GameNetworkingSockets outside of windows builds, build EtcLib for arm64
11 Months Ago
Cupertino: fix copy_postbuild.sh Cupertino: add xcode_codesin.sh and xcode_gen_dsym.sh Cupertino: update osxarm64 vpc binary 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 Cupertino: libsteam_api platform_compile_base makes weird assumptions for using CLANG or GCC on windows Izabu/Cupertino: Izabu implies SSE SIMD, shim it with sse2neon, fix constructor on IzPulleyJoint
11 Months Ago
Don't try to to build path from empty dependency string for a VPC Makefile dependency Cupertino: 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 chmod +x on vpc_script bash scripts Cupertino: ISO C++20 Fixes Update .gitignore and build scripts, fix permission on antlr, some small code fixes
11 Months Ago
Cupertino: Fix OSXARM64 conditionals, update VPC binary Cupertino: Add gitignore rules for Xcode crap files and add build native step for POSIX
11 Months Ago
Cupertino: Finish setting up makeile for VPC on Mac ARM64 Cupertino: Remove some definitions for OSX64 for OSXARM64 Cupertino: Add prebuilt macOS vpc
11 Months Ago
Cupertino: update VPC, still needs cleanup, builds all but need to sort linking and .mm files Cupertino: Encapsulate Windows-specific code and error handling
11 Months Ago
Cupertino: 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
11 Months Ago
Cupertino: Managed Build Scripts No need for nvpatch for non-windows targets
11 Months Ago
Cupertino: 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
11 Months Ago
Revert "Remove bloom effects layers ("QuarterResEffects"), nothing is really using it, can be better done outside managed if you really want it, was used for the cool HLA ghost effects, did a quarter res depth downsample that was never used" This reverts commit f2ff2e24581df8b38093cce5717420957680fecd.
11 Months Ago
Revert "Remove bloom effects layers ("QuarterResEffects"), nothing is really using it, can be better done outside managed if you really want it, was used for the cool HLA ghost effects, did a quarter res depth downsample that was never used" This reverts commit f2ff2e24581df8b38093cce5717420957680fecd. Hash view ID to FindOrCreateFrameBufferScratchTexture as well to solve collision when we have multiple views with same resolution, eg with splitscreen Fix dynamic reflections and AO in viewported views Use `GetFinishRenderingViewsCounter()` instead of `GetFrameUpdateCounter()` for calculating pingponging for dynamic reflections, the second one increases when all views are rendered
11 Months Ago
Revert shadow submition refactor, I'll revisit this in a bit
11 Months Ago
Don't actually flag a decal as translucent, makes them render twice since we have a specialized decal layer, on top of that when rendering as translucent it wants a MSAA depth buffer that's missing, so we bind a non-msaa error texture that makes vulkan shit itself
11 Months Ago
Remove atlas resizing, feels overengineered, way we have adaptive shadow render size makes it feel pointless Let shadow frusta be calculated entirely on shadowcache, removes redundant calculations and makes the data flow saner, remove bullshit from LightEntry Add support for clearing rects from shadow atlases properly, queue them, fixes shadows on multicam views and childrens, note that shadow caching will still only happen on children views for now
11 Months Ago
Delete passthrough.vmat
11 Months Ago
Update all shaders for good measure
11 Months Ago
Default rendersystem to Vulkan ;) (#1429)
11 Months Ago
Add [ImageAssetPath] fix SerializedCollection NRE Fix MemberDescription.HasAttribute not finding base attributes Convert TextureEditor to use Sequences SequenceControlWidget has popup instead of doing it all horribly inline Fix SerializedObject changes not propagating upwards ResourceStringControlWidget cleanup Use new Sequences json for amalgamated texture Expose some sheet access on texture Simplify amalgamatedtexture packing, less likely to infinite loop, loads from json Add TextureFile sequence `IsLooping ` Can use particle SequenceTime easier Remove parse_mks.cpp Delete mks importers (everything should use our way now) Use gizmos for physics debug draw lines for when I need it Comment out early out in capsule vs hull deep penetration until I get the proper fix Implement joint breaking, break callbacks called on post step, breaking a joint disables the component Support joint breaking on prismatic, revolute, rigid, spherical Add EditorUtility.OpenPropertySheet https://files.facepunch.com/garry/c9f2b5cb-f6bb-4895-a401-346d1dbf939c.png Set qt darkmode=2 so windows will follow system theme (I think) Add ControlObjectWidget Add [KeyProperty] Add KeyProperty to TextureSequence.Source ControlWidget will create an editor for unknown types (this will likely need locking down) Assume test mode will want rendersystemempty Right now our tests machine doesn't have a GPU attached, for d3d11 it's fine since this runs over D3D11 Warp renderer, but not on Vulkan. Change this if we ever do graphics tests on CI. Running locally our tests pass fine without it Fix QPainter was null when calling setPen errors CompileProgress tests (doesn't work) Fix asset browser file type size Fix NRE in GenericControlWidget Add BaseLayout.AddLayout<T> Add ControlSheet.AddProperty SerializedCollection elements return attributes of parent SoundFileCollection doesn't use PropertySheet VR: Fix vulkan submit, submit depth texture to compositor VR: Update overlays from the render thread, because SetOverlayTexture might touch vulkan queue Forward InputData and VROverlay through to Sandbox.Game to preserve compatibility VR: Minor VROverlay cleanup VR: Fix VROverlay xml comment Citizen/animgraph: change the swimming 2D Blendspace from Z/X to Y/X, it was an interesting idea that unfortunately didn't pan out Re-compile ui backdrop filter shader w/ SPIR-V block VR: fix LOD rendering, remove bVr from CFrustum::ComputeScreenSize Citizen/animgraph: made vertical swimming work, it's janky as hell, but at least it's reflected visually; becoming increasingly clear that this state will need custom code on the controller side https://files.facepunch.com/maxlebled/1b2411b1/2024-01-24%2018-50-19.mp4 Fix izQueryFaceDirections using the max instead of the min distance for face separation Fix HitPosition for Trace.Sphere https://files.facepunch.com/layla/1b2511b1/sbox-dev_CvSjg1QMpX.mp4 This should probably just be the radius of the input shape, not both Add Skybox support to Render Tags - good for View Model Camera where we don't wanna render the skybox, or usually anything but things with a viewmodel tag Do the same for 2D skybox Can publish textures Update pull.yml Fix out of range exception in voice (visemes should probably be put in its own component) Fix hitposition when sphere tracing against meshes Rename AssetView to AssetPreview Rename internal AssetPreview to AssetThumbnail Delete broken legacy particles New unified asset preview/thumbnail/video system (cleanup) Size in OnPreRender isn't optional Add Pixmap.GetPixel Texture preview Add Texture.GetSequenceFrameCount, HasAnimatedSequences Asset thumbnail render is async NativeRenderingWidget events Allow preview to tell the renderer whether it's animated (opt out of video) AssetPreview can be pixmap based Consolidate Paint.Target to Paint.ToPixmap, scoped Fix crash when accessing sound samples Add timeout to thumbnail rendering Add timeout when loading SoundFile Fix warnings Draw a line if we can't get sound samples AssetPreviewWidget async wait nicely Size renderWidget properly Fix sphere trace hitposition without fucking it up for capsules Use new Asset url schema Native doesn't automatically mount everything from config/addons.json Menu shouldn't care about local packages/projects - non-editor doesn't load any of that Remove JumpList - we can try this again when we have a concrete idea of project workflow Remove "Content Mode", remove skip start screen - all content should be in a project, so why wouldn't you create/open a project New Game Project -> New Project - these are workspaces for any content really AssetSystem: Defer scanning new projects until they've all been added, and fix the counter Remove Change Project - there's not much sanity in trying to reset the entire engine state when we could simply restart the process -project command line is part of editor bootstrap not engine Hacky mark all games as inactive on bootstrap Consolidate project filesystem logic, call native directly instead of saving json and relying on it reading it File -> Quit prompts unsaved changes Dirty editor window title when scene modified, add renderer Move editor only code out of engine Project class Make sure we still mount content projects on startup Support opening non-game projects Batch rebuild content path / update assetsystem on bootstrap Don't get fucked by removed projects Don't add inactive projects to filesystem Put SpeakerVolume in Sandbox namespace Fix download errors ActionGraph update, add more geometry-based nodes Use Either<> type for object inputs EitherControlWidget Added a bunch of node types Some ActionGraph value editing fixes Update Facepunch.ActionGraphs Don't load map if map instance is not active Remove max impulse from jointdesc, it's never used Support joint deactivation in izabu, this allows ragdolls to break joints, not just joint components Joint IsActive setter so any breakage can be reset Get rid of EnableLinearConstraint and EnableAngularConstraint, not supported and dumb I should probably initialize this! This is making physics debug draw super slow Remove shape before checking collision events, removing a shape can generate contact reports so they need to be removed Delete body after checking collision events Pulse labelled links too https://files.facepunch.com/ziks/2024-01-26/sbox-dev_PV4PZ5cpSp.mp4 Catch EditorTool update errors instead of breaking the whole editor Add Angles.SnapToGrid Add Gizmo.GetMouseDrag Add Gizmo.Snap( angles ), CameraTransform, LocalCameraTransform Just ignore when trying to set nan position Add Gizmo.Settings.SnapToAngles Gizmo.Controls.Rotate outputs Angle delta, RotateSingle outputs only a float angle delta Add rotation snapping UI: improve gradients by calculating an optimal width for gradient textures UI: optimal gradient width prefers background size if specified Add Material.Flags (IsSky, IsDecal, IsTransparent, IsAlphaTest) Changed how material thumbs render Model.LoadAsync and Material.LoadAsync should kind of be async Update Facepunch.ActionGraphs Fixed node creation menu path list when filtering Add GameObjectFlags.NotNetworked Scene.OnEdited, OnSaved don't need to be exposed Add SceneLoadOptions Remove multiple editor instance nag Prefer -editor to -tools Remove native "Startup Tools" Don't create native splashscreen pixmap that we don't use Remove bs "Starting Asset Browser" line Unused -tool -asset command line ToolsDll remove dead gameloop code Pass search paths to external spawned processes resourcecompiler and vfxcompile Fix downloading cloud assets Reapply mass override when setting local mass center Add mass test Auto-open the node creation menu if no other menu options exist Rebuild input / output node when editing parameter names Some physics interface clean up Dead auto mount vpk code -outroot has to be specified before Only need to pass user project search paths & maintain mod names Fix trailing backslash escaping quoted search paths Do a better job at keeping mass override applied Hook up ModelPhysics renderer for prop_physics Fix m_bForceEnableDebugUtils running always even when we dont have renderdoc or validation layers enabled, triples your perfomance on vulkan Fix infinite recursion crash with prefabs when the root object has bone proxies Move ModelEditor.Nodes to game Add Prop component to engine (health, breakable, gibs) Read back the window size from the main window the OS created, Windows will clip the size to the desktop if it's too big and we will have unmatching resolution between what we specify in the swapchain and the actual hwnd ComponentControlWidget: Support dragging in components where there might be multiple of them in a GameObject Make Widget.ConstrainToScreen more reliable Merge branch 'master' into vulkan-staging
11 Months Ago
Read back the window size from the main window the OS created, Windows will clip the size to the desktop if it's too big and we will have unmatching resolution between what we specify in the swapchain and the actual hwnd
11 Months Ago
Fix m_bForceEnableDebugUtils running always even when we dont have renderdoc or validation layers enabled, triples your perfomance on vulkan
11 Months Ago
Assume test mode will want rendersystemempty Right now our tests machine doesn't have a GPU attached, for d3d11 it's fine since this runs over D3D11 Warp renderer, but not on Vulkan. Change this if we ever do graphics tests on CI. Running locally our tests pass fine without it
11 Months Ago
Default rendersystem to Vulkan ;)
11 Months Ago
Fix Graphics.MipmapGen trying to generate one out of bounds mip