Wayland

Why should I switch to Wayland right now and why it's better than X?

Attached: wayland.png (1024x1024, 55K)

Other urls found in this thread:

youtube.com/watch?v=Zsz7Shbnb9c
drewdevault.com/2019/02/10/Wayland-misconceptions-debunked.html
pavelfatin.com/typing-with-pleasure/
phoronix.com/scan.php?page=news_item&px=Xorg-Server-Entering-2019
phoronix.com/misc/wayland-eoy2018/index.html
openhub.net/p/x
openhub.net/p/wayland
wayland.freedesktop.org/docs/html/apa.html
twitter.com/SFWRedditVideos

it's not

Elaborate

you shouldn't, gnome's compositor's a shit, enlightenment can't run mpv atm

sway runs mpv with Wayland backend just fine btw

This. Does it support DEs better or some shit??

>Cleaner codebase, likely much less buggy
>More secure design
>Eliminates screen tearing.

Relevant
youtube.com/watch?v=Zsz7Shbnb9c
drewdevault.com/2019/02/10/Wayland-misconceptions-debunked.html

Technically speaking, wayland is way better and not a giant bloated mess like xorg. At the moment, sway has by far the best implementation of Wayland so switch to that if you don't mind tiling window managers. KDE's is probably OK by now, but I haven't looked into it much. GNOME is garbage on X and Wayland so avoid like the plague.

I want to use Sway

Then try it. If you hate it, it's not like you can't just switch back.

I'll stick to X until wayland supports browser gpu video decoding

this, there's no point to get your hypes up when the applications you use don't support wayland

Pretty sure this doesn't have anything to do with wayland. I don't use hardware acceleration myself, but I believe it works in mpv with the wayland context. It's up to your browser to implement it. Also, I think hardware acceleration should work in Xwayland anyway.

>browser
>gpu video decoding
nice unix philosophy

Attached: 1560977233288.jpg (800x596, 52K)

23:30
enlightenment !

idk how tf he's getting 60fps
on my radeon it's barely usable

better security, doesn't have a weird giant network underneat. pretty simple to be honest, more minimal that minimal managers since they use Xorg.
The next gnome versions are going to have Xwayland killed when there's no X dependant applications, pretty cool.
Linux has always been great but X was a very weak point

>Hello Wayland, Goodbye X11
Doesn't work with nvidia. if It doesn't support the major graphics card distributor it's shit.
I don't care if you don't like nvidia, it cannot replace X11 without a decent hardware support.

You mean nvidia doesn't support wayland. GNOME devs cucked for nvidia and are doing it for free. Supposedly, nvidia is literally paying KDE and they have a guy trying to add it. Not sure how well either of those two work.

>what is youtube or netflix

"wayland" sound gay as fuck.

cancer? idk, you tell me.

>if It doesn't support the major graphics card distributor
Reverse that. NVIDIA is not properly supporting Wayland, not the other way around.

>youtube
Just use mpv for hardware acceleration

>netflix
Stop being a good goy

You should not.

Wayland is designed by complete morons. The design is inherently flawed. Wayland developers should kill themselves.
Every application has to render to its own framebuffer first which then gets "composed" by the display server afterwards.
This introduces two full frames latency for every Application.
To make matters worse it is impossible to disable vsync and as such it is impossible to improve latency for small screen updates like typing in a terminal.
Fast paced Games are impossible to play on Wayland. You will suck at CS:GO!

How to write a good windowing Display server:
- Give every application direct access to shit pixels on screen via DRM
- Mask the output (e.g. via shaders) to the constrains of the visible part of the Window

>Reverse that
Fair, my point holds still.
Nvidia doesn't support Wailand. It cannot replace X11 without a decent hardware support.

Xorg doesn't do any rendering idiot. It's a big slow middle man that passes a bunch of messages around. Clients have done rendering in linux-land forever. So in fact, Xorg has more latency by design than xorg. I can't speak for other OSes, but I suspect the story is more or less the same there (client side rendering being the vast majority of applications).

>but muh gaymes
You are not a fucking superhuman. You won't notice the 0.000001ms of latency it takes to send a frame to your compositor for it to display on the screen.

>Give every application direct access to shit pixels on screen via DRM
Yeah lets give all applications root access to the kernel. What could go wrong? Fucking idiot.

