Commit Graph

9876 Commits

Author SHA1 Message Date
Hajime Hoshi
00fade9dcf internal/atlas: reduce the access to (*restorable.Shader).Unit 2024-10-27 00:46:05 +09:00
Hajime Hoshi
2437ad8248 ebiten: improve bulitinShader by reducing locks
old.txt: 04c9a802a7
new.txt: this commit

```
% benchstat old.txt new.txt
goos: darwin
goarch: arm64
pkg: github.com/hajimehoshi/ebiten/v2
cpu: Apple M3 Pro
                 │   old.txt   │               new.txt               │
                 │   sec/op    │   sec/op     vs base                │
BuiltinShader-12   4.226n ± 2%   1.352n ± 2%  -68.00% (p=0.000 n=10)
```
2024-10-27 00:22:52 +09:00
Hajime Hoshi
04c9a802a7 ebiten: add BenchmarkBuiltinShader 2024-10-27 00:12:56 +09:00
Hajime Hoshi
6cf235daef internal/graphicscommand: refactoring 2024-10-26 23:07:03 +09:00
Hajime Hoshi
6fd9044bcf internal/input: refactoring: clean up touch implementations 2024-10-26 22:25:56 +09:00
Hajime Hoshi
01dc4ed9b1 inpututil: refactoring: clean up gamepad implementations 2024-10-26 19:28:53 +09:00
Hajime Hoshi
e6b8ebe8a2 internal/gamepaddb: bug fix: typo
Closes #3148
2024-10-26 19:05:51 +09:00
Hajime Hoshi
9127c30223 inpututil: bug fix: AppendJustReleasedGamepadButtons and AppendJustReleasedStandardGamepadButtons returned just-pressed buttons
Closes #3147
2024-10-26 17:31:24 +09:00
Hajime Hoshi
812feec1d5 inpututil: reland: refactoring: use clear 2024-10-26 16:54:31 +09:00
Hajime Hoshi
7fe50478a7 Revert "inpututil: refactoring: use clear"
This reverts commit d6427d63ca.

Reason: wrong clear usages
2024-10-26 16:52:17 +09:00
Hajime Hoshi
d6427d63ca inpututil: refactoring: use clear 2024-10-26 16:47:43 +09:00
Hajime Hoshi
a6b278d0e5 inpututil: refactoring 2024-10-26 16:26:04 +09:00
Hajime Hoshi
c7880a5ad6 internal/atlas: reduce for-loops 2024-10-26 16:02:25 +09:00
Hajime Hoshi
ecc42d4042 internal/graphicscommand: move the const check outside of the function
old.txt: 1fe988eabf
new.txt: this commit

```
benchstat old.txt new.txt
goos: darwin
goarch: arm64
pkg: github.com/hajimehoshi/ebiten/v2/internal/graphicscommand
cpu: Apple M3 Pro
                            │   old.txt   │              new.txt               │
                            │   sec/op    │   sec/op     vs base               │
PrependPreservedUniforms-12   19.79n ± 4%   18.84n ± 2%  -4.80% (p=0.001 n=10)
```

Updates #3144
2024-10-26 13:03:37 +09:00
Hajime Hoshi
1fe988eabf internal/graphicscommand: improve performance of prependPreservedUniforms
```
% benchstat old.txt new.txt
goos: darwin
goarch: arm64
pkg: github.com/hajimehoshi/ebiten/v2/internal/graphicscommand
cpu: Apple M3 Pro
                            │   old.txt   │               new.txt               │
                            │   sec/op    │   sec/op     vs base                │
PrependPreservedUniforms-12   23.07n ± 2%   19.96n ± 0%  -13.48% (p=0.000 n=10)
```

Updates #3144
2024-10-26 01:18:06 +09:00
Hajime Hoshi
9f5f53c041 internal/graphicscommand: add BenchPrependPreservedUniforms
Updates #3144
2024-10-26 01:15:12 +09:00
Hajime Hoshi
d334db8291 internal/restorable: performance optimization 2024-10-25 19:30:38 +09:00
Hajime Hoshi
0da99e2c37 text/v2: add comments to CacheGlyphs 2024-10-25 17:41:24 +09:00
Hajime Hoshi
9449e0a8a6 Revert "text/v2: remove faceWithCache's mutex"
This reverts commit d5c6fd174f.

