From 225eb9b34dd8b91f4eca004b9806e179256d192b Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 22 Dec 2025 22:20:57 +0100 Subject: [PATCH 1/7] glgsg: Mark SSBO unbound from all binding points upon deletion Fixes a consistency issue where the buffer might not be rebound properly Backport of 86d0376054173b993a3d329a36fb7e994a12b880 --- doc/ReleaseNotes | 1 + panda/src/glstuff/glGraphicsStateGuardian_src.cxx | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/doc/ReleaseNotes b/doc/ReleaseNotes index 5942c69e8c..d0769cd785 100644 --- a/doc/ReleaseNotes +++ b/doc/ReleaseNotes @@ -12,6 +12,7 @@ This maintenance release fixes some minor defects and stability issues. * Fix use-after-free in collision system with transform cache disabled (#1733) * Egg: Add limited forward compatibility for metallic-roughness textures * OpenGL: fix error blitting depth texture on macOS (#1719) +* OpenGL: fix SSBO not being rebound if deleted and recreated immediately * OpenGL: fix SSBO support not being detected in certain situations * GLSL: Add p3d_MetallicRoughnessTexture input mapped to M_metallic_roughness * X11: Add config variable to enable detection of autorepeat key events (#1735) diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index a11e03377e..12e55cdf9f 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -6837,6 +6837,12 @@ release_shader_buffer(BufferContext *bc) { _current_sbuffer_index = 0; } + for (GLuint &index : _current_sbuffer_base) { + if (index == gbc->_index) { + index = 0; + } + } + _glDeleteBuffers(1, &gbc->_index); report_my_gl_errors(); From 8177021155dc0b945831ed02455e11612212dbc1 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 23 Dec 2025 20:30:56 +0100 Subject: [PATCH 2/7] tests: Fix unit test suite on Python 2.7 --- tests/event/test_futures.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/event/test_futures.py b/tests/event/test_futures.py index db016ae8d3..6296d28f6c 100644 --- a/tests/event/test_futures.py +++ b/tests/event/test_futures.py @@ -16,6 +16,9 @@ def check_result(fut, expected): if fut.result() != expected: return False + if sys.version_info < (3, 5): + return False + # Make sure that await also returns the values properly with pytest.raises(StopIteration) as e: next(fut.__await__()) From 12b5fafa9fd64dc4d52005d3eb3e100aa59a74e0 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 23 Dec 2025 20:31:56 +0100 Subject: [PATCH 3/7] tests: Fix future tests always failing on Python pre-3.5 --- tests/event/test_futures.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/event/test_futures.py b/tests/event/test_futures.py index 6296d28f6c..de7d51068f 100644 --- a/tests/event/test_futures.py +++ b/tests/event/test_futures.py @@ -17,7 +17,7 @@ def check_result(fut, expected): return False if sys.version_info < (3, 5): - return False + return True # Make sure that await also returns the values properly with pytest.raises(StopIteration) as e: From c6e72fbd4f2aca03ce56b27abc520970ad668e99 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 25 Dec 2025 15:14:40 +0100 Subject: [PATCH 4/7] makepanda: Don't set HAVE_OPENAL_FRAMEWORK when building with thirdparty --- makepanda/makepanda.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 2fd81b6624..ad6230f0ed 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -2766,7 +2766,8 @@ def WriteConfigSettings(): dtool_config["PYTHON_FRAMEWORK"] = 'Python' dtool_config["PHAVE_MALLOC_H"] = 'UNDEF' dtool_config["PHAVE_SYS_MALLOC_H"] = '1' - dtool_config["HAVE_OPENAL_FRAMEWORK"] = '1' + if not os.path.isdir(os.path.join(GetThirdpartyDir(), 'openal')): + dtool_config["HAVE_OPENAL_FRAMEWORK"] = '1' dtool_config["HAVE_X11"] = 'UNDEF' # We might have X11, but we don't need it. dtool_config["IS_LINUX"] = 'UNDEF' dtool_config["HAVE_VIDEO4LINUX"] = 'UNDEF' From 9f13db32844e1a8c0482a1576ecdee0e9392f54f Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 25 Dec 2025 15:38:12 +0100 Subject: [PATCH 5/7] Update version numbers from 1.10.15 to 1.10.16 --- .github/workflows/ci.yml | 8 ++++---- README.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c304c75af..ecc162ed70 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,10 +26,10 @@ jobs: - name: Get thirdparty packages (macOS) if: runner.os == 'macOS' run: | - curl -O https://www.panda3d.org/download/panda3d-1.10.15/panda3d-1.10.15-tools-mac.tar.gz - tar -xf panda3d-1.10.15-tools-mac.tar.gz - mv panda3d-1.10.15/thirdparty thirdparty - rmdir panda3d-1.10.15 + curl -O https://www.panda3d.org/download/panda3d-1.10.16/panda3d-1.10.16-tools-mac.tar.gz + tar -xf panda3d-1.10.16-tools-mac.tar.gz + mv panda3d-1.10.16/thirdparty thirdparty + rmdir panda3d-1.10.16 (cd thirdparty/darwin-libs-a && rm -rf rocket) - name: Set up Python 3.13 diff --git a/README.md b/README.md index 0621692a86..0002e7b21e 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Installing Panda3D ================== The latest Panda3D SDK can be downloaded from -[this page](https://www.panda3d.org/download/sdk-1-10-15/). +[this page](https://www.panda3d.org/download/sdk-1-10-16/). If you are familiar with installing Python packages, you can use the following command: @@ -136,7 +136,7 @@ macOS ----- On macOS, you will need to download a set of precompiled thirdparty packages in order to -compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.15/panda3d-1.10.15-tools-mac.tar.gz). +compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.16/panda3d-1.10.16-tools-mac.tar.gz). After placing the thirdparty directory inside the panda3d source directory, you may build Panda3D using a command like the following: From 4732c247fefdabbb417d9b4406208d453cb0e3a1 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 25 Dec 2025 15:39:05 +0100 Subject: [PATCH 6/7] workflow: Add Python 3.14 to test matrix --- .github/workflows/ci.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecc162ed70..206df4df39 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,6 +32,20 @@ jobs: rmdir panda3d-1.10.16 (cd thirdparty/darwin-libs-a && rm -rf rocket) + - name: Set up Python 3.14 + uses: actions/setup-python@v5 + with: + python-version: '3.14' + - name: Build Python 3.14 + shell: bash + run: | + python makepanda/makepanda.py --git-commit=${{github.sha}} --outputdir=built --everything --no-eigen --python-incdir="$pythonLocation/include" --python-libdir="$pythonLocation/lib" --verbose --threads=4 --windows-sdk=10 --msvc-version=14.3 + - name: Test Python 3.14 + shell: bash + run: | + python -m pip install pytest setuptools + PYTHONPATH=built LD_LIBRARY_PATH=built/lib:$pythonLocation/lib DYLD_LIBRARY_PATH=built/lib python -m pytest + - name: Set up Python 3.13 uses: actions/setup-python@v5 with: From e560eb8da370d86b096d6cb65eafd9ab40879b9a Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 25 Dec 2025 16:40:30 +0100 Subject: [PATCH 7/7] Add Python 3.14 to setup.cfg [skip ci] --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index e8cf51c227..e1c78047c5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -26,6 +26,7 @@ classifiers = Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 Programming Language :: Python :: 3.13 + Programming Language :: Python :: 3.14 Programming Language :: Python :: Implementation :: CPython Topic :: Games/Entertainment Topic :: Multimedia