>Xorg has more latency by design than xorg
more latency than Wayland*

that's a good thing if you hate graphics performance.
fuck, if wine was made to work on wayland steam on linux would be so much faster.
Xorg is probably the major reason why some games run like shit on linux

desu i would miss all nice GUI-based tools that require root permissions (like gparted and such)

> It's a big slow middle man that passes a bunch of messages around.
Another low IQ subhuman who knows nothing about Graphics in X11.
Only the NEGOTIATION is bloated on X11.
As soon as you have your OpenGL context you can blurt out pixels like there is no tommorrow with the lowest possible latency.

Also the supposedly "minimalist" implementation of wlroots has more than 60000 LOC.
60000 LOC TO MOVE A BUNCH OF FUCKING WINDOWS AROUND!
And that with far less features like having no functionality for hotkey deamons or remote access.
Tell me who is really bloated now!

> You won't notice the 0.000001ms of latency
I notice the switch form st to xterm which reduced the latency from 40ms to 3ms.
Wayland will not ever come near those values because of inherently flawed design.

> Yeah lets give all applications root access to the kernel. What could go wrong? Fucking idiot.
The DRM driver interface of the Linux kernel was specifically designed to give multiple processes independent access to Graphics Hardware without the need for root access.
Wayland was started before DRM in the kernel was really finished. They try to resolve the problem in a bad way in user space again.

>can't turn of vsync
fucking gross, so much for not being outdated

>As soon as you have your OpenGL context you can blurt out pixels like there is no tommorrow
unless you're using a compositing WM
>60000 LOC TO MOVE A BUNCH OF FUCKING WINDOWS AROUND!
the X server + related libraries + window manager is even more lines of code
>I notice the switch form st to xterm which reduced the latency from 40ms to 3ms.
please explain how you are measuring this

>As soon as you have your OpenGL context you can blurt out pixels like there is no tommorrow with the lowest possible latency.
How do you think pixels get updated on the screen in Xorg? Magic? You have to constantly request redraws AKA more negotiation.

>Also the supposedly "minimalist" implementation of wlroots has more than 60000 LOC.
60,000 LOC is nothing for a task this massive. It has to handle rendering, multiple displays, input detection, etc. There are tons of projects with way more code than this (including Xorg).

>I notice the switch form st to xterm which reduced the latency from 40ms to 3ms.
Yes that's 37 ms. If you think there is actually inherently 37 ms of input lag because of wayland's design, you are a fucking retard.

You are correct. However giving every application DRM without any sort of negotiation (like a compositor for example) will only result in a ton of race conditions and overall disaster.

>vsync
This is shit only gamers and their placebo-addicted brains care about. It is worth designing a protocol that could render a shit ton of frames at once for benchmarking reasons, but it is not something that people should actually use.

> the X server + related libraries + window manager is even more lines of code
Yeah but they also have much more functionality and features where Wayland is severely lacking.
The fact that X11 is old and works so well makes it even better. It stood the test of time. Which also means less bugs.

>please explain how you are measuring this
If you want to do measurements without special hardware you can find a tool for measurement here:
pavelfatin.com/typing-with-pleasure/
The article also explains why latency is really important not only for Gaming but also for Work.

I build myself an arduino based device that simulates a keyboard press and measures the time difference to a signal of a photo diode.

> How do you think pixels get updated on the screen in Xorg? Magic? You have to constantly request redraws AKA more negotiation.
The "swap buffer" command happens purely in Open GL which means you are directly talking to your Driver/Hardware. No X involved!

> Yes that's 37 ms. If you think there is actually inherently 37 ms of input lag because of wayland's design, you are a fucking retard.
It is very noticeable. Especially when I'm typing. I make much more mistakes with bad latency and working is much more tiring. I need much more breaks from work.
You might not notice it consciously but the numbers and input failure statistics speak for themselves.
read: pavelfatin.com/typing-with-pleasure/

> You are correct. However giving every application DRM without any sort of negotiation (like a compositor for example) will only result in a ton of race conditions and overall disaster.
Not if you mask the screen area applications are allowed to draw to, which is easily possible.

There is literally no reason for almost anyone to go out of their way to use Wayland. If my DE ever even supports it maybe some of its laughable issues will be solved.
t. obvious retard

>X11 works so well
>less bugs
MY FUCKING SIDES

