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
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
71ae311355
internal/debug: better info for first callers
2024-10-16 11:16:24 +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
Hajime Hoshi
7f87ecaddc
internal/graphicscommand: better debug info for blending
2024-10-15 18:26:27 +09:00
Hajime Hoshi
39c21bf4a6
internal/graphicscommand: add a first-caller information
2024-10-15 17:15:42 +09:00
Hajime Hoshi
a4bfa6cb15
all: use Go 1.21's min/max builtin functions
2024-09-12 01:01:05 +09:00
Hajime Hoshi
af9bd6a282
all: specify src-regions correctly
...
This parameter was not important and actually not used with usual
shaders. However, now this information will be important for the
restorable package optimization later.
There was a performance issue that was caused by srcRegions, but
now this should not happen thanks to FilterUniformVariables.
Updates #1293
2024-09-08 22:24:15 +09:00
Hajime Hoshi
1488e5e685
internal/graphicscommand: add attributes to images
2024-09-07 23:38:16 +09:00
Hajime Hoshi
4fa8265c58
internal: add comments
2024-09-07 23:24:55 +09:00
Hajime Hoshi
46cf09197b
internal/graphicscommand: enable to show shader names
2024-09-07 22:06:41 +09:00
Hajime Hoshi
393437b8be
internal/graphicscommand: imporve blend log
2024-09-07 21:29:50 +09:00
Hajime Hoshi
6eb0271f83
internal/graphicscommand: better log for read/write pixels
2024-09-06 18:38:07 +09:00
Hajime Hoshi
b6ab7a10c1
internal/graphics: unify QuadVertices
...
This is a preparation for adding members to Vertex.
Updates #2640
2024-08-12 00:29:24 +09:00
Hajime Hoshi
5f80f4b3de
all: refactoring
2024-08-11 21:43:00 +09:00
Hajime Hoshi
1f03971fa9
internal/debug: reland: rename functions
2024-08-07 23:48:35 +09:00
Hajime Hoshi
fab9482e0e
Revert "internal/debug: rename functions"
...
This reverts commit 74722298a2
.
Reason: This included an unexpected change in internal/gamepad
2024-08-07 23:47:51 +09:00
Hajime Hoshi
74722298a2
internal/debug: rename functions
2024-08-07 23:42:36 +09:00
Hajime Hoshi
1804d56777
Revert "all: open up for more destinations images ( #3013 )"
...
This reverts commit 46d171c3c5
.
Reason: MRT is now suspended. Let's revisit this when we work on MRT again.
2024-07-16 22:43:49 +09:00
Hajime Hoshi
9bc5ed3847
internal/graphicscommand: bug fix: missing file
...
Updates #3036
2024-07-12 11:30:36 +09:00
Hajime Hoshi
7b46df44ee
internal/graphicscommand: bug fix: buffered write pixel args might never be released
...
Closes #3036
2024-07-12 11:25:50 +09:00
Bertrand Jung
46d171c3c5
all: open up for more destinations images ( #3013 )
...
Updates #2930
2024-07-09 02:05:55 +09:00
Hajime Hoshi
346aaf071e
internal/graphicscommand: add screen info to log
2024-07-04 02:01:56 +09:00
Bertrand Jung
22fd1f107e
internal/graphics: renamed shader image count to specify src ( #3012 )
...
This just specifies that the constant refers to the number of source images passed to a shader.
This makes a distinction with the number of dst images, that could potentially be more than 1 in the future.
2024-06-10 02:02:47 +09:00
Hajime Hoshi
e5d10c47e7
internal/graphicsdriver: reland: rename FillRule constants
...
Updates #3006
2024-06-08 12:16:20 +09:00
Hajime Hoshi
6ac1270cb0
Revert "internal/graphicsdriver: rename FillRule constants"
...
This reverts commit ab4a3af1b5
.
Reason: compile error on Windows
2024-06-08 12:10:27 +09:00
Hajime Hoshi
ab4a3af1b5
internal/graphicsdriver: rename FillRule constants
...
Updates #3006
2024-06-08 11:54:46 +09:00
Hajime Hoshi
f34932151d
all: use atomic.Bool instead of atomic.Store/LoadUint32
...
Updates #2422
2024-04-29 21:16:01 +09:00
Hajime Hoshi
bc9e9d8562
ebiten: move the builtin shader to internal/builtinshader
...
Updates #2861
2024-04-20 21:23:37 +09:00
Pedro Tiple
6fafe734da
internal/graphicscommand: refactoring: remove a hard-coded part for ShaderImageCount ( #2895 )
...
This change allows increasing ShaderImageCount without breaking the image display.
Simply made the uniform processing dynamic based on ShaderImageCount.
2024-01-26 13:03:04 +09:00
Hajime Hoshi
48e3c766f7
internal/graphicsdriver: remove Image.IsInvalidated
...
Updates #805
2024-01-09 00:30:21 +09:00
Hajime Hoshi
2da56c00c8
internal/ui: remove renderThread
...
Updates #2714
2024-01-02 17:14:38 +09:00
Hajime Hoshi
338b8957e8
internal/graphicscommand: add Terminate
...
This change reduces a render thread usage in internal/ui.
Updates #2714
2023-12-27 02:28:55 +09:00
Hajime Hoshi
4895ae7f93
internal/graphicsdriver/opengl: refactoring: move some functions from internal/ui
...
Updates #2714
2023-12-23 22:30:13 +09:00
bsski
b8df1217c3
all: fix typos ( #2864 )
2023-12-17 22:42:34 +09:00
Hajime Hoshi
d7ebc19d04
internal/ui: refactoring: reduce usages of renderThread
...
Updates #2714
2023-12-17 16:21:07 +09:00
Hajime Hoshi
d91455c0a7
internal/graphicscommand: add Shader.id
2023-12-01 21:31:50 +09:00
Hajime Hoshi
3ca6184294
ebiten: add a new FillRule: NonZero
...
Closes #2782
2023-11-06 12:11:38 +09:00
Hajime Hoshi
4e93efa5ac
internal/graphicsdriver: reland: add FillRule and replace boolean values with this
...
Updates #2782
2023-11-04 19:09:50 +09:00
Hajime Hoshi
f695df5924
Revert "internal/graphicsdriver: add FillRule and replace boolean values with this"
...
This reverts commit 38cf964a3b
.
Reason: build failure on Windows
2023-11-04 19:02:40 +09:00
Hajime Hoshi
38cf964a3b
internal/graphicsdriver: add FillRule and replace boolean values with this
...
Updates #2782
2023-11-04 18:57:31 +09:00
Hajime Hoshi
3fa8e6ac52
internal/graphics: refactoring: move some constants to internal/graphicscommand
2023-11-04 16:33:30 +09:00
Hajime Hoshi
d862a75fb3
internal/graphics: rename constants
...
Closes #2828
2023-11-04 16:06:35 +09:00
Hajime Hoshi
f2544a1bd9
internal/graphicsdriver: use []uint32 instead of []uint16 for indices
...
Updates #2612
2023-11-04 04:39:17 +09:00
Hajime Hoshi
6339872da8
internal/graphicscommand: disable asynchronous rendering when vsync is on
...
Asynchronouse rendering was introduced at #2664 , but apparently this
caused a delay between a game's update and its rendering.
Disable this when vsync is on. When vsync is off, we should not have
to care the delay since new renderings keep to come. Rather,
asynchronous renderings improves FPS.
Updates #2664
Updates #2822
2023-10-28 14:59:25 +09:00
Hajime Hoshi
27fd10595b
internal/ui: refactoring: reduce global functions and prefer Get()
2023-10-15 03:40:48 +09:00
Hajime Hoshi
f269b61903
internal/atlas: introduce a managed byte slice pool
...
A managed byte slice from the new byte slice pool has a function
to release and put it back to the pool explicitly, and this doesn't
rely on GCs.
Updates #1681
Closes #2804
2023-10-09 20:32:32 +09:00
Hajime Hoshi
6e5361c328
internal/restorable: use clearImage to avoid allocations
...
Bytes from a pool in a command queue is now pretty hard to use correctly
as the lifetime of a queue is not clear.
Remove the byte pools once. Let's reconsider pool usages later.
This change also removes imagesWithBuffers as this is no longer needed.
imagesWithBuffers was necessary to ensure all the bytes from the pool
of the command queue was used before the queue flushes the commands,
as the command queue cleared the pool after flushing. The lifetimes
were pretty ticky.
2023-10-09 00:42:58 +09:00