Commit Graph

23524 Commits

Author SHA1 Message Date
Dan Balasescu
e4ebfdb828 Add source generator for IsLongRunning property 2023-07-07 20:29:13 +09:00
Dan Balasescu
a08e61c58f Merge pull request #5901 from peppy/contextual-initialise-levels
Avoid initialising textures when unnecessary
2023-07-07 19:02:10 +09:00
Dan Balasescu
fc3efca013 Merge branch 'master' into contextual-initialise-levels 2023-07-07 18:50:00 +09:00
Dan Balasescu
d48d6230f1 Merge pull request #5905 from peppy/disable-ftb-by-default
Disable front-to-back pass by default on all platforms
2023-07-07 18:48:58 +09:00
Dean Herbert
6f4fa78b3e Disable front-to-back pass on all platforms for now 2023-07-07 16:19:39 +09:00
Dean Herbert
0871079369 Merge pull request #5903 from frenzibyte/ios-release-aot
Switch osu!framework iOS projects to use AOT compilation on release configurations
2023-07-07 10:12:57 +09:00
Dean Herbert
659edfb03d Slight reword 2023-07-07 09:58:07 +09:00
Salman Ahmed
507375ed0d Update packages 2023-07-07 03:49:29 +03:00
Salman Ahmed
3df1db116b Fix iOS main run loop method requiring JIT compilation 2023-07-07 03:07:56 +03:00
Salman Ahmed
06b8cd3ebe Fix SDL library not found exception with AOT enabled
Depends on https://github.com/ppy/SDL2-CS/pull/169
2023-07-07 03:07:56 +03:00
Salman Ahmed
6f3ca6c22a Disable Mono interpreter on release mode 2023-07-07 03:07:56 +03:00
Dan Balasescu
4ce777d4d5 Fix typos 2023-07-06 17:35:20 +09:00
Dean Herbert
54a80b23c7 Avoid initialising textures when unnecessary
It turns out we were initialising every mipmap level of every textures,
while it is only actually required in scenarios we are not already
replacing every pixel of the texture.

For framework usages, this is for atlases alone.

I've implemented this by changing the `initialisationColour` to be
nullable. For native textures, it has a `null` default, which is perfect
to cover all overrides (`VideoTexture` and `FrameBufferTexture`).

For the `IRenderer` exposed usage, the parameter was already required,
so there is no default. This is good as it ensures a consume isn't going
to see a change in behaviour out-of-the-blue.
2023-07-06 15:54:56 +09:00
Salman Ahmed
a4024edc32 Merge pull request #5900 from peppy/fix-performance-overlay-autosize
Fix `PerformanceOverlay` autosize not working due to incorrect anchor
2023-07-06 08:18:17 +03:00
Salman Ahmed
29161e81a7 Merge branch 'master' into fix-performance-overlay-autosize 2023-07-06 08:03:39 +03:00
Salman Ahmed
842799ad4f Merge pull request #5899 from peppy/fix-fsd-runaway
Pool and limit how many GC boxes can be displayed on `FrameStatisticsDisplay` at once
2023-07-06 08:03:23 +03:00
Dean Herbert
ada14302a2 Fix PerformanceOverlay autosize not working due to incorrect anchor 2023-07-06 13:50:24 +09:00
Dean Herbert
f94b377cd9 Pool and limit how many GC boxes can be displayed on FrameStatisticsDisplay at once
When running on mobile, we've seen gen 0 GCs almost every frame. I'm not
sure if this is good or bad, but ignoring that for a moment, this would
cause opening the frame statistics graphs to slowly grind the game to a
halt as it tries to display this with box markers.

