userSam Pavloviccancel

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

57 Days 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
57 Days 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
60 Days Ago
Delete passthrough.vmat
60 Days Ago
Update all shaders for good measure
60 Days Ago
Default rendersystem to Vulkan ;) (#1429)
60 Days 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
60 Days 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
2 Months Ago
Fix m_bForceEnableDebugUtils running always even when we dont have renderdoc or validation layers enabled, triples your perfomance on vulkan
2 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
2 Months Ago
Default rendersystem to Vulkan ;)
2 Months Ago
Fix Graphics.MipmapGen trying to generate one out of bounds mip
2 Months Ago
SubContext support on RenderContext (#1441) * Add IRenderContext::GetSubContext() to get or create a sub context for a new thread, use it in managedsceneobject Render contexts can never be passed between threads; they can only be used on the thread that created them. The thread index will be set in the constructor and can't change after that. This causes a problem in our current implementation of SceneCustomObject that reuses the threaded render context on the main thread and expects we can add things,modify and render it from there, for D3D11 it is not a problem since the implementation or driver seems to have a mutex for command lists, but on Vulkan that gives validation errors and causes crashes. This implements the concept of SubThreads to RenderContext, a very simple way to pass the render context around and consume it in a timely manner, it creates a new render context with the same characteristics as the parent one in a new thread and submits it when the parent context is released
2 Months Ago
Remove deferred rendering meshes from scenelight We no longer have a hardcoded path for rendering viewmodel shadows, that will be handled with a special component in managed Fix depth normalization on GetWorldPosition, since we are using 3D Skyboxes again we are splicing a bit of the depth range, fixes feathering on sprites again
2 Months Ago
Fix motion blur not working, simplify it, make it use the same reconstruction technique as in dynamic reflections, I still don't like it but this gives correctness to it https://i.imgur.com/YkSiZXY.png
2 Months Ago
gaussian_bloom_blur compiled material to fix bloom on dev builds
2 Months Ago
Add IRenderContext::GetSubContext() to get or create a sub context for a new thread, use it in managedsceneobject Render contexts can never be passed between threads; they can only be used on the thread that created them. The thread index will be set in the constructor and can't change after that. This causes a problem in our current implementation of SceneCustomObject that reuses the threaded render context on the main thread and expects we can add things,modify and render it from there, for D3D11 it is not a problem since the implementation or driver seems to have a mutex for command lists, but on Vulkan that gives validation errors and causes crashes. Valve has the concept of Secondary RenderContexts but doesn't fit what we need This implements the concept of SubThreads to RenderContext, a very simple way to pass the render context around and consume it in a timely manner, it creates a new render context with the same characteristics as the parent one in a new thread and submits it when the parent context is released Remove pragma optimize off Only override states if target layer wants it so, otherwise subcontext just uses the default rasterizer and depth stencil state, fixes worldpanels with depth test, pass attributes from rendercontext rather than layer
2 Months Ago
Only override states if target layer wants it so, otherwise subcontext just uses the default rasterizer and depth stencil state, fixes worldpanels with depth test, pass attributes from rendercontext rather than layer
2 Months Ago
Remove pragma optimize off
2 Months Ago
Add IRenderContext::GetSubContext() to get or create a sub context for a new thread, use it in managedsceneobject Render contexts can never be passed between threads; they can only be used on the thread that created them. The thread index will be set in the constructor and can't change after that. This causes a problem in our current implementation of SceneCustomObject that reuses the threaded render context on the main thread and expects we can add things,modify and render it from there, for D3D11 it is not a problem since the implementation or driver seems to have a mutex for command lists, but on Vulkan that gives validation errors and causes crashes. Valve has the concept of Secondary RenderContexts but doesn't fit what we need This implements the concept of SubThreads to RenderContext, a very simple way to pass the render context around and consume it in a timely manner, it creates a new render context with the same characteristics as the parent one in a new thread and submits it when the parent context is released
2 Months Ago
Write vertexobject on end of scope
2 Months Ago
Softer depth comparison for subsurface scattering Implement Depth::GetWorldPosition properly, document it nicely Recompile sprite with depth feathering
2 Months Ago
Make gizmos use DynamicSceneObject, add CMeshBuilder2::WithInstancedTransforms to flag mesh to use transform system without changing vertex layout, fix transforms on dynamicsceneobject in native
2 Months Ago
Fix vertexobject reusing on gizmos
2 Months Ago
Remove ManagedSceneObject/SceneCustomObject, only causes problems now, use DynamicSceneObject if you use it Fix transforms on dynamicsceneobject Move VertexSceneObject to use SceneDynamicObject, upload queue to GPU when it wants a new instance Add MeshBuilder2::WithInstancedTransforms to add per-instance transform info to the input layout, does not change the data structure of the layout but makes transforms be ellegible with them programatically
2 Months Ago
Remove ManagedSceneObject/SceneCustomObject, only causes problems now, use DynamicSceneObject if you use it Fix transforms on dynamicsceneobject Move VertexSceneObject to use SceneDynamicObject, upload queue to GPU when it wants a new instance Pass per transform index data to SboxVertex_t, I still don't like how this is not easily templateable though
3 Months Ago
Remove Thread_DrawDrawList mutex, seems to cause some issues on testing, working on a proper solution for it anyway
3 Months Ago
Remove planar reflections from scenesystem, remove unused shared shader defs
3 Months Ago
Remove ScenePortal/CMonitorObjectDesc, render a camera to texture for same functionality
3 Months Ago
Compile water shader UI doesn't consume vertex clipping or even skinning
3 Months Ago
Only bitch that vkQueuePresentKHR failed when it's an actual fail condition, some conditions are still considered and enqueued Fix pObjectName in RenderDeviceVulkan::Construct, empty string check was inverted VK Validation: Fix texture transition in CSceneSystem::DownsampleTexture, this is not to use depth stencils but will always assume color Imply console apps want rendersystemempty, maybe revisit this in the future if we want them to do any kind of GPU compute VK: Remove deprecated debug marker in favour of debug utils, should be getting prettier output from GPU profiling tools too Remove a bunch of redundant vulkan render markers, makes gpu debugging finally show up properly nice looking https://i.imgur.com/7Mq0lhv.png Colors that don't melt my eyes Add a temp mutex to DrawDrawList to fix race condition when drawing from main thread Fix glow outline rendering https://i.imgur.com/cK9VbNB.png Renderdoc label colors for managed drawcalls were black Highlight.cs: should be SetCombo not Set Don't change fbstate with the viewport size, can cause it to be bigger than the fbstate size too, viewport offsetting is done just right below Make MultisampleScreen take the MSAA amount from the current context rather than from the main swapchain, fixes validation of effects using the wrong MSAA level as what the layer wants, fixes glow outlines in preview cameras Don't write glow to alpha, makes camera previews and screenshots not be translucent with them, compile shader Simplify water shader removing fog and other components, these would all be in it's own entity component now, much simpler, also the whole shader needs to be thrown away Never expose intermediary MSAA'd depth to the user, you're just opening a can of pain, use Depth::Get() method instead Shaders need removing old MSAA depth ("SceneDepth"/"DepthBuffer") Directional AO depth doesnt use MSAA Keep MSAA depth read for decals only 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 Delete viewmodel AO ( Will come back as a reuseable generic component for camera ), ripplecompute ( unused, shit ), fix depth fetching on Glass to use Depth::Get Remove crumbs of viewmodel ao
3 Months Ago
Delete viewmodel AO ( Will come back as a reuseable generic component for camera ), ripplecompute ( unused, shit ), fix depth fetching on Glass to use Depth::Get
3 Months Ago
Directional AO depth doesnt use MSAA Keep MSAA depth read for decals only 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
3 Months Ago
Never expose intermediary MSAA'd depth to the user, you're just opening a can of pain, use Depth::Get() method instead Shaders need removing old MSAA depth ("SceneDepth"/"DepthBuffer")
3 Months Ago
Simplify water shader removing fog and other components, these would all be in it's own entity component now, much simpler, also the whole shader needs to be thrown away
3 Months Ago
Don't write glow to alpha, makes camera previews and screenshots not be translucent with them, compile shader
3 Months Ago
Make MultisampleScreen take the MSAA amount from the current context rather than from the main swapchain, fixes validation of effects using the wrong MSAA level as what the layer wants, fixes glow outlines in preview cameras
3 Months Ago
Don't change fbstate with the viewport size, can cause it to be bigger than the fbstate size too, viewport offsetting is done just right below
3 Months Ago
Renderdoc label colors for managed drawcalls were black Highlight.cs: should be SetCombo not Set
3 Months Ago
Fix glow outline rendering https://i.imgur.com/cK9VbNB.png
3 Months Ago
Add a temp mutex to DrawDrawList to fix race condition when drawing from main thread
3 Months Ago
Colors that don't melt my eyes
3 Months Ago
Remove a bunch of redundant vulkan render markers, makes gpu debugging finally show up properly nice looking https://i.imgur.com/7Mq0lhv.png
3 Months Ago
VK: Remove deprecated debug marker in favour of debug utils, should be getting prettier output from GPU profiling tools too
3 Months Ago
Imply AV_PIX_FMT_BGRA for pixel format in video recorder, should pass backbuffer format instead, I'll recheck when I have an AMD GPU in hand Default rendersystem to Vulkan ;) Only bitch that vkQueuePresentKHR failed when it's an actual fail condition, some conditions are still considered and enqueued Fix pObjectName in RenderDeviceVulkan::Construct, empty string check was inverted VK Validation: Fix texture transition in CSceneSystem::DownsampleTexture, this is not to use depth stencils but will always assume color Imply console apps want rendersystemempty, maybe revisit this in the future if we want them to do any kind of GPU compute
3 Months Ago
VK Validation: Fix texture transition in CSceneSystem::DownsampleTexture, this is not to use depth stencils but will always assume color
3 Months Ago
VK Validation: Fix texture transition in CSceneSystem::DownsampleTexture, this is not to use depth stencils but will always assume color
3 Months Ago
Fix pObjectName in RenderDeviceVulkan::Construct, empty string check was inverted
3 Months Ago
Only bitch that vkQueuePresentKHR failed when it's an actual fail condition, some conditions are still considered and enqueued
3 Months Ago
Default rendersystem to Vulkan ;)
3 Months Ago
Imply AV_PIX_FMT_BGRA for pixel format in video recorder, should pass backbuffer format instead, I'll recheck when I have an AMD GPU in hand