Home

Advertisement

Customize

Nov. 27th, 2009


[info]opalmirror

Gratitude, it bears repeating

Kathryn,

I'm so thankful you shared
your last ten years with me,
loved so fiercely and wildly,
made me all these wonderful friends,
danced so beautifully,
encouraged so many,
shared so many good times,
tried to lead by example,
dreamed dreams and realized many

Beautiful feast of life and love,
the lingering taste is so sweet,
and I am so grateful.

Nov. 25th, 2009


[info]anholt

video hackfest

I got back from the video hackfest a day ago. It was a very productive meeting, even if most of it was getting across the features and requirements of our various projects to the other projects involved. I finally understood why using GL in gstreamer is hard, why gstreamer wants to be that way, why we're changing the locking model in cairo, and other details of projects I'm interested but not actively involved in. And I got a few chances to go over how GL works with threading and the ridiculous context model that it has.

Out of that, I ended up with the project of making GLX allow binding a single GL context into multiple threads. This should largely fix the disaster that is GL multithreading. The basic idea is: I have a collection of threads that want to work on a single context because they're sharing all the same objects and want to have some sort of serialization into a GL command stream. If we pass the context around between the threads, unbinding and rebinding, you get this forced command stream flushing that will kill performance. If we make multiple contexts, then at the transition of changed objects between one thread and another you have to flush in the producer and re-bind the object in the consumer. Whether or not that could perform well, we determined that in the gstreamer model we couldn't know in time whether the producer is going to be in a different thread than the consumer: you'd have to flush every time just like passing a single context around.

So here comes a simple hack: Just rip out the piece of the spec that says you can't bind one context into multiple threads. Tell the user that if they do this, locking is up to them. It's not an uncommon position for projects to take, and it will let us do exactly what we want in gstreamer: everyone works in the same context[1], and when you want access to the GL context, just grab the lock for the context and go.

Development trees are at:
http://cgit.freedesktop.org/~anholt/piglit/log/?h=mesa-multithread-makecurrent
http://cgit.freedesktop.org/~anholt/mesa/log/?h=mesa-multithread-makecurrent

The testcase gets bad rendering at the moment. So I made the testcase for the non-extended version, and it still didn't render, with either i965 or swrast. Next step is to test my testcase against someone else's GL.

Incidentally, Apple's GL spec allows binding a single context to multiple threads like this. Windows GL doesn't.

[1] OK, so that's not exactly true. I'm assuming that elements negotiate a single context through some handwavy caps magic -- people have said that this is possible. You can still end up with two contexts, though, like with the following pipeline: videotestsrc ! glupload ! glfilterblur ! gldownload ! gamma ! glupload ! glimagesink. The second group of gl elements doesn't know about the first, or have any way to communicate with them. But if each element calls glXMakeCurrent at the start, it'll be approximately free for the one-context case, and just work for the multiple-contexts case.

Nov. 22nd, 2009


[info]opalmirror

Kathryn and the Cat Writer's Conference 2009

Every year the Cat Writer's Association holds a 3-day conference. It consists of writer workshops, lots of giveaway book samples from writers to the other writers, a fantastic awards banquet for notable writing achievements, and generous donated gifts from cat care industries (cat litter, toys, food, treats, care items, pet beds), and it's usually in association with a major cat show (Cat Fancier's Association, typically). Now, this is exclusive membership, you have to be published and of a quality and activity level that really shows you are a promoter of good lives for cats and their people.

Kathryn went to the cat writer's conference in 2005, and a friend of mine new to the CWA went this year. This was my letter to her, and I thought I'd share it here because it talks a lot about Kathryn and both sides of her... how beloved, committed, smart, friendly and beautiful she was, but also how tortured, sad, and limited things were for her as well. For reference, please check out Fritz the Brave, a site on feline asthma, for which Kathryn wrote and recieved coveted awards - the CWA Muse Medallion and Cornell University School of Veterinary Medicine. These were Kathryn at her best/shiniest, an award acknowledging how hard she had worked and the countless hours of advocacy and education she had accomplished.

Letter below )

Advertisement

Customize