Page 1 of 1

OSD transparency

Posted: Sat Apr 03, 2021 10:17 am
by bazza_12
probably a daft question, but I do love the different wallpapers.. and was wondering if it was possible to add transparency to the OSD so you could see through the menu.. or is this already available and i've missed it? maybe a transparency scale 1-3
EwjkTRyUcAAB8rw.jpg
EwjkTRyUcAAB8rw.jpg (988.99 KiB) Viewed 3576 times

Re: OSD transparency

Posted: Sat Apr 03, 2021 1:47 pm
by dshadoff
Transparency in modern PCs is a GPU function; there is no GPU on MiSTer.
This function does not exist.

I'm sure somebody in here is going to come back and say how they believe it theoretically could be achieved through large effort... consider that adding little features like this would consume resources, which could compete with the actual cores for FPGA space. There are so many more cores to port, and we don't want to prevent any from being able to fit the FPGA because of resources were allocated to a minor aspect of something viewed for seconds per game (OSD).

In 10 years or so, there will likely be a much more powerful FPGA which won't have to worry about that. The cores are being prepared so that they (hopefully) won't be too difficult to port to that environment. (I should say that such FPGAs are available today, but few people would spend that kind of money...)

Re: OSD transparency

Posted: Sat Apr 03, 2021 3:00 pm
by bazza_12
nice one.. cheers for replying. :) I thought there must be a reason, cos I'm sure I'm not the first to have considered it.

Re: OSD transparency

Posted: Sat Apr 03, 2021 4:09 pm
by RascalUK
dshadoff wrote: Sat Apr 03, 2021 1:47 pm Transparency in modern PCs is a GPU function; there is no GPU on MiSTer.
This function does not exist.
Don't Jotego's arcade cores have transparency on the OSD?

Re: OSD transparency

Posted: Sat Apr 03, 2021 4:50 pm
by Bas
Rendering an alpha channel on a bitmap is not by definition a GPU function.

Re: OSD transparency

Posted: Sat Apr 03, 2021 5:01 pm
by IAmDotorg
dshadoff wrote: Sat Apr 03, 2021 1:47 pm Transparency in modern PCs is a GPU function; there is no GPU on MiSTer.
Both of those statements are incorrect. Transparency has absolutely nothing to do with an accelerated GPU, and the logic in the FPGA to do it is almost identical to the logic to overlay without an alpha channel. On top of that, if you're getting graphic output from a core, it has a GPU unless its a very, very old core that is outputting NTSC or PAL signals directly. And on MiSTer, those have to be reworked, anyway. On top of that, the ARM CPU has Neon instructions, so the ARM side does, in fact, have an accelerated GPU.

Re: OSD transparency

Posted: Sat Apr 03, 2021 5:20 pm
by dshadoff
dshadoff wrote: Sat Apr 03, 2021 1:47 pm I'm sure somebody in here is going to come back and say how they believe it theoretically could be achieved...
See ? I told you people would have a lot of comments.
But such smart people should be able to come up with a solution in code, rather than a theoretical description of how they think somebody else should implement.

As I mentioned, those somebody else developers prefer to spend their efforts on porting/improving cores rather than such frills. By all means though, go ahead and submit a pull request.

Oh, and I didn't say that alpha blend can only be done by a GPU - just that it is always done that way on modern computer because GPUs trivialize it. That it would take effort to implement on this device, and consume FPGA resources once implemented.

Re: OSD transparency

Posted: Sat Apr 03, 2021 5:29 pm
by RascalUK
Jotego's arcade menus have transparency, just checked it with my own eyes and he is the definition of a dev that spends time improving his cores.

The rest is totally unnecessary snarkiness.

A growing trend of late on here :(

Re: OSD transparency

Posted: Sat Apr 03, 2021 5:32 pm
by aberu
IAmDotorg wrote: Sat Apr 03, 2021 5:01 pm
dshadoff wrote: Sat Apr 03, 2021 1:47 pm Transparency in modern PCs is a GPU function; there is no GPU on MiSTer.
Both of those statements are incorrect. Transparency has absolutely nothing to do with an accelerated GPU, and the logic in the FPGA to do it is almost identical to the logic to overlay without an alpha channel. On top of that, if you're getting graphic output from a core, it has a GPU unless its a very, very old core that is outputting NTSC or PAL signals directly. And on MiSTer, those have to be reworked, anyway. On top of that, the ARM CPU has Neon instructions, so the ARM side does, in fact, have an accelerated GPU.
I'd like to keep updated on your future pull request when you get this done. Would be cool to see it.
dshadoff wrote: Sat Apr 03, 2021 1:47 pm Transparency in modern PCs is a GPU function; there is no GPU on MiSTer.
This function does not exist.
This on it's own is an inaccurate statement. Jotego already does this. See picture from my TV using the CPS1 core. What people call transparency isn't limited to this description. And what resources are being consumed for this alpha channel behavior in his menu that you are concerned about specifically?
PXL_20210403_173437098.png
PXL_20210403_173437098.png (2.69 MiB) Viewed 3384 times
BTW, I 100% agree with the gripe that people should do it themselves rather than just constantly talk about what is possible without any concern for how hard it may be for somebody else.

Re: OSD transparency

Posted: Sun Apr 04, 2021 4:11 pm
by yxkalle
Doesn't all cores have this already? Would be nice to be able to turn it off, though.

Re: OSD transparency

Posted: Sun Apr 04, 2021 8:16 pm
by BigMac2
yxkalle wrote: Sun Apr 04, 2021 4:11 pm Doesn't all cores have this already? Would be nice to be able to turn it off, though.
The OSD is already semitransparent, I think the question was more about personalization.
IMG_4210.jpg
IMG_4210.jpg (3.98 MiB) Viewed 3268 times