Commit Graph

26431 Commits

Author SHA1 Message Date
rdb eae39b339c collide: Fix CollisionNode owner crash (grab GIL when destructing) 2025-04-15 10:45:05 +02:00
WMOkiishi 5435579567
showbase: Annotate basic `Messenger` methods (#1726) 2025-04-06 10:10:50 +02:00
WMOkiishi 4b4fa03895
direct: Annotate functions called directly by top-level code (#1727) 2025-04-06 10:10:15 +02:00
rdb 6274b478aa pstats: Better handle overlapping collectors in Timeline
Prevents staircase effect where overlapping bars will end up ever
increasing the number of rows
2025-02-27 15:11:16 +01:00
rdb 5a97488adf gtk-stats: Support trackpad zoom/pan gestures in Timeline view 2025-02-27 15:10:53 +01:00
rdb 7c16720bb9 webgl: Improve canvas resizing behavior
Automatically resize canvas to the CSS size
2025-02-25 12:11:24 +01:00
rdb 85541de504 grutil: Add support for playing video via HTML video+WebGL 2025-02-24 22:45:48 +01:00
rdb c960874d4e downloader: Add url property to VirtualFileHTTP 2025-02-24 20:07:31 +01:00
rdb ab57b3c72f downloader: Fix HTTP downloads on latest emscripten 2025-02-24 20:06:28 +01:00
rdb f4da124b50 pgraphnodes: Add setter for shadow buffer sort 2025-02-22 11:06:31 +01:00
WMOkiishi 8de98592ca
showbase: Annotate basic `Loader` methods (#1723) 2025-02-19 18:59:19 +01:00
rdb a7f8c57681 display: Add per-shader PStats timer for compute dispatches
Also add a total work group counter

Fixes #1721
2025-02-05 10:12:52 +01:00
rdb c729c75b29 display: Add queries for max work group count/size/invocations
Fixes #1713
2025-02-05 10:03:54 +01:00
rdb fef27a7cb0 Update emscripten to 4.0.2, Python to 3.12.8, enable bulk memory 2025-02-03 18:09:00 +01:00
rdb 6452907b64 Improvements for env handling with node.js and emscripten
- Initializes the environment so that getenv et al works properly
- No longer calls JS functions at static init time; the JS preamble will
  pass the right env vars to ExecutionEnvironment
- Sets the binary name to the path of the .js file
2025-02-03 18:06:30 +01:00
rdb 8a1159f4a7 makepanda: Only build pnmimagetypes with exceptions if using OpenEXR 2025-02-02 20:12:17 +01:00
rdb 79d6727077 Move MAIN_DIR initialization code from interrogate to panda3d
Using the new -init flag, see panda3d/interrogate#3
2025-02-02 20:11:32 +01:00
rdb ea1cbe47ac dist: Add missing hidden import for panda3d.core on enum 2025-02-02 20:07:10 +01:00
rdb 3f0f90d83d makepanda: Don't try to call interrogate_module with -vv 2025-02-02 20:06:46 +01:00
WMOkiishi b0e1e0c75a showbase: Annotate callback methods 2025-02-02 09:28:25 +01:00
rdb 0404febf96 windisplay: Fix IME result not showing up without `ime-aware true` 2025-01-30 14:13:15 +01:00
rdb e681c17215 glgsg: Use glClearTexImage even when tex has no storage
Just use glTexImage with null image to create the storage first, then
clear it, this prevents needlessly generating a filled RAM image on the
CPU
2025-01-30 11:58:25 +01:00
rdb f188c8a028 tests: Use approx comparison for test_depth_bias 2025-01-30 11:38:17 +01:00
rdb 99b3888712 gobj: Fix Texture::clear_clear_color() 2025-01-30 11:38:00 +01:00
rdb f6f391bd3d glgsg: Don't override texture clear color for FBO attachments
This applies to FBOs without a clear set; the clear color set on the
texture should determine the initial color.
2025-01-30 11:36:23 +01:00
rdb 8114971c56 webgl: Improve handling of canvas focus
Can now forcibly focus to the canvas with a foreground request, and now
focuses automatically on window open (except if requested not to)
2025-01-29 17:05:21 +01:00
rdb 1281875cbc linmath: Fix degenerate case in decompose_matrix
Regression in 583f7366db
2025-01-29 17:05:16 +01:00
rdb 1fa8e2b0fc webgl: Don't use stringToUTF32 for keypress handling 2025-01-29 17:05:11 +01:00
rdb 287e456077 glgsg: Fix BGR swap regression for sync uploads
Was regression in 2a47826101
2025-01-29 17:05:00 +01:00
rdb fa64a52fca glgsg: Do not prefer depth-stencil ms renderbuffers on macOS
Fixes #1719
2025-01-29 11:12:07 +01:00
rdb 1234388de8 glgsg: Make multisample renderbuffer format match regular one 2025-01-29 11:11:47 +01:00
rdb 9c7e9e9805 glgsg: Add more debug prints for renderbuffer creation 2025-01-29 11:10:42 +01:00
rdb 97fcbc2e15 glgsg: Fix error message for unhandled external formats 2025-01-29 11:08:43 +01:00
rdb 3725a00fdc glgsg: Fix typo 2025-01-28 10:40:43 +01:00
rdb 1a431b3894 glgsg: make async texture transfer threads configurable 2025-01-28 09:53:34 +01:00
rdb 55a3a0d2af glgsg: async screenshot refactor, general mechanism for fences 2025-01-27 19:36:04 +01:00
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