-
-
Notifications
You must be signed in to change notification settings - Fork 938
avm1: Fix some edge cases in super logic
#22229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
+183
−18
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1eb6bf2 to
44ce1ac
Compare
Dinnerbone
approved these changes
Nov 15, 2025
- `super` accesses shouldn't coerce primitives to objects while crawling the prototype chain; - `super()` calls shouldn't call `__resolve` when resolving the `__constructor__` property.
44ce1ac to
8266101
Compare
Hancock33
added a commit
to Hancock33/batocera.piboy
that referenced
this pull request
Nov 23, 2025
----------------------------------------------------------------------------------------------------- batocera-controlcenter.mk f5000150ca71b9c97c4ec57c3200ead02d531568 # Version: Commits on Nov 17, 2025 ----------------------------------------------------------------------------------------------------- Add <qrcode>, <pdf> and conditional formatting., ------------------------------------------------------------------------------------------ duckstation.mk acadbffe1cd8579d1b3a7aa6d63c7a9e01bcc733 # Version: Commits on Nov 17, 2025 ------------------------------------------------------------------------------------------ Achievements: Allow overriding host through config [Cheevos] Host = http[s]://servername, ----------------------------------------------------------------------------------- eden.mk eb2d9ea57460b4d0ff24a8cd7b61aec231a5a547 # Version: Commits on Nov 17, 2025 ----------------------------------------------------------------------------------- [ci, tools] working find-unused-strings, android strings CI (#3036) -------------------------------------------------------------------------------------- melonds.mk 7a7c6fdadc04929bb54fdab74d7593f0b2e2e977 # Version: Commits on Nov 17, 2025 -------------------------------------------------------------------------------------- unbreak audio sync, ---------------------------------------------------- pcsx2.mk v2.5.304 # Version: Commits on Nov 17, 2025 ---------------------------------------------------- - [Debugger: Fix some infinite loops](PCSX2/pcsx2#13553) , ------------------------------------------------------------------------------------- ppsspp.mk 4adfbbbc72abb12852bf9c498ccf94cb757a058e # Version: Commits on Nov 17, 2025 ------------------------------------------------------------------------------------- Merge pull request #21016 from wescopeland/rc-client-set-host Achievements: support rc_client_set_host, ------------------------------------------------------------------------------------ rpcs3.mk de914247bed599127ab5b1fa7822025bec75b157 # Version: Commits on Nov 16, 2025 ------------------------------------------------------------------------------------ overlays: remove unnecessary cast, ----------------------------------------------------- ryujinx.mk 1.3.224 # Version: Commits on Nov 17, 2025 ----------------------------------------------------- Canary-1.3.224 -------------------------------------------------------------------------------------- shadps4.mk 5b699090e6bb5936f9d2d809ee6309e3de12868a # Version: Commits on Nov 17, 2025 -------------------------------------------------------------------------------------- cmake: fix sdl3_mixer target name (#3811), ------------------------------------------------------------------------------------------- xenia-native.mk 4ebf8994de267ae4eab94122b0dd841e584b6860 # Version: Commits on Nov 17, 2025 ------------------------------------------------------------------------------------------- [XMA] Revert changes in old XMA decoder to state from master repository. - If you have new issues with sound it is recommended to switch to new decoder., ----------------------------------------------------------------------------------------- lightspark.mk 9223b4068d6e027f52930495b4f1bb5b54709265 # Version: Commits on Nov 17, 2025 ----------------------------------------------------------------------------------------- fix reusing of Shapes from Tags fixes some rendering issues in FormulaRacer2012, --------------------------------------------------------------- ruffle.mk nightly-2025-11-17 # Version: Commits on Nov 17, 2025 --------------------------------------------------------------- ## What's Changed * avm1: Fix some edge cases in `super` logic by @moulins in ruffle-rs/ruffle#22229 * tests: Fix assertion comparison message order by @cookie-s in ruffle-rs/ruffle#20809 * text: Fix `getCharBoundaries` for scrolled text by @kjarosh in ruffle-rs/ruffle#22208 * avm2: Fix signatures and version-gating for `flash.security` and `flash.xml` classes by @Lord-McSweeney in ruffle-rs/ruffle#22213 * tests: Mark `known_failure` tests with a `!` in the runner's output by @moulins in ruffle-rs/ruffle#22251 * render: Add more detail to `InvalidZlibCompression` by @kjarosh in ruffle-rs/ruffle#22258 * chore: Update translations from Crowdin by @kjarosh in ruffle-rs/ruffle#22259 **Full Changelog**: ruffle-rs/ruffle@nightly-2025-11-16...nightly-2025-11-17, ---------------------------------------------------------------------------------------- rpi-utils.mk 8fde8b73de3cff4e946e5799b706456d87173667 # Version: Commits on Nov 17, 2025 ---------------------------------------------------------------------------------------- piolib: Fix cut-and-paste error in pio_rp1.c (in rp1_pio_sm_clkdiv_restart()) This fixes rp1_pio_sm_clkdiv_restart() using `struct rp1_pio_sm_restart_args` instead of `struct rp1_pio_sm_clkdiv_restart_args` for its ioctl() args. This doesn't actually cause any problems because the 2 structures happen to have the same exact contents and layout: struct rp1_pio_sm_restart_args { uint16_t mask; }; struct rp1_pio_sm_clkdiv_restart_args { uint16_t mask; }; But surely the intention was for this function to use the args named after it., ------------------------------------------------------------------------------------ box64.mk 60cea01eb5f4442e1758111a45a8e456b54778e3 # Version: Commits on Nov 17, 2025 ------------------------------------------------------------------------------------ [STEAM] Use elulated libgnutls when using a steam runtime, --------------------------------------------------------------------------------------- corsixth.mk 266a78f338e686591fa721ef5c20db13682317a1 # Version: Commits on Nov 17, 2025 --------------------------------------------------------------------------------------- Merge pull request #3122 from tobylane/vcpkgbump Bump vcpkg baseline, ------------------------------------------------------------------------------------------ devilutionx.mk dd1754dc2aa80340f2cbc0b87d3c7c91db4f4cd6 # Version: Commits on Nov 16, 2025 ------------------------------------------------------------------------------------------ Lock Amiga builds to known good version of container, ----------------------------------------------------------------------------------- rott.mk 4d4a087b84c8469fe8c88f7bf20d8902a691fe41 # Version: Commits on Nov 17, 2025 ----------------------------------------------------------------------------------- exclude directories from M_FileCaseExists(), --------------------------------------------------------------------------------------- mangohud.mk 0e5097cf5831db868fd3b22440679f542ed57a41 # Version: Commits on Nov 16, 2025 --------------------------------------------------------------------------------------- fps_metrics: fix horizontal view, ------------------------------------------------------- vkd3d-proton.mk v3.0 # Version: Commits on Nov 17, 2025 ------------------------------------------------------- A new major release, yay! A few milestones have been reached over the last year, warranting a new major bump. It's been quite a while since the last release due to new things coming up constantly. These tags are mostly arbitrary anyway, and tend to be done when islands of calm and stability emerge. ### Major items #### DXBC shader backend rewrite @doitsujin rewrote the entire DXBC backend, replacing our legacy vkd3d-shader path. DXVK and vkd3d-proton now share the same DXBC frontend which gives us clean, eadable\ (as readable as DXBC can be) and lean IR to work with. dxil-spirv standalone project now supports DXBC as well as a result. Lots of games which used to be completely broken before due to bugs and missing features in the legacy vkd3d-shader backend are now fixed. E.g. Red Dead Redemption 2 runs just fine now in D3D12 mode. Some recently released DXBC based games also only work on the new path. The amount of regressions found the last months in DXBC games has been very minor, but it's possible there are still bugs in this area. However, given that DXVK uses it now as well, it's been battle tested quite extensively already. #### FSR4 support We added support for AGS WMMA intrinsics through `VK_KHR_cooperative_matrix` and `VK_KHR_shader_float8`, which is enough to support FSR4. Note that these shaders are tightly coded for AMD GPUs with some implementation defined behavior (particularly around matrix layouts), and they will not necessarily work on other GPU vendors. There is also a quite hacky emulation path of this which relies on int8 and float16 cooperative matrix support, which can run on older GPUs at significant performance cost (and some cost to theoretical correctness). Note that the default \official\ build of vkd3d-proton only exposes this feature when the native `VK_KHR_shader_float8` is properly supported, i.e. RDNA4+ only. The emulation path is available when building from source with the appropriate build flags. The decision to not include this emulation path by default is over my pay grade. The aim is to be able to ship FSR4 in a more proper way in Proton. ### Features We've more or less caught up on the things we can feasibly implement, so there isn't much exciting stuff happening on the feature front. - Implemented experimental support for D3D12 work graphs. No real-world content ships this yet. This implementation is far from complete, but it works on \any\ GPU since we emulate the feature with normal compute shaders. Funnily enough, the performance of this emulation can massively outperform native driver implementations of the feature in many scenarios we've tested (at the cost of some extra VRAM usage). See `docs/` for more details on implementation and some performance numbers. - Expose `AdvancedTextureOpsSupported` by default from SM 6.7 if `VK_KHR_maintenance8` is supported. - Expose the recently added sparse TIER_4. - Bump exposed D3D12SDKVersion to latest 618. - Experimentally expose support for opacity micromaps. There are some details which aren't quite compatible with the D3D12 API, but some basic demo content is working fine. - Add support for AMD_anti_lag when exposed. The current implementation does not take frame-gen into account. - Implement support for tight alignment from recent AgilitySDK. - Add support for shared resource path on upstream Wine. ### Performance - Overhaul the texture copy batching situation. The new batching logic should be able to improve performance in many more cases than before. - Implemented support for `VK_KHR_unified_image_layouts`. Image copy batching in particular can take advantage of this to avoid a lot of unnecessary barriers. - Removed manual clear workaround on newer (6.15.9+) kernels on AMD, where an old kernel regression was finally fixed. Kernels older than 6.10 are also not affected by this workaround. - Use push descriptor path on Qualcomm GPUs over BDA for speed. - Improve handling of GDeflate when decompression extension is not available. We now ship our own fallback shader in GLSL instead of the more awkward HLSL shader that dstorage ships. - Bump DGC scratch size on NVIDIA. Should avoid some massive perf drops in Halo Infinite on NVIDIA. - Add performance optimization for The Last of Us Part 1 to prefer 2D tiling on 3D images. Requires [an update to Mesa](https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38084) as well to get the proper effect. - Handle depth/stencil <-> color image copies better when `VK_KHR_maintenance8` is supported. - Make use of `VK_EXT_zero_initialize_device_memory` to avoid manual clears on allocation. ### Fixes - Emit render pass barriers as expected on tiled GPUs. Fixes misc rendering bugs reported on e.g. Turnip. - For performance reasons, we deliberately skirt the spec a bit on desktop GPUs. - Fixed a bunch of minor correctness problems exposed by new Vulkan-ValidationLayers. - Adjust how `PointSamplingAddressesNeverRoundUp` is reported to match recent driver behaviors. - Fix overflow bugs in massive (> 4GiB) sparse resource handling. - Fix reporting of some esoteric format properties to better match native drivers. - Fix handling of NULL acceleration structure descriptors. - Fix some texturing bugs in Helldivers II on NVIDIA. - Fix some bugs with memory type handling on very old NVIDIA GPUs. - Fix bug when pixel shader includes root signature. - Make ClearUAV barrier insertion the default now. Too many games screw this up, and D3D12 drivers seem to do it by default. - Fix shared fences when initial value is not 0. Fixes some Star Citizen issues. - Fix rare deadlock scenario in Ninja Gaiden 4. Fixes some long-standing issues with how we deal with fence rewinds. - Fix some long-standing issues with how we deal with placed MSAA resources and alignment. - Make sure we don't clear memory of imported resources. This doesn't fix any known games, but you never know :V - Improve correctness for many odd GS/HS/DS corner cases with primitive types and API validation. - Fixes crashes when index buffer SizeInBytes = 0, but VA was invalid. Seen in some Saber Interactive games. - Fixes some potential deadlocks in VR interop APIs when multiple threads attempt to acquire Vulkan queue. - Fixes 16-bit aligned structured buffer strides. Not observed in any real content, but you never know! ### Workarounds - Add FF VII rebirth sync bugs workarounds. Fixes some rare GPU hangs. - Add misc AMD workarounds for Monster Hunter Wilds caused by bugged hardware around sparse SMEM. - A proper hardware workaround in RADV is still pending. - Workaround some Starfield bugs around `NonUniformResourceIndex` use. - Add performance workarounds for extremely large tessellation factors used in misc new Koei Tecmo games. - Add Wreckfest 2 workarounds for illegal texture placement aliasing. Fixes some broken textures. - Add barrier in Satisfactory that game missed. Fixes some corrupt rendering especially on AMD. - Ignore NOT_CLEARED flags on allocation in all games now. Native drivers seem to always clear regardless of the flag, and e.g. Street Fighter 6 relies on NOT_CLEARED memory to actually be cleared :( - Workaround some issues with RGB9E5 and alpha write masks observed in Ninja Gaiden 4. - Add missing barrier in Death Stranding (the older build, not Director's Cut). - Add missing barrier in Wuthering Waves. - Workaround bugged uninitialized loop variable in Dune MMO. - Disable UAV compression in Spider-Man Remastered. Fixes some weird RT issues on RDNA2. - Add Root CBV robustness workaround for Gray Zone Warfare. - Disables color compression in Rise of the Tomb Raider. Fixes some glitches due to game bug on AMD. - Workaround some bugs in Port Royal benchmark. - Workaround Mafia: Definitive Edition hanging GPU when using FSR on startup due to use-after-free. - The workaround applies to all uses of FSR. Plausibly workaround a hang in MGS: Delta as well, but not confirmed it was this bug. - Workaround Control RT path occasionally observing NaNs due to bad normalize() patterns. - Workaround Final Fantasy Tactics Ivalice Chronicles illegally using dynamically indexed root constants. ### Misc - Added a lot more debug instrumentation as usual. - Not user facing, so omitting details. - Make it a bit easier to use vkd3d-proton in Linux-native projects. - Remove `DXVK_FRAME_RATE` to align with DXVK's removal. Only `VKD3D_FRAME_RATE` remains (at least for now)., ---------------------------------------------------------------------------------------- retroarch.mk a609b709eb9b5d9a7af89dbf40dd5c673280e636 # Version: Commits on Nov 17, 2025 ---------------------------------------------------------------------------------------- Bump to version 1.22.2, ---------------------------------------------------------------------------------------- doomretro.mk 34d302bdfee2b169badf3661103c4eeec6875161 # Version: Commits on Nov 17, 2025 ---------------------------------------------------------------------------------------- Minor tweaks, ------------------------------------------------------------------------------------- gzdoom.mk 092b9c0515c2861270cde175cd8eaa30a253c8b1 # Version: Commits on Nov 13, 2025 ------------------------------------------------------------------------------------- Fix for linking against Clang(lld), ---------------------------------------------------------------------------------- trx.mk 153f48151cb0fe95f8400f8b8d04d049873f2702 # Version: Commits on Nov 17, 2025 ---------------------------------------------------------------------------------- inject/editors/rooms: set default colour on injected vertices This ensures injected vertices have a default colour applied rather than defaulting to semi-transparent., ------------------------------------------------------------------------------------------ xash3d-fwgs.mk 5556668fc3631d771a078daf2beb4bccacfc9899 # Version: Commits on Nov 17, 2025 ------------------------------------------------------------------------------------------ wscript: add option to disable rpath usage, ----------------------------------------------------------------------------------------------- libretro-dolphin.mk 5547873a764d48a2e541b0bca0d2a95b21b5db7e # Version: Commits on Nov 17, 2025 ----------------------------------------------------------------------------------------------- Use SetBase instead of SetCurrent on boot, -------------------------------------------------------------------------------------------------- libretro-gearcoleco.mk f3e3e1812a3421bf24fca26ff257fb36842d33a9 # Version: Commits on Nov 16, 2025 -------------------------------------------------------------------------------------------------- Fix case sensitivity in BSD SDL2 package installation, -------------------------------------------------------------------------------------------------- libretro-gearsystem.mk af2652e4082ef23f6826b5acf8338900d08cab2a # Version: Commits on Nov 16, 2025 -------------------------------------------------------------------------------------------------- Fix case sensitivity in SDL2 package name, ---------------------------------------------------------------------------------------------- libretro-ppsspp.mk 4adfbbbc72abb12852bf9c498ccf94cb757a058e # Version: Commits on Nov 17, 2025 ---------------------------------------------------------------------------------------------- Merge pull request #21016 from wescopeland/rc-client-set-host Achievements: support rc_client_set_host, --------------------------------------------------------------------------------------------- libretro-vba-m.mk 32b5400e4144e7de5de2f3e91e9353275f235573 # Version: Commits on Nov 17, 2025 --------------------------------------------------------------------------------------------- Fix color w/ filters at 8/16bpp and Super Eagle Fix color formats and masking at 8bpp and 16bpp with filters and fix the line at the bottom with Super Eagle. Fixed with Claude. Signed-off-by: Rafael Kitover <[email protected]>, ------------------------------------------------------------------------------------------- glsl-shaders.mk 468f67b6f6788e2719d1dd28dfb2c9b7c3db3cc7 # Version: Commits on Nov 17, 2025 ------------------------------------------------------------------------------------------- fakelottes ntsc update parameters (#549) This tweaks a parameter to the ntsc_module shader, so that the colors match more closely the stock Fakelottes, -------------------------------------------------------------------------------------------- slang-shaders.mk 46f2fd751a450c7c93f86786f5f76a55692a7a68 # Version: Commits on Nov 17, 2025 -------------------------------------------------------------------------------------------- Update crt-sines.slang (#804),
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
superaccesses shouldn't coerce primitives to objects while crawling the prototype chain;super()calls shouldn't call__resolvewhen resolving the__constructor__property.