>The "swap buffer" command happens purely in Open GL which means you are directly talking to your Driver/Hardware. No X involved!
This isn't different in wayland. Once the initial shit is setup, swapbuffers works the same way and communicates to the hardware. The difference is that vsync is always on so things will be timed to your display refresh rate.

>It is very noticeable. Especially when I'm typing. I make much more mistakes with bad latency and working is much more tiring. I need much more breaks from work.
I don't believe anyone can tell the difference between 3ms and 4ms of input lag in their terminal. Nonsense.

>Not if you mask the screen area applications are allowed to draw to, which is easily possible.
Sounds like a nightmare. What if I want certain windows over other windows?

>frames being rendered out of sync with my display is totally a good idea!
There's no reason to do this other than benchmarking. Gamers have deluded themselves into thinking that -0.0001ms input lag will make them better at CS but they should just get a better monitor instead.

I'm impressed. There's like at least 3 threads and 20+ posts spreading Wayland FUD every single day.
This means that like systemd it's going to be default everywhere.
Any doubts I had about Wayland are gone, I'm installing it right now. Wayland truly is the future!

>wayland
>carefully designed, has backwards compatibility (xwayland), solves real problems, and totally 100% optional

>system
>giant mess, made up problems to solve them and created new ones, and forcibly shoved down everyone's throat
Why do people equate the two? They are nothing alike.

the only equation is that if g is spreading fud about it its probably something that is actually good and have a lot of backing
hence it will be default like systemd
i remember the daily DEBIAN WILL NEVER ADOPT SYSTEMD

> This isn't different in wayland.
It is very different. In Wayland the local buffer of you application will be updated. Then ages later, when Wayland somehow feels like it, this buffer will be composed to the output buffer where it first waits for the vsync. Then finally a second buffer swap puts the pixels on screen.
A truly idiotic design made by total morons.

> I don't believe anyone can tell the difference between 3ms and 4ms of input lag in their terminal. Nonsense.
We are talking about up to 160ms + vsync on a 60Hz display. Which is VERY noticable.

> Sounds like a nightmare. What if I want certain windows over other windows?
Somebody doesn't know the concept of hardware masking layers which is part of every 2D accelerated Card since the late 90s.

Give the users a choice. Many people prefer to disable composing and vsync for very good reasons. With Wayland you don't have that choice.

X is absolute, unadulterated, pure fucking garbage, and I wholeheartedly welcome the advent of Wayland, or literally any other display server/protocol that comes along and takes X to the fucking gallows once and for all.

The model as a whole is extremely outdated, visibly inefficient, insecure, and it such a fucking mess of spaghetti code and extensions and life support that only a few people on the planet still understand how to actually maintain it. Their opinion on X? "Kill it with fire, please."

For a group of people that love to lambaste Windows users for having "babyduck syndrome", I've never seen more babyducks when it comes to the retards peddling the "x-xorg just werks" shit and spreading dumbfuck FUD about Wayland. (Of course, in all fairness, it doesn't help when all the distros out there wanted to be the first kids on the block to use Wayland and started pushing it out before it was 100% ready, leading to the average retarded joe to swear off of it.)

Similarly, for a group of people that jerk themselves off over software minimalism, there sure are a lot of people that love to suck the bloated dick of X. The same people who cry "Systemd does way too much for an init system!" seem to have no problem with all of the shit a display server shouldn't be doing, and they're too fucking retarded to understand that the Wayland protocol will eventually/has already gotten standardized extensions/addons for the sorts of shit they're bitching about (for instance, screensharing is now implemented under Pipewire, which on a side note, will kill another cancer, PA, eventually)

Simply put, and in simple user terms--X is responsible for a lot of the jankiness of the Linux desktop (as you'd expect of a display server that's been kept on life support for 30 years), and when Wayland is eventually adopted, it'll go a LONG way towards bringing Linux to the fucking 21st century.

>what is youtube-dl and mpv