Reason: CacheGlyphs and Measure should be concurrent safe.
2024-10-25 14:52:02 +09:00
Hajime Hoshi
d5c6fd174f text/v2: remove faceWithCache's mutex
faceWithCache is not exported, and the functions using faceWithCache
are not concurrent safe. Thus, it doesn't make sense to protect
faceWithCache by mutex. Rather, this affects performance.
2024-10-25 13:58:18 +09:00
Hajime Hoshi
47f11a7423 ebiten: bug fix: DefaultDrawFinalScreen should take FinalScreen
Updates #3139
2024-10-25 09:22:52 +09:00
Hajime Hoshi
f6cd2beacf internal/buildinshader: refactoring 2024-10-24 12:16:05 +09:00
Hajime Hoshi
98d386f249 ebiten: fix typo
Updates #3139
2024-10-24 11:29:56 +09:00
Hajime Hoshi
0a73cbfce4 internal/builtinshader: refactoring 2024-10-22 14:29:46 +09:00
Hajime Hoshi
0fe63e8adb all: update PureGo to v0.9.0-alpha.1 2024-10-21 23:07:38 +09:00
Hajime Hoshi
74f812dd33 internal/shader: bug fix: xor-assignment operator didn't work correctly
Closes #3140
2024-10-21 14:54:07 +09:00
Hajime Hoshi
366f4899a2 ebiten: fix comments
Updates #3139
2024-10-21 11:19:30 +09:00
Hajime Hoshi
94fee8be55 ebiten: add DefaultDrawFinalScreen
Closes #3139
2024-10-21 11:17:53 +09:00
TotallyGamerJet
6452cbc895
internal/cocoa: bring back NSInvocation for CopyFromTexture (#3136)
This is a partial revert of c3ea539 but keeps the change for removal of NSInvocation in SetScissorRect, GetBytes,
and ReplaceRegion.

Closes #3135
2024-10-19 23:59:45 +09:00
Hajime Hoshi
646f340696 all: update PureGo
This changes the situation, but there is still a crashing issue.

Updates #3135
2024-10-19 23:21:59 +09:00
Hajime Hoshi
0af6497017 internal/ui: update gamepads for PS5 2024-10-19 22:43:14 +09:00
Hajime Hoshi
c3ea539cdb internal/cocoa: remove NSInvocation
Closes #2950
2024-10-19 13:32:14 +09:00
Hajime Hoshi
38e4f4c110 all: update kisielk/errcheck to v1.8.0 2024-10-19 03:32:45 +09:00
Hajime Hoshi
575bba9dc5 Revert "all: update PureGo"
This reverts commit 8e63234988.

Reason: compilation error with `-gcflags=all=-N -l`
> nosplit stack over 792 byte limit
2024-10-19 03:02:09 +09:00
Hajime Hoshi
8e63234988 all: update PureGo 2024-10-19 02:56:24 +09:00
Gabriel Ochsenhofer
2ad0e9a9db
internal/graphicscommand: add a debug.IsDebug check before splitting strings (#3134)
Since `debug.IsDebug` is a constant, by putting the `strings.Cut` calls inside the check this makes the
`(*commandqueue).flush` method faster when Ebitengine is compiled without the debug build tag.

Without the if `debug.IsDebug` check, unnecessary allocations occur (since the logger is a noop logger when debug is
disabled).
2024-10-18 22:46:28 +09:00
Hajime Hoshi
0ec2c4bfd0 all: update PureGo 2024-10-18 19:16:48 +09:00
Hajime Hoshi
aae3e739f8 internal/debug: use go/build's Context to get the source directory 2024-10-18 15:36:25 +09:00
Hajime Hoshi
0ce1f2292e internal/debug: bug fix: do not panic when go-list fails 2024-10-18 15:28:42 +09:00
Hajime Hoshi
d42916da44 all: update PureGo 2024-10-18 11:48:43 +09:00
TotallyGamerJet
5dee21dc7d
internal/cocoa, internal/graphicsdriver/metal/*: minimize allocations (#3133)
Cache the result of objc.RegisterName at program startup. Use NSInvocation less
to avoid multiple C calls.
2024-10-18 11:44:37 +09:00
Hajime Hoshi
810e45c030 ebiten: skip rendering when det is 0 at DrawImage and DrawRectShader 2024-10-17 21:04:43 +09:00
Hajime Hoshi
5fd619eea7 ebiten: bug fix: canSkipMipmap didn't work with negative scaling
This just means that an optimization didn't work, so this issue
should not be so serious.
2024-10-17 21:02:59 +09:00
Hajime Hoshi
2f5ca1af83 all: update jakecoffman/cp to v2.1.0 2024-10-17 02:07:34 +09:00
Hajime Hoshi
499b44797d all: update gomobile 2024-10-16 22:50:01 +09:00
Hajime Hoshi
e213994fdb all: update dependencies 2024-10-16 11:21:06 +09:00
Hajime Hoshi
71ae311355 internal/debug: better info for first callers 2024-10-16 11:16:24 +09:00
Hajime Hoshi
28f6d8841d .github/workflows: disable AppArmor
Closes #3131
2024-10-15 23:58:38 +09:00
Hajime Hoshi
74765c995e internal/debug: bug fix: panic when Go command is not found with -tags=ebitenginedebug 2024-10-15 21:29:15 +09:00
Hajime Hoshi
9de408a25c internal/graphicscommand: better calculation for callers 2024-10-15 21:13:17 +09:00