rdb
2a47826101
glgsg: Big refactoring of texture uploading, add async upload support
2025-01-27 19:35:59 +01:00
rdb
2ea02ef0c8
putil: Add new primitives for async callbacks/futures
...
These are a lot lighter than AsyncFuture and safer to use in C++ due to the reliance on RAII. An async method can now take a CompletionToken, which will implicitly accept an arbitrary callable or an AsyncFuture pointer.
2025-01-27 15:28:11 +01:00
rdb
67723ca06a
display: Generalized method for running things on draw thread
...
This is more general and elegant than manually listing all operations in
a big enum
2025-01-27 14:01:51 +01:00
rdb
5b0cf9e053
glgsg: More efficient handling of texture memory barriers
...
New system uses counters instead of sets, just setting a counter for
each barrier on a texture to the same value as a counter on the GSG when
a barrier is pending, and incrementing the counter on the GSG whenever
that barrier is issued, is enough to track pending barriers since
barriers are global
2025-01-27 12:57:40 +01:00
rdb
a55860bf49
glgsg: Fix memory barrier for extract_shader_buffer_data
2025-01-27 12:54:53 +01:00
rdb
3833866801
display: Add method to synchronously download SSBO contents
2025-01-25 18:08:54 +01:00
rdb
7ba4fe365c
display: Add gsg.engine property
2025-01-25 18:08:29 +01:00
rdb
3082d28fe8
pstatclient: Fix out-of-order events with thread profiling
...
It could generate an end/start pair on a thread that is waiting due to other threads in that sync group submitting a PStats frame for the whole sync group, which would cause out-of-order events
2025-01-22 22:17:56 +01:00
rdb
da4e2cad9f
express: Use monotonic clock on POSIX (has nanosecond precision)
2025-01-22 22:16:36 +01:00
rdb
674fa4480b
task: Fix first frame on task chain missed by PStats
2025-01-22 22:14:01 +01:00
rdb
91f124e2f1
display: Allow setting a custom clock for a GraphicsEngine
...
This is essential for supporting multiple engines, otherwise both engines will try to tick the global clock in render_frame()
2025-01-21 12:16:09 +01:00
rdb
8c9ba6dc38
cocoa: Fix compilation error
2025-01-21 12:04:01 +01:00
rdb
f872a82422
display: Support sharing graphics context between GraphicsEngines
...
Automatically happens when creating a new window/buffer specifying a GSG that was created with a different engine.
2025-01-21 11:52:58 +01:00
rdb
8f4d0c8a66
gobj: Make BufferContextChain thread-safe
2025-01-21 11:37:29 +01:00
rdb
db692edfa9
glgsg: Issue memory barriers for SSBOs
...
At the moment, it assumes that all SSBO accesses are writes, once shaderpipeline lands we can sort out readonly accesses based on the qualifiers in the shader
2025-01-20 20:58:14 +01:00
rdb
271fa9d9c0
glgsg: Fix issues with render-to-texture and cube map arrays
2025-01-19 11:10:06 +01:00
Disyer
cc6646a448
cull: Fix crash caused by freeing a cull object with empty volume
2025-01-11 21:32:52 +02:00
rdb
770e2fff0c
windisplay: Remove unused config.prc variable definitions:
...
- responsive-minimized-fullscreen-window
- hold-keys-across-windows
- swapbuffer-framelock
2024-12-26 22:13:57 +01:00
burningbuffer
5965d5bbec
windisplay: Prevent window resize to zero ( #1705 )
2024-12-21 18:53:07 +01:00
rdb
899af61e2a
pgraph: Fix ModelPool return value reference count
2024-12-19 16:18:17 +01:00
rdb
e43dc87df5
Fix unit test failures on Python 3.13
2024-12-14 15:25:03 +01:00
rdb
3f2b9cd351
pgraph: Make ModelPool.load_model() work same as Loader.load_sync()
...
ModelPool.load_model() did not work like the other pools, didn't resolve relative to the VFS, didn't respect loader options... let's just make these work the same. We should deprecate one in favor of the other eventually
2024-12-14 13:25:12 +01:00
rdb
5e05049725
collide: Add custom owner field to CollisionNode
...
This stores a weakref to a custom Python object, useful for being able to look up the game object corresponding to a particular collision node in an event without the downsides of Python tags
Fixes #1703
2024-12-14 12:48:24 +01:00
rdb
6f33bbecea
glgsg: Fix use after free with gl-force-fbo-color and layered FBO
2024-12-03 13:19:48 +01:00
rdb
26dd784153
gobj: Make BufferResidencyTracker::_residency a const field
2024-12-03 13:19:17 +01:00
rdb
ff111132f4
android: Draw to whole window, ignoring contentRect
...
This contentRect is quite odd and blocks out a big chunk at the top of the screen which doesn't really seem to correspond to anything
2024-11-27 18:11:10 +01:00
rdb
46e90058b9
android: Fix crash on shutdown if stdout/err is not redirected
2024-11-27 00:09:02 +01:00
rdb
a32030d46e
framework: Clean up task manager on close_framework()
...
This prevents crashes due to the tasks it spawns continuing to run
2024-11-26 18:16:01 +01:00
rdb
ff3e7da752
pipeline: Never try to detach external pthread (fixes Android crash)
2024-11-26 17:02:26 +01:00
rdb
ac68b85d1f
shader: Fix compilation warning
2024-11-26 16:42:45 +01:00
rdb
347164103c
text: Don't try to use harfbuzz if freetype is not enabled either
2024-11-26 16:42:21 +01:00
rdb
c31041c8cc
android: Fix assorted errors and deprecations
2024-11-26 16:42:02 +01:00
rdb
639497310e
windisplay: Fix recursive loop in adjust_z_order
2024-11-14 20:21:04 +01:00
rdb
22381c94d4
pgraphnodes: Disable lighting when rendering shadow cam
...
This prevents accessing a texture (the shadow map) that we're currently rendering into. Hopefully a reasonable driver was already optimizing out the access properly due to the color write being off, but it could cause unnecessary work in the driver
This will have the effect of the shader generator generating a different shader for the shadow pass than for the main pass, ideally we optimize the shader generator a bit more so that there are fewer shaders generated for the shadow pass.
2024-11-14 20:11:39 +01:00
rdb
d173086a6f
putil: Fix SparseArray get_lowest_on_bit and get_lowest_off_bit
2024-11-14 20:09:29 +01:00
rdb
804d49fdbb
tinydisplay: Fix extracted texture not having sRGB format
2024-11-09 19:03:51 +01:00
rdb
2b88594421
tinydisplay: Fix vertex color being multiplied in even with material present
2024-11-09 19:03:27 +01:00
rdb
134f0bbc83
tinydisplay: Fix material diffuse being ignored with only ambient light
2024-11-09 19:02:54 +01:00
rdb
05d23cae35
tinydisplay: Set correct number of depth bits in buffer
2024-11-09 19:02:28 +01:00
rdb
d23e44e2f1
Merge branch 'release/1.10.x'
2024-11-08 11:36:02 +01:00
rdb
a6a386aab3
text: Fix text-native-antialias not properly taking effect
2024-11-07 11:34:02 +01:00
rdb
b51dd4d7bc
Merge branch 'release/1.10.x'
2024-11-06 22:52:54 +01:00
rdb
16431748de
parametrics: fix RopeNode breaks due to float imprecision
...
Fixes #1325
2024-11-06 22:51:40 +01:00
rdb
0a4d22ad9f
express: Fix VFS mount points not being listed as directories
...
Fixes #1244
2024-11-06 13:20:03 +01:00
rdb
c060b2f3fe
linmath: Fix vector printing issues with big values on emscripten
2024-11-03 23:59:23 +01:00
rdb
8ff71aeb15
webgl: Fix precision issues with default shaders
2024-11-03 23:58:28 +01:00
rdb
6823634f60
cull: Use more efficient arena allocation for CullableObject
2024-11-03 16:24:14 +01:00
rdb
7926d1047e
text: Unbreak small caps support with text-use-harfbuzz
...
Fixes #1666
2024-10-31 15:01:06 +01:00
rdb
55fa0e9912
Merge branch 'release/1.10.x'
2024-10-31 13:13:00 +01:00
rdb
89c0371cbb
putil: BamWriter doc fix, initialize _root_node field properly
2024-10-31 13:07:02 +01:00