i don't get all the arguing about xorg vs wayland. If you like wayland than use it. It's a complete waste of time for me to try and use since it is missing capabilities which are a central part of my work (i.e. gpu accelerated virtual machines, arbitrary multihead monitor configurations, and network transparency, at least, i'm sure there are others not off the top of my head) I like the whole concept of ditching Xorg, but it's kind of a joke when most applications still run in Xorg on wayland, so all you do is increase overhead and complexity. Wayland was supposed to be a protocol with enough software to be a drop-in replacement, years ago, and it's still not even to the point that it can replace Xorg at all for anything but a very simple system. I would seriously love to use wayland, but I cannot get work done on wayland yet, so the whole thing is moot. It's *almost* good enough I can use it on my laptop, and I will once I can, but for my desktop work computer I expect it to be >5 years until wayland is usable. Wayland people might as well start suggesting we all use PipeWire too. On that note, here's another way to look at it, Wayland in 2019 is what Pulseaudio was for audio in 2005, or what wireless cards were on linux back in 2003. "It works!" say the tiny minority that have one of the only systems it actually works on.

can mpv not play straight from youtube like vlc can? i'd expect them to have such a simple feature.

You can't on windows either and no one complains. Grow up. If you want to disable vsync play in full screen.

i could be wrong because I don't play video games but doesn't wayland require a compositor to run? on windows and linux/xorg fullscreen windows can bypass compositing. even rudimentary Xorg compositors like xcompmgr can disable compositing when fullscreen windows are in focus, but it seems like that'd be harder if compositing is an essential part of the display stack. Either way, not being able to disable vsync sounds like a compositor bug, not a wayland bug. If it is a wayland bug, then wayland truly is fucked.

> X is absolute, unadulterated, pure fucking garbage.
Just because GTK and QT are completely moronic libraries that don't know how to use X11 properly (like introducing loads of unnecessary round trips for no reason) doesn't mean X is bad.
Real X has never been tried!

Have you ever written a pure X11 app (preferably with XCB). It is a very clean protocol which has a clean C API that can be easily extended. That is why it is so successful.
It is an absolute joy to write for. And suckless tools show that you can write simple X11 code that is easily understandable for everyone.

"Toolkits" make X look bad. The problem will prevail with Wayland.

There is nothing in the protocol that forces vsync, but compositing is pretty much built in.

An XCB compatible library could be easily be made for a wayland backend without requiring an X server. Claiming that you need an X server and all its legacy bloat just for a drawing API is FUD.

It's worse than X, barely compatible with anything, and it's not a real standard. It's proprietary like Google's media codecs where "the code is the standard."

Attached: Screenshot_20190509_122044.png (1920x1080, 645K)

Look at them milkers, damn.

>first waits for the vsync
When it comes to opengl rendering after all of the initial shit (finding the display and yadda yadda), this is the only actual difference. Right now there's not a way to bypass the vsync wait (because not a real use case for this in 99.9% of applications). Someone would just need to make a protocol/option that would skip this step for certain applications. Submit a patch for it.

>160ms of input lag on your display
Fucking horrific. Instead of doing bad vsync hacks that cause your display to have a bunch of frames out of sync, just get a better monitor.

>hardware masking layers
Explain to me how I don't get a race condition with multiple applications running in parallel and trying to update pixels in the same location at the same time. AFAIK, nothing in DRM can account for that.

>Many people prefer to disable composing and vsync
No not many. It's a very very niche feature. Go submit a patch for the vsync thing.

>Have you ever written a pure X11 app (preferably with XCB)
Yeah XCB is a nice API that hides all of the nastiness and disgustingness of Xorg away from the developer. It doesn't mean it's a real solution.

why re-invent the wheel when youtube-dl does it perfectly? they have a youtube-dl hook only

Last part meant for

is there text in that image?

Attached: 1561112239318.jpg (640x513, 41K)

X is smaller than Weyland though, don't claim there's legacy "bloat" when the solution is to move to a much MUCH more bloated, unfinished system.

>X is smaller than Weyland though,
Where are you getting this information? Seriously who told you this?

>X is smaller than Weyland
No it fucking isn't.

Who told you Wayland is smaller? Where are you getting this?

Yes it is, X is much much smaller even while doing much more than Wayland.

"pure" x11 isn't done because the x11 api was never updated to support modern graphics, the only realistic option is to use something like gtk or qt unless you want to go back to aliased fonts and no layering or compositing. It's also why xorg windows can't be inspected and automated like windows on windows or osx, because the whole thing basically gets displayed as an interactive bitmap instead of having "native" elements.

perfectly means downloading the whole video before watching? did youtube-dl add a streaming feature? (i haven't used it in a number of years, when I tried it mpv didn't exist and youtube-dl was just a short python script.)
I'm not gonna wait to download a whole 2 hour video i only want to watch once

You have brain damage. Pic related is Xorg's lines of code (close to 800,000). Wayland has 45373 lines of code.

Sources:
phoronix.com/scan.php?page=news_item&px=Xorg-Server-Entering-2019
phoronix.com/misc/wayland-eoy2018/index.html

Attached: lines_of_code.png (640x240, 3K)

I've done my own counts but I'm not going to post them because you'll accuse me of making things up, so instead I'll link you to a neutral party

openhub.net/p/x
openhub.net/p/wayland

>X.org: 2,823,313 lines of code
>Wayland: 288,374 lines of code

Yep, I forgot, 10 times larger actually means smaller.

> Who told you Wayland is smaller? Where are you getting this?
> legacy bloat
I hear this all the time.
There are Xserver implementations that fit on a fucking floppy disk.

> Explain to me how I don't get a race condition with multiple applications running in parallel and trying to update pixels in the same location at the same time. AFAIK, nothing in DRM can account for that.

You still don't understand the concept of masking.
Even Windows95 was capable tho hide the output of my TV-card window behind a window.
Even when you don't have masking: The last applcation who writes the pixel right before the scanline passes wins.
No race condition present.

> unless you want to go back to aliased fonts
The Xft extension is pure X with superb font rendering. No QT/Gtk needed.

X.org includes drivers for countless display adapters, Wayland has very little support. You're not actually using all those LoC's in X11, unless you need to.

Wayland is like systemd, something being pushed to embrace and extend with the end goal of extinguishing.

No, I'll be sticking with X. Most people will be.

it can stream
>youtube-dl was just a short python script.
pic related

Attached: scrollbar.png (2294x1891, 198K)

>I hear this all the time.
>There are Xserver implementations that fit on a fucking floppy disk.
You're dealing with shills who will lie as part of their job. It's the same crew doing the systemd shilling. You can tell by their argumentative style.

Agreed

Attached: 7195C9EC-4E93-4431-89EF-F7F404E54A85.gif (480x360, 162K)

Why would Xorg make games run worse? It doesn't render opengl or whatever the game you're running is using. The only thing that could possibly slow it down would be your compositor.

>There are Xserver implementations that fit on a fucking floppy disk.
yes and there are also tiny wayland compositors that fit in a few kb, what's your point?
>Even Windows95 was capable tho hide the output of my TV-card window behind a window.
windows 95 also ran the entire operating system and all programs in a single thread, what's your point?
>The Xft extension is pure X with superb font rendering.
which breaks horribly in networked conditions anyway and has no use when applications need to do something specific with fonts

a display server is not the appropriate place to have video drivers, bloat is bloat

if i was actually being paid to talk about how Xorg is shit then i wouldn't be doing it here

> which breaks horribly in networked conditions anyway
No Xft stores glyphs on the server in caches.
You are talking about Gtk and Qt which transmit every glyph as bitmap every time when they are rendered.

Sorry kid, your Wayland shilling is quite obvious and you actually are getting paid for it. We can tell.

Isn't X going to be unmaintained soon? If that's the case you wouldn't have to like wayland, it'd be your only choice.

Did you anons know that RedHat and IBM employees are required to make ten forum or blog posts per day "supporting" their company?

Nope, it will be maintained into the far future. Perhaps the RedHat trannies will withdraw their support but they don't really commit to the project anyway.

I was just shitposting, there's no latency problem but Xorg is bigger
>per day
I'm sure from time to time they make one for fedoramagazine or the red hat whaterver page but that's too much

Your English is becoming garbled, Pajeet, which is embarrassing for you as English is India's official language.

they transmit them as bitmaps because that is the only way for the application to actually have control over font rendering
harfbuzz and pango is another 500k LOC, do you really want that in your display server?

accusing me of shilling (for a display protocol which is free as in freedom and free as in beer) won't cure your babyduck syndrome

>not wanting to replace a perfectly working system with untested non-formalized non-specified semi-proprietary garbage is "baby duck syndrome"
You have Jewish Shill Syndrome.

It's much faster since it's actually optimized for monitors (Rendering via DirectX/Vulkan to some image buffer periodically), unlike X11, which was designed for remote terminals to use its own drawing commands for lines etc. which was a pretty shitty implementation of that idea when it was invented and is way slower than VNC/RDP even today.
It's also much safer since it doesn't allow every single application to log all your keystrokes.

I clearly noticed my scrolling speed as well as the tab change animation speed going to 60 FPS with Wayland, while it's clearly less on X11.
X11 is shit held together with duct tape. Now that server side window decorations are finally a thing, you are out of excuses.

>perfectly working system
windows 95 worked fine too, switch back to that if you don't like new things
>non-formalized
x11 isn't technically formalized either
>non-specified
wayland.freedesktop.org/docs/html/apa.html
>semi-proprietary
???

>exactly one minute apart
you're not fooling anyone Xorg shill, you're going to be deprecated
>oh shit I have no arguments
>! I know
>hurr durr brsdshsa xD english u know it

>It's much faster since it's actually optimized for monitors
No its not. It introduces a two frame compositing latency.

> unlike X11, which was designed for remote terminals to use its own drawing commands for lines etc. which was a pretty shitty implementation of that idea when it was invented and is way slower than VNC/RDP even today.
The drawing primitives actually work really fast remotely. And the xrender extension allows really complex operations like gradients.
Just because GTK and QT have many unnecessary round trips and trans mit a full bitmap every time doesn't mean you can't use X11 in a sane way.

> It's also much safer since it doesn't allow every single application to log all your keystrokes.
It is a form of fake safety because nobody runs untrusted apps in neither Wayland or X11.
However important features like Hotkey-deamons are no outright impossible.

> X11 is shit held together with duct tape.
No it is a protocol that is stable for years. It has maybe one or two extensions that are redundant but nobody forces you to use them.

>all these fallacies
Your shill strategy is going to cause a similar movement against Wayland that we've seen launched against systemd. People don't want either one, and the more you try to ram them up everybody's ass the more people will simply check out of the Linux ecosystem and find one of the many decent alternatives.

DAS RIGH dat y debian arch n b0dy else will ev use systemd
haha btfoteredd!!!

People are abandoning systemd distros in droves num-nuts. OpenBSD's seen their average downloads per month triple in a year.

>two frame compositing latency
the latency in x11 is even worse when you use a compositing WM
>hotkey daemons
any compositor could very easily be patched to support this
>The drawing primitives actually work really fast remotely. And the xrender extension allows really complex operations like gradients. Just because GTK and QT have many unnecessary round trips and trans mit a full bitmap every time doesn't mean you can't use X11 in a sane way.
xrender is nowhere near comprehensive. the reason why people don't want to use X11 is because the only way to use it in the way you're describing without copying bitmaps back and forth is to continually add extensions for every feature under the sun, which nobody wants to do

and you think i care why? go make your own display protocol, i would be happy if you did that, my only point is that x11 is garbage

dayum they must have 1% of linuxs 1% desktop market share by now

>launched against systemd
a bunch of reddit and Jow Forums kids thinking they are hot shit for using openrc?
lmao

>go make your own display protocol
Heh, this is the same EXACT line which systemd shills use. You shills just pretend like the new garbage bloat being pushed by megacorporations is the only thing that exists.

THERE IS ALREADY A DISPLAY PROTOCOL WHICH WORKS GREAT AND IS THE DEFAULT. I will continue to use X like all reasonable people.

Why would I use Wayland or systemd when the people pushing it resort to bald faced lies and other dishonest tactics to try to force their rapist software on my computer's pussy? The kind of shilling you're paid to engage in by RedHat and IBM is actually apt to drive people away. You're not convincing, you're just a liar.

The reddit and Jow Forums kids are the people who generate the mindshare that software companies need to survive.

I couldn't give less a shit if all software companies die.. What's your point?
We're talking about technical aspects of wayland and you come with your communist bullshit.
How notorious you're a jobless neet who lives feeding off memes on reddit and Jow Forums

WE are the SPARK that will LIGHT the FIRE

if you'll read the rest of the posts in this thread that aren't violently defending baby duck syndrome, you'll see how it was that explained x11 doesn't "work great", and i would argue it isn't reasonable to continue using it if you don't make extensive use of its remote capabilities
>Why would I use systemd
i don't know, i personally run devuan on my work machines and and alpine on my servers

I wonder if OpenSUSE will continue xorg meme