Commit Graph

15 Commits

Author SHA1 Message Date
Layla
6c8a5613c1 Scene mesh per triangle physics materials (#3673) 2025-12-27 11:00:03 +00:00
Layla
7a3cccfcb4 Rigidbody isbullet (#3649) 2025-12-22 21:35:49 +00:00
Lorenz Junglas
4a050a9ab9 Animation optimizations v3 (#3635)
* Cleanup SkinnedModelRendererSetBoneMerge

* Proper bookkeeping for SkinnedModelRenderer Hierarchy

* Use ConcurrentQueue instead of Channel to reduce lock contention

* Limit animation update parallelism to Environment.ProcessorCount - 1

* BoneMerge in parallel

* Speed up native anim decompression using (lock-free) LRU posecache

* Remove some unused debug counters
2025-12-18 17:02:20 +01:00
Layla
fa284e585b Physics filter pair (#3566) 2025-12-07 11:15:48 +00:00
Sam Pavlovic
db6ca66000 Update swapchain from native method instead of recreating it when video changed (#3562)
Recreating it works fine on Intel GPU, no issues on validation but didnt work on other cards, there is a better way to do this from native without dangling around

Fixes https://github.com/Facepunch/sbox-issues/issues/9675
2025-12-05 09:37:12 -03:00
Sam Pavlovic
ab81dd2357 Make MSAA setting work on editor SceneRenderingWidgets (#3539)
* Make MSAA setting work on editor SceneRenderingWidgets

MSAA settings never worked with editor viewport, only on game tab, now with playmode it always takes highest MSAA value from hardware regardless of what

Two things from this PR:
* Pass current engine MSAA setting when creating SceneRenderingWidget swapchain
* Add callback when video settings are changed, recreate swapchain when so

Replicates fine for all SceneRenderingWidgets, applies instantly

https://files.facepunch.com/sampavlovic/1b0311b1/sbox-dev_bjEMrrYe71.mp4

* Push RenderMultisampleType_t nMSAAAmount on interop
2025-12-03 16:41:38 -03:00
Layla
9729470a9e add gravity scale to physics body markup (if you want a model to have negative gravity like a balloon) (#3535) 2025-12-03 10:23:05 +00:00
Lorenz Junglas
59369163fc Engine swapchain validation error fixes (#3525)
* Don't DrawInitialWindowImage in ToolsMode

* Remove UpdateWindowSize call during editor startup
2025-12-01 20:10:19 +00:00
Layla
fa4e01729e Wheel joint (#3497) 2025-12-01 12:47:49 +00:00
Sol Williams
4abac08bff AssetList: fix label clipping, use proper text eliding (#3480) 2025-11-28 12:49:09 +00:00
Sam Pavlovic
d753fa0e24 Vulkan Raytracing Support (#2409)
* Re-enable CreateBLAS in RenderDeviceVulkan

* Update SPVRemapper to suppot raytracing opcode remapping

* Null initialize BLAS on RenderMesh

* Clean proper to generate BLAS on mesh data loading

* SceneRaytracingSystem stub

* Glue SceneRaytracing

* Remove pipelines from SceneRaytracing for now, just do TLAS, tie it to SceneRaytracingSystem, updates only once per frame just like how we want in a clean way
https://files.facepunch.com/sampavlovic/1b0611b1/ngfx-ui_Ck3ckzQQFT.png

* Send Descriptor Set of Raytracing World to RenderAttribute

* RTAO example using RayQuery

* RayTracingShader API stub

* Set SM6.0 and dxlevel 120 as default

* Instead of making raytracing opt-in, add -nogpuraytracing to force disable it

* Add IRenderDevice::IsRayTracingSupported() to easily query support for it

* Fix IsRayTracingSupported()

* RTAO Adjustments

* Allow Rayquery through AS on Compute and Pixel shaders even if not optimal, avoids it crashing when acessing it on compute

* Strip CRaytraceSceneWorld to just generating TLAS, dont need anything else for now and we need a better way to handle UGC than what's there

* Bindless::RaytracingAccelerationStructure()

* Simplify interface too

* Stub for UpdateSkinnedForRaytracing

* Dotnet format and fix documentation, make RTAO run at correct stage

* Only support raytracing in tools mode for now

* Move raytracing stuff to Raytracing.hlsl

* Stub RTX shader

* Internal Raytracingshader and remove useless stuff exposed from it

* VfxProgramHasRenderShader should check for VFX_PROGRAM_RTX too, that's the source from everything else failing

* Add arbitrary entry point support to shaders, needed as RTX shaders use [shader("XXX")] instead of MainXXX directly

* RenderTools::TraceRays API, preliminary implementation, RTAO uses RaytracingShader

* Make RT support internal, allow RT on game

* Remove RaytracedAmbientOcclusion, will be on scenestaging when ready

* Update engine/Sandbox.Engine/Systems/Render/RayTracingShader.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix rebase

* Update shaders

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-27 22:40:02 -03:00
Alex Guthrie
5c58563b6d VR Fixes 2 (#3458)
Improved error logging, crash fixes, and light menu tweaks
2025-11-27 13:54:25 +00:00
Sam Pavlovic
47915c600b Fix leaky swapchain when resizing on game mode (#3389)
* Fix leaky swapchain when resizing on game mode and dispose of handle after usage
VideoRecorder would get a strong handle copy of the swapchain every frame and retain it, causing native to fail to shutdown the copies from it
Made usage of getting native swapchain consistent on managed on other stuff, doing it like this ensures GC properly disposes of the strong handles even not disposing explicitly

Remove now unused ScreenRecorder.def and ScreenshotService.def

There are still optimizations to swapchain I'd like to send on another commit, game is allocating way more swapchains than needed even without the leak, has two completely different paths depending if you are MSAA or not, this can all be much simpler
https://files.facepunch.com/sampavlovic/1b1811b1/EjDyxbTahs.png

* Remove NativeLayerRenderTarget, was unused and fucked

* Keep it as an ITexture/HRenderTextureStrong in managed so we avoid IDisposable, ReadTextureAsync with ITexture
2025-11-26 02:44:01 -03:00
Matt Stevens
0675def24c Add missing shader includes 2025-11-24 12:10:29 +00:00
s&box team
71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00