I've just made this PR (a week's worth of work) to overhaul resource duplication in #GodotEngine, making it more reliable, predictable and comprehensive.
A myriad of test cases added, too.
https://github.com/godotengine/godot/pull/100673
Finally, my talk on multi-threading in #GodotEngine is up!
https://youtu.be/k0yrP5Av0fg
Have I ever told you this is in the top drawer of my bedside table?
A CPU I enjoyed for a few years, an original Pentium@100MHz. (Well, not the very original.052134, if you get the joke.)
6.11.2024 08:27Have I ever told you this is in the top drawer of my bedside table?A CPU I enjoyed for a few years, an original Pentium@100MHz. (Well, not...GCC and Clang generate a more optimal instruction for an acquire barrier on ARM64 (`dmb ishld`—load-load, load-store) than MSVC (`dmb ish`—full).
4.11.2024 17:31GCC and Clang generate a more optimal instruction for an acquire barrier on ARM64 (`dmb ishld`—load-load, load-store) than MSVC (`dmb...https://talks.godotengine.org/godotcon-24/talk/3X9MQY/
24.9.2024 23:46https://talks.godotengine.org/godotcon-24/talk/3X9MQY/I may be giving a talk on multi-threading in #GodotEngine during the upcoming @godotcon. It may cover the internal threading machinery as well as the various ways the parallel processing power is exposed to user projects. 🤫
24.9.2024 20:35I may be giving a talk on multi-threading in #GodotEngine during the upcoming @godotcon. It may cover the internal threading machinery as...For a more comprehensive comparison, here's the article I wrote on how Godot does it. Metal wasn't still there, so let me add that transpilation via SPIRV-Cross is used for that one.
https://godotengine.org/article/d3d12-adventures-in-shaderland/
5.9.2024 05:11For a more comprehensive comparison, here's the article I wrote on how Godot does it. Metal wasn't still there, so let me add that...https://moonside.games/posts/layers-all-the-way-down/
An interesting read. In #GodotEngine we took a different approach: Godot's GLSL-like and pure GLSL are what users work with and any transpilation needed happens under the hood. The approach in SDL3 GPU exposes users to a lower level, which makes sense in their case.
5.9.2024 05:07https://moonside.games/posts/layers-all-the-way-down/An interesting read. In #GodotEngine we took a different approach: Godot's...My Direct3D 12 PR has been finally merged into #GodotEngine!
It only took 16 months. 😆 Since open, I've done lots of polishing and bug fixing.
It's already been running on @w4games' customers' Xbox dev kits during Early Access.
And that's only the beginning...
This redesign is intended for Godot 4.3. It's totally transparent for users (the exposed RenderingDevice API is unchanged; only the internals are enhanced). This is the PR. Still collecting and addressing feedback.
https://github.com/godotengine/godot/pull/83452
By the way, this has been possible thanks to
W4 Games 🍀.
These images show the new incarnations of that code under the new design.
1) The agnostic RenderingDevice part.
2) The specific RenderingDeviceDriverVulkan part. As you can see, it's way easier to add support for new graphics APIs now.
➡️
Untangling the agnostic and the specific from RenderingDeviceVulkan has required surgical accuracy to determine the right boundaries to cut along.
A good example is the logic to process a texture slot in a uniform set. The image shows a portion of the old, monolithic approach. ➡️
can be unique. The API-specific parts can therefore to be isolated into very focused implementations of the new RenderingDeviceDriver class. For instance, RenderingDeviceDriverVulkan is a thin wrapper around Vulkan that the now single, final RenderingDevice class can use. ➡️
19.10.2023 07:55can be unique. The API-specific parts can therefore to be isolated into very focused implementations of the new RenderingDeviceDriver class....In the current design, API-agnostic logic, validation and bookkeeping have to be repeated with minor, if any, adaptations in each RenderingDevice implementation.
All those common concerns make for the Godot approach to a mid-level engine and user facing rendering API, and ➡️
I've been working on a big task to make the #GodotEngine rendering architecture much more flexible in supporting multiple graphics APIs. The main rendering class, formerly fully reimplemented for each API, is now split into one API-agnostic and one API-specific (driver) parts.
🧵
The recording of my talk on parallel node processing in #GodotEngine 4.1+ is up!
It's mostly intended for contributors since it's about the implementation details and how they affect writing the code of certain kinds of nodes.
29.8.2023 17:34The recording of my talk on parallel node processing in #GodotEngine 4.1+ is up!It's mostly intended for contributors since it's...I've written an article on the challenges involving Vulkan-DirectX12 interoperability in #GodotEngine.
Highlights:
- Specialization constants in D3D12!
- SPIR-V to DXIL via Mesa's NIR.
https://godotengine.org/article/d3d12-adventures-in-shaderland/
14.4.2023 17:44I've written an article on the challenges involving Vulkan-DirectX12 interoperability in #GodotEngine.Highlights:- Specialization...