Unsticking The Very Sticky
Day 4 of Wayland governance hacking
I wake at 5 AM. This is the perfect time to wake up in NYC TZ, as it affords me the ability to eat a whole apple in the time it takes my little internet-browsing chromebook to load all the IRC and Discord backlogs from the five hours that I snuck away for a nap when nobody was watching.
Gettin Nacky
Rejection
It’s hard. Nobody likes that feeling, especially after putting in a bunch of work, double-especially when that work is on a Wayland protocol.
Device Generated Commands
Big.
My Wayland Your Wayland Our Wayland
I <3 Open Source
That should be obvious by now, right? I’ve been out here blogging about Open Source stuff for over a decade, and occasionally I still have time to actually write code.
Mesa Vr
The New Reality
Architechair
What Am I Even Doing
Juicy
REVIEWERS ARE ASLEEP POST DUMP TRUCKS
Aftermath
After Action Report
Long Road To DRIL
I’m Cookin
Closing The Loop
You Would Not Believe This Month
Startup
It Happened Again.
Quick Post
Super Fast
Descending
Into The Spiral of Madness
Post Interfaces
March.
Woof
It Turns Out
First Bug Down
Slow Start
Manifesto
This Is It.
2024
🪑?
Readback
And Now For Something Slightly More Technical
Crabformance
More Milestones
Preemptive
Your Bug Has Already Been Solved
Hibernation
Almost That Time Again
All The Updates
EBUSY
Tis The Season
Remember Way Back When…
Happy Birthday
But Not Mine
King Of Mashing
Overdue
WSI Was A Mistake
if you disagree you’re wrong
Server Down
gitlab is down, post low-effort blogs and touch grass until it returns
What Am I Doing With My Life
Read MoreYep
It Me, Maintenance5
Dumber
It’s Not Maintenance5
Mayor Of Compilertown
New Topic
Another Landmark
Progress
Unsung
Long Time No See
Imagine
Uh-oh
Piping
Features
Presenting
When perf Is Too Slow
Conditional Speed
Intro
Gotta Go Fast
Don’t @ Me
Benchmarks
I read the article
Blogs
It’s That Time Again
Friday Updates
Team Updates
A number of members of my team at Valve don’t blog, and I like to bring visibility to their work when I can. Here’s a quick roundup of what some of them have been doing, in no particular order.
Debugging Primer
Release Pending
New Era
Lavapipe: Dragged Into The Future
Addendum
Please File Responsibly
Thinko
Shader Objects
Embarrassments
This Week
They Say
A Picture Is Worth A Thousand Words
Adventures In Linking
First
Branched
New Quarter, New Branch
Weekend
Another Week
The Last Bug
Release Work
Developers Developers Developers
A New Frontier
Oom
Memory
Overdue
I Meant To Write This Some Time Ago But Then I Didn’t
A Detailed Retrospective On The Past Couple Weeks Of My Life
Read MoreMonumental
[AIRPLANE NOISES]
Buffered
Convenience
Capped
I Hate Pipe Caps
Separable
Another Milestone
Fastlink
Fast-linking: This Is Your Howto
Through The Loop
A New Level Of Speed
Get Dumber
Have You Ever…
Right Out The Gate
Droppin’ Em
Its Over
Yes
Closure
Another Year Passes
New Era
Recap
Conference Corrections
It Must Be Said
Start Your Hype Engines
It’s Happening.
Preparation
Shoutouts
Meatballs
Before We Begin
Spaghetti Recipes
Homemade Spaghetti
SP33D2
Need Another Hit
Continuous
Integration
Sp33d
SP33D
New News
New Month, New Post
Sad Trumpet Noises
The Future Comes
All Text No Fun
Again.
The Doctor Is In
Addressing Concerns
Bugaroos
Innocuous
Returning
I Remembered
Depth
Again
Ugh
Well
Do Not
Let Your Memes Be Dreams
Branch
Another Quarter Down
Big Marge
Just In Time
Release The Kraken
Ecosystem Victory
Sprint
March Forward
Cubism
At Last
Memes
They Say An Image Macro Conveys An Entire Day Of Shouting At The Computer
What
Blogging: That Thing I Forgot About
Here We Go
22.0
Wew
Checking In
Zink 4ever
It’s Happening (For Real)
Announcing Kopper
Suspicion
Leaks
We Need To Talk
How To Bug
This Is A Serious Blog
Choo Choo
Chug-a-chug-a-chug-a-chug-a-chug-a
New Year New Me
We Back
The Finale
Last Post Of The Year
NV Envy
What If Zink Was Actually The Fastest GL Driver?
Pipe Magic
Copper: It’s A Thing (Sort of)
The Future Is Nowish
A Long Time Coming
Real Benchmarking
Everyone Knows…
Inline 2.0
UberCTS
November
What’s Even Happening
The End Of Zink
…For 2021
A Brief Respite
I’m Bad At Blogging
Underwater
ES: But Why
I got a request recently to fix up the WebGL Aquarium demo. I’ve had this bookmarked for a while since it’s one of the only test cases for GL_EXT_multisampled_render_to_texture I’m aware of, at least when running Chrome in EGL mode.
Zink Is Over
Zink Is Over: This Time I’m Serious.
Im Done
Zink Is Over
Zero To Hero
The Struggle Continues
Submerged
We Back
Timelines
Deeper Into Software
The Update
This is a title
At Last
It Happened.
Gratitude
The Unsung Heroes
Different Again
BREAKING: THIS IS NO LONGER A ZINK BLOG
Finally
We Did It
To The Nines
Fast Friday
Suballocate Me
I Said I Would
I'm Gonna Pretend I Didn't See That
Memes
Memba When
Remember When…
Sidejacked
I Hate Construction.
Breaking
Stop The Optimizing
Template Me
Using Power For Evil
Hhhhhhhhhhhhhh
Click Play
Backish
wew
Farewell Old Friend
Read MoreBetween Loads
TFW Long Game Loads
Sparse
Buffering
You Want It I Got It
Woosh
Not A Prank
I’m Trying
A Reminder
Do As I Say, Not As Zink Does
Today, a brief post and lamentation.
Description
Yeah, Again
Layin That Pipe
Enhance Your Pipe!
A More Accurate Update
Where We At
Getting Back In
Superposition
What Happened To Blogging?
A New Post
Delete The Code
A Losing Battle
Notes
Quickly: ES 3.2
Roadmapping
What’s Next
Two With One Blow
By Now
New Order
Read MoreMilestone
If you’re on Intel…
Nv
All In A Day’s Work
I posted yesterday in brief about zink on nvidia blob, But what actually was necessary to get this working?
Mo Cards Mo Problems
What Is Even Happening Anymore
Thanks once again to my generous sponsors at Valve, as well as a patch from a GLX guru with the very accurate commit log “I hate everything.”, I put in a little time today and came up with this:
Samplin
Overhead Migration
Itshappening.gif
Return of the Blog
Overhead
A Quintessential Metric
Hold Em
A Different Strategy
Why Do I Do These Things
Some People Will Appreciate This
New Year New Corrections
It Happens
Inlining Problems Away
A Different Sort Of Optimization
poll()ing For WSI
A New Sync
Rebase Me Out Of Here
ETOOMUCHREBASE
Differently Cached
memcpy harder
Alpha First
The Name Of The Game
Pointers
To Begin
This is the journey of how zink-wip went from 0 fps in RPCS3 to a bit more than that. Quite a bit more, in fact, if you’re using RADV.
Emulation
In Many Forms
New Strategy
New Week, New Idea
Count Harder
Counting
I keep saying this, but I feel like I’m progressively getting further away from the original goal of this blog, which was to talk about actual code that I’m writing and not just create great graphics memes. So today it’s once again a return to the roots and the code that I had intended to talk about yesterday.
Subtle Movements
Alright, But Now I’m Really Back
Starting Over
New Game+
Don't Call It A Comeback
I’ve Been Here For…
Roundup 20201122
Another Brief Review
Roundup 20201115
A Brief Review
Last Day
This Is The End
Architecture
It’s Time.
Bringing The Heat
New Hotness
Invalidation
Buffering
Catching Up
Never Seen Before
Blended
Brain Hurty
An Update
Busy, Busy, Busy
Performance Can Only Increase
Jumping Right In
Back To Being Interesting
Moar Descriptors
Cache Harder
Descriptors Once More
Back To Caching
I Skipped Bucket Day
Back To Basics
Healthier Blogging
Automate
A Showcase
Perhaps You Thought I Was Finished
But No, I’m Not
Engage Thrusters
Performance 2.0
Accelerate
Finally, Performance
Will It Blend
Adventures In Blending
Dynamism
Viewporting
Long Week
Blog Returns
Draw Parameters
Hoo Boy
Query Stats
Long, Long Day
Funday
Just For Fun
More Map Gains
The Optimizations Continue
Optimizing transfer_map is one of the first issues I created, and it’s definitely one of the most important, at least as it pertains to unit tests. So many unit tests perform reads on buffers that it’s crucial to ensure no unnecessary flushing or stalling is happening here.
Buffer Ranging
A Quick Optimization
Test Xzibiting
Benchmarking vs Testing
Geometry Overview
At Last, Geometry Shaders
Zink Gains Part One
A Different Friday
Borders
Extensions Extensions Extensions
Clear Out
glClear
Tessellation
The Tessellating Commences
Victory Lap
After Some Time
Xfb And Barriers
Yet Another XFB Post
Xfb Redux
XFB: The Re-Return of the Sequel I Didn’t Want
Formatting
enum pipe_format
One thing that’s everywhere in mesa (at least outside of mesa core) is enum pipe_format
. This enum is used to describe image formats. The general way that it works is that there’s a hook in struct pipe_screen
:
/**
* Check if the given pipe_format is supported as a texture or
* drawing surface.
* \param bindings bitmask of PIPE_BIND_*
*/
bool (*is_format_supported)( struct pipe_screen *,
enum pipe_format format,
enum pipe_texture_target target,
unsigned sample_count,
unsigned storage_sample_count,
unsigned bindings );
Each gallium driver implements this hook, and then gallium queries the driver before creating a resource using a given format and then also before using a created resource in various ways.
Shader Testing
Post-Storm Posting
I’m back, and today’s topic is testing.
Another Minor Annoyance
Instancing
Primitive Pain
Queries Again
Debugging
The Hidden Dangers of State Tracking
Versioning
How Do Mesa Versions Work?
Internal Changes
Variable Lists
Today I’m going to briefly go over a big-ish API change that’s taking place as a result of a MR from Jason Ekstrand.
Fast Friday
Spec Harder
Partial Writes
A Slow Day
Shader Processing
Last of the Vertex Processors
Gross Restarts
Directing Indirection
Memory
I’m Back
Timestamps
We’re Back
aNIRtomy
NIR passes
Extensions
Something different
Restart
Primitive Restart
Status Update
A quick break
I’ve been blogging pretty in-depth about Zink and related code for a while, so let’s do a quick roundup with some future blog post spoilers.
Testing Accidents
Something more recent
Fragcolors
Extensions Extensions Extensions
Smol Extension
ARB_arrays_of_arrays
UBO Sighting
At last
It’s time to finish up UBO support in this long form patch review blog series. Here’s where the current progress has left things:
Binding Locations
No time to waste
Nirly There
assert()gery
Opengl 3.1
Long Weekend
Briefly Piglit
A quick word
When Maths Get Weird
Shader ALUs
Anatomy Of A Shader Bugfix
Something different
A Step Back
Finally, An Introduction
Slots
A new problem
Query Finishing Touches
Testing Testing Testing
Query Overwhelming
The overflow problem
Query Resets
To start with
Query Interrupted
Short post today
Queries
The next problem
The Saga Continues
More Fixes
Yesterday I covered the problems related to handling gl_PointSize
during the SPIR-V
conversion. But there were still more problems to overcome.
But It Was Not Over
There’s always more tests
Finally Extensions
What are extensions?
Querying Xfb
Queries: What are they?
Drawing At Last
Quick Runthrough
This xfb
blog series has gone on for a while now, and it’d be great if it ended soon. Unfortunately, there’s a lot of corner cases which are being found by piglit, and the work and fixing continue.
Stream Output
To Begin…
Stream output is another name for xfb
closer to the driver level. Inside mesa (and gallium), we’ll commonly see different types related to struct pipe_stream_output_*
which provide info about how the xfb
info is output to its corresponding buffers.
XFB And Me
Getting Deeper
After getting the extensions and features enabled so things would run (more on this in a future post), I dove into the deep end of ntv
because I was getting some crazy assert()
errors.
Transform Feedback: What Is It?
But really, what is it?
New Blog Who Dis
After years of using one blog, then using a number of different blogs, then not blogging at all, I’m now blogging once more. Currently, the plan is to focus on mesa code that I’m working on, specifically (at least for now) zink code.