Check your posts (notes, articles, etc.) are marked up with h-entry:

Success!

We found the following post h-entry on your site:

Name

vramgaze.pl: visualize and explore your AMD GPU's VRAM

Author

Add a photo!

<img class="u-photo" src="…" />

superkuh

Content

http://erewhon.superkuh.com/vramgaze-gtk3.jpg Download: vramgaze-gtk3.pl, vramgaze.pl (gtk2). Deps for Debian: sudo apt install libglib-perl libgtk3-perl libcairo-perl libpango-perl pdl alsa-utils binutils testdisk I was having an issue with mouse cursor icon getting corrupted but only on the 2nd monitor in a dual monitor system. I wanted to look at the VRAM representation of the icon. It turns out looking at GPU RAM is a lot harder than system RAM. And basically only modern amdgpu based systems allow it and that through /sys/kernel/debug/dri/*/amdgpu_vram. The region meta-data is from amdgpu_vram_mm in the same debugfs directory. It seems like doing this kind of thing is flat out impossible on nvidia. Any attempt at direct PCIe access or using BAR windows (which are static in position and small) I could not get to work. If anyone out there knows how to read raw vram from nvidia cards I'd love to hear about it. Lucky for me my system was using an AMD RX 580 8GB on amdgpu. After a day or two of vibe coding, manual fixing, and passing back and forth between claude, gemini, and kimi-k2.5 and feeding in memgaze.pl examples I ended up with a fairly usable gtk2 vramgaze.pl. I did everything in gtk2 first because that's where I'm comfortable but because this seemed like something others might use I did port to Gtk3 too. They're pretty much the same but Gtk3 required some bending over backwards for cairo use. I didn't actually find it useful for the cursor problem but it's a lot of fun watching VRAM get allocated and get fragmented under pressure and the like. The actual data in VRAM, which I expected to be full of bit maps (like framebuffers) and the like instead is all... encoded. I haven't seen a single bit of bitmap looking thing at all. It still makes for fun electronic music when interpreted as 8 bit unsigned wav audio. http://erewhon.superkuh.com/little-bit-allocated-in-the-middle-of-free-space-block-now.jpg *edit, later*: I actually did find where firefox was storing it's images in the GPU VRAM. Here you can see youtube thumbnails. http://erewhon.superkuh.com/bitmaps-in-amd-gpu-vram-put-there-by-firefox-properly-decoded2.jpg

Published

URL

Add a URL! <a class="u-url" href="…">…</a>

Syndicated Copies

Add URLs of POSSEd copies!

<a rel="syndication" class="u-syndication" href="…">…</a>

Categories

Add some categories! <a class="p-category" href="…">…</a>

Your h-entries should have, at minimum, the following properties:

  • e-content — the main content of the post
  • p-name — if your post is an article with a name, use this classname.
  • dt-published — the datetime the post was published at, in ISO8601 format, with a timezone
  • u-url — the canonical URL of the post, especially important on pages listing multiple posts

It’s a common convention for the published datetime to be a link to the post itself, but they can be separate if you want.

There should also be some way to discover the author of the post — either link to your homepage (which should have your h-card on it) from anywhere within the body of the page with rel=author, or optionally embed a p-author h-card in the h-entry.

The web is an expressive medium, and as such there are many other properties which you can add to your posts. Check out the h-entry documentation for a full list.

Want to be able to use h-entry data in your code? Check out the open-source implementations.

Previous Step | Home | Next Step