I prayed for programmable blending via "blending shaders" (and FWIW programmable texture decoding via "texture shaders" - useful for custom texture format/compression, texture synthesis, etc) since i first learned about pixel shaders waay back in early 2000s.
Somehow GPUs got raytracing before programmable blending when the former felt like some summer night dream and the latter just about replacing yet another fixed function block with a programmable one :-P
The mobile PowerVR GPUs had programmable blending last time I've touched those, in fact, it's the only kind of blending they had. Changing blend states on PS Vita was ~1ms, not pretty.
I mean most of that could be emulated in vulkan or dx12, I'm not sure about other apis. I'm curious what the use case would be though. I'm also fairly certain it can be done to a degree, but without a convincing use case it's hard to justify the implementation work.
My favorite part of the GS was the sheer insanity of the bus, 2560 bits wide in total with a clever split on the cache. The PS3 felt like a step down in some ways, blending especially.
Basically, not at all. Dolphin's ubershader does one thing; simulate fixed-function blending/texturing using modern flexible hardware. (It was already an old technique when Dolphin adopted it, by the way.) This project is a complete renderer, with the rasterizer and all, and as you can see from the text, it includes an ubershader for the blending. The shader doesn't draw triangles, it just gets called for each point in the triangle and with some inputs and gets to decide what color it is.
It's vaguely like comparing a full CPU emulator with something that implements the ADD and MUL instructions.
> A dynamic recompiler is a type of software that translates code from one instruction set architecture (ISA) to another at runtime, rather than ahead of time. This process allows programs written for one platform to be executed on another platform without needing to modify the original code. Dynamic recompilation is often used in emulators, virtual machines, and just-in-time (JIT) compilation systems.
Is this what Dolphin does most of the time, or is all handcrafted at the assembly level?
[+] [-] nightowl_games|1 year ago|reply
[+] [-] wk_end|1 year ago|reply
[+] [-] badsectoracula|1 year ago|reply
I prayed for programmable blending via "blending shaders" (and FWIW programmable texture decoding via "texture shaders" - useful for custom texture format/compression, texture synthesis, etc) since i first learned about pixel shaders waay back in early 2000s.
Somehow GPUs got raytracing before programmable blending when the former felt like some summer night dream and the latter just about replacing yet another fixed function block with a programmable one :-P
(still waiting for texture shaders though)
[+] [-] dagmx|1 year ago|reply
https://medium.com/pocket-gems/programmable-blending-on-ios-...
https://developer.apple.com/videos/play/tech-talks/605
[+] [-] pandaman|1 year ago|reply
[+] [-] mandarax8|1 year ago|reply
This is a great example of using it: https://vulkan.org/user/pages/09.events/vulkanised-2024/vulk...
[+] [-] pjmlp|1 year ago|reply
OTOY does all their rendering with compute nowadays.
[+] [-] Cieric|1 year ago|reply
[+] [-] xgkickt|1 year ago|reply
[+] [-] bonzini|1 year ago|reply
[+] [-] Sesse__|1 year ago|reply
It's vaguely like comparing a full CPU emulator with something that implements the ADD and MUL instructions.
[+] [-] MaxBarraclough|1 year ago|reply
[+] [-] sibane|1 year ago|reply
[+] [-] ammar-DLL|1 year ago|reply
[deleted]
[+] [-] tetris11|1 year ago|reply
> A dynamic recompiler is a type of software that translates code from one instruction set architecture (ISA) to another at runtime, rather than ahead of time. This process allows programs written for one platform to be executed on another platform without needing to modify the original code. Dynamic recompilation is often used in emulators, virtual machines, and just-in-time (JIT) compilation systems.
Is this what Dolphin does most of the time, or is all handcrafted at the assembly level?