Pooling the boxes reduces the alloc overhead. Custom logic cleans up old
squares to ensure things don't runaway in terms of performance.
2023-07-06 13:06:48 +09:00
Dean Herbert
824cfaeb79 Merge pull request #5898 from frenzibyte/fix-frame-graphs-on-ios
Fix frame statistics display showing `CADisplayLink` callback delays under "WndProc" time
2023-07-06 12:17:51 +09:00
Dean Herbert
c064c0212c Update veldrid 2023-07-06 12:02:44 +09:00
Salman Ahmed
1fa061ba81 Fix frame statistics display showing CADisplayLink callback delays under "WndProc" time 2023-07-06 04:19:50 +03:00
Dean Herbert
5882d259cc Merge pull request #5887 from frenzibyte/overlays-safe-area
Fix game tools being rendered outside safe area
2023-07-06 02:50:02 +09:00
Bartłomiej Dach
c598a9b18d Merge branch 'master' into overlays-safe-area 2023-07-05 19:38:31 +02:00
Dean Herbert
a6cccfb8e7 Merge pull request #5896 from peppy/less-vbo
Reduce VBO buffer count to 2
2023-07-05 16:15:42 +09:00
Dean Herbert
d52fd9528a Make CurrentVertexBuffers private 2023-07-05 15:55:23 +09:00
Dean Herbert
62db976da8 Allow changing VBO buffer count via envvar 2023-07-05 15:46:59 +09:00
Dean Herbert
5a925915dc Remove unused setter on CurrentVertexBuffers 2023-07-05 15:45:20 +09:00
Dean Herbert
44f63693dc Reduce count of VBO local buffers to 2
Reasoning is explained in the xmldoc
2023-07-05 15:41:34 +09:00
Bartłomiej Dach
050857de61 Merge pull request #5883 from peppy/sprite-text-draw-node-perf
Reduce complexity overhead (and avoid one copy) when obtaining character SSDQs in `SpriteTextDrawNode`
2023-07-04 22:18:59 +02:00
Bartłomiej Dach
8eb1b55e25 Merge branch 'master' into sprite-text-draw-node-perf 2023-07-04 22:09:37 +02:00
Dan Balasescu
13644b5682 Merge pull request #5884 from peppy/fix-game-benchmark
Fix game benchmarks being completely broken
2023-07-04 18:00:27 +09:00
Dean Herbert
fb53c27a9a Add comment about calling of base RunMainLoop 2023-07-04 17:27:11 +09:00
Dean Herbert
ff55656b19 Merge branch 'master' into fix-game-benchmark 2023-07-04 17:27:10 +09:00
Dean Herbert
2738b97d6c Merge pull request #5889 from smoogipoo/fix-shader-determinism 2023-07-04 16:00:23 +09:00
Dan Balasescu
cfe1c87684 Make shaders with passthrough layouts deterministic again 2023-07-04 15:20:13 +09:00
Dean Herbert
d33d73983e Use Wait instead of arbitrary timeout 2023-07-04 13:04:03 +09:00
Dean Herbert
3092bd6ef7 Use EnsureCapcity to potentially avoid multiple copies 2023-07-04 13:02:28 +09:00
Dean Herbert
eafac96c2b Merge branch 'master' into overlays-safe-area 2023-07-04 13:00:43 +09:00
Dean Herbert
8bf34b93e8 Merge pull request #5886 from frenzibyte/fix-ios-linker
Work around iOS linker including `ApplicationServices` framework during compilation
2023-07-04 12:55:46 +09:00
Salman Ahmed
84f03a651a Fix game tools being rendered outside safe area 2023-07-04 06:53:23 +03:00
Salman Ahmed
c43346250b Work around iOS linker including ApplicationServices framework 2023-07-04 06:37:23 +03:00
Dean Herbert
cd6defe7fd Merge pull request #5877 from Susko3/permonitor-v2-dpi-awareness
Set PerMonitor V2 DPI awareness on Windows
2023-07-04 01:17:40 +09:00
Dean Herbert
ef22b40a29 Merge branch 'master' into permonitor-v2-dpi-awareness 2023-07-04 01:02:35 +09:00
Dean Herbert
b2d1725b7f Fix game benchmark timeout being far too low, causing skewed results 2023-07-03 17:24:16 +09:00
Dean Herbert
90a2e286bc Don't use ArrayPool (list is faster) 2023-07-03 17:11:46 +09:00
Dean Herbert
2967626eda Reduce complexity overhead (and avoid one copy) when obtaining character SSDQs in SpriteTextDrawNode
Of note, this doesn't show a huge improvement in benchmarks, but in an
edge case noticed in osu!, the `AddRange` operation can add a
perceivable overhead.

We believe this may be a dotnet runtime quirk.

Even though this change can't be shown in isolated benchmarks, I'd argue
the code quality improvement is worth it.

Of note, the caching of the SSDQs at `SpriteText` was a bit redundant as
it was being invalidated by basically everything. So it makes sense to
just fetch it every time, regardless, in the draw node itself.

The only potential saving we could obtain with the previous logic would
be to shift the load to the `Update` frame. But this wasn't being done.
Rather than investigating whether that has any benefits, I'd rather
focus on getting `SpriteText` rewritten to use an optimised shader.
2023-07-03 17:09:18 +09:00
Dean Herbert
00c570fbe3 Add SpriteText benchmark 2023-07-03 15:51:17 +09:00
Bartłomiej Dach
568c85ebb1 Merge pull request #5881 from Susko3/make-IWindow-implementations-internal
Make `IWindow` and `IGraphicsSurface` implementations `internal`
2023-07-02 16:29:42 +02:00
Bartłomiej Dach
2622a689ad Merge branch 'master' into make-IWindow-implementations-internal 2023-07-02 16:11:20 +02:00
Bartłomiej Dach
ca3fa1642e Use better exception type 2023-07-02 16:08:52 +02:00