<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">
<title>idr&#x27;s blog</title>
<link href="http://www.paranormal-entertainment.com/idr/blog/"/>
<link href="http://www.paranormal-entertainment.com/idr/blog/index/graphics.atom" rel="self" type="application/atom+xml"/>
<author>

<name>blogtest</name>

</author>




<id>http://www.paranormal-entertainment.com/idr/blog/</id>

<subtitle type="html">blogtest</subtitle>
<generator uri="http://ikiwiki.info/" version="3.20100831">ikiwiki</generator>
<updated>2013-04-12T21:14:27Z</updated>
<entry>
	<title>neGcon + SDL = ?</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2013-04-12T19:31:39Z-neGcon_SDL/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-04-12T19:31:39Z-neGcon_SDL/"/>






	<category term="/tags/games" />

	<category term="/tags/graphics" />


	<updated>2013-04-12T21:14:27Z</updated>
	<published>2013-04-12T19:31:39Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;So... I&#39;ve been on an old games kick for some time now.  As part of
that, I recently purchased a &lt;a href=&quot;http://en.wikipedia.org/wiki/Negcon&quot;&gt;Namco
neGcon&lt;/a&gt; Playstation controller.
I&#39;m not going to dig out a copy of
&lt;a href=&quot;http://en.wikipedia.org/wiki/Wipeout_(series)&quot;&gt;Wipeout&lt;/a&gt;... I want to
support it in some of the demo programs I write for the graphics
programming class I teach... because I can. &lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/./smileys/smile.png&quot; alt=&quot;:)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/images/negcon.jpg&quot;&gt;
&lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/images/negcon-small.jpg&quot; width=&quot;320&quot; height=&quot;240&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A tiny bit of background for people too lazy to click the Wikipedia
link... This is an old Playstation controller.  It came out long
before even the &lt;a href=&quot;http://en.wikipedia.org/wiki/Dual_Analog_Controller&quot;&gt;Dual
Analog&lt;/a&gt; (April
1997, according to the Wikipedia article.  I couldn&#39;t find a firm
release date, but I remember seeing adds for it around the launch time
of the Playstation.  I could find some rec.games.video.sony posts from
March 1996 about importing it from Japan.  What makes it special are
the quirky analog inputs.  The left trigger and the two red buttons
are analog.  The real kicker is &lt;em&gt;twisting&lt;/em&gt; it in the middle is also an
analog input.&lt;/p&gt;

&lt;p&gt;I hooked it up to my laptop with a generic Playstation-to-USB
converter, and hacked up a demo program in SDL to see how this thing
reports itself.  The first disappointing thing is the name.  SDL just
reports it as &quot;USB Gamepad &quot; (yes, with a space at the end).  I&#39;m sure
that&#39;s a quirk of the adapter.  Since I have several controllers that
I use, I use the name to set default button mappings.  My Logitech
DualShock look-a-like reports as &quot;Logitech Logitech Dual Action&quot; (yes,
Logitech twice), and my PS3 Sixaxis reports as &quot;Sony PLAYSTATION(R)3
Controller&quot;.&lt;/p&gt;

&lt;p&gt;It shows up as 5 axes, 12 buttons, and a hat.  Let&#39;s look at the
mapping to see it get crazy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Twisting: axis 0&lt;/li&gt;
&lt;li&gt;Buttons I and II (the red ones): axis 1.  Yes, the two jolly, red,
candy-like analog buttons show up, &lt;em&gt;together&lt;/em&gt;, as axis 1.  Button I
gets the negative values, and button II gets the positive values.&lt;/li&gt;
&lt;li&gt;Button A: button 1&lt;/li&gt;
&lt;li&gt;Button B: button 0&lt;/li&gt;
&lt;li&gt;Left trigger: axis 3&lt;/li&gt;
&lt;li&gt;Right trigger: button 7&lt;/li&gt;
&lt;li&gt;Start: button 9&lt;/li&gt;
&lt;li&gt;D-pad: Hat 0.  I hate controllers that advertise the d-pad as a
hat.  My Logitech controller does that, but the Sixaxis just shows
them as buttons.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this begs the question, &quot;WTF?&quot;  It also begs a couple follow-up
questions.  Is all of this madness caused by the adapter, or is it
endemic to the controller itself?  I suspect it shows up as 12 buttons
because of the &lt;a href=&quot;http://en.wikipedia.org/wiki/DualShock&quot;&gt;DualShock&lt;/a&gt;.
The DualShock actually has 13 buttons (the &quot;Analog&quot; selector), but I
don&#39;t think that gets sent over the protocol.  I think that just
changes the function of the controller itself.  My Logitech has a
similar &quot;mode&quot; button, and that doesn&#39;t go over the protocol.&lt;/p&gt;

&lt;p&gt;Did anyone ever use a neGcon with a parallel port adpater?  How did it
show up?  It looks like the Linux kernel has supported it for ages, so
someone must have done it...&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-04-12T19:31:39Z-neGcon_SDL/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-04-12T19:31:39Z-neGcon_SDL/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>GLX_MESA_query_renderer out for review</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2013-03-01T23:15:18Z-GLX_MESA_query_renderer_out_for_review/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-03-01T23:15:18Z-GLX_MESA_query_renderer_out_for_review/"/>






	<category term="/tags/OpenGL" />

	<category term="/tags/graphics" />


	<updated>2013-03-01T23:35:14Z</updated>
	<published>2013-03-01T23:15:18Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;After giving a &lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-07T22:42:53Z-FOSDEM2013_Presentation/&quot;&gt;talk at
FOSDEM&lt;/a&gt;
last month on this topic, I finally finished my work on
&lt;code&gt;GLX_MESA_query_renderer&lt;/code&gt;... at least finished enough to send out for
&lt;a href=&quot;http://lists.freedesktop.org/archives/mesa-dev/2013-March/035562.html&quot;&gt;review by a wider
audience&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The extension is modeled after Apple&#39;s
&lt;a href=&quot;https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGL_OpenGL/Reference/reference.html#//apple_ref/c/func/CGLDescribeRenderer&quot;&gt;&lt;code&gt;CGLDescribeRenderer&lt;/code&gt;&lt;/a&gt;
interface.  Before even embarking on this project, several ISVs told me
that they really liked that interface.  There are some small changes,
but it&#39;s still pretty similar.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;glXQueryRendererIntegerMESA&lt;/code&gt; and &lt;code&gt;glXQueryRendererStringMESA&lt;/code&gt;
functions allow applications query a bunch of aspects about the driver
and hardware &lt;em&gt;before&lt;/em&gt; creating a context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Driver version&lt;/li&gt;
&lt;li&gt;Driver vendor&lt;/li&gt;
&lt;li&gt;Hardware vendor (may be different from driver vendor!)&lt;/li&gt;
&lt;li&gt;Hardware chipset (PCI ID)&lt;/li&gt;
&lt;li&gt;Available memory&lt;/li&gt;
&lt;li&gt;UMA vs. non-UMA&lt;/li&gt;
&lt;li&gt;Supported and prefered (by the driver) GL profiles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last one is really important to know before creating a context
because it may influence what sort of context that app creates. &lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/./smileys/smile.png&quot; alt=&quot;:)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The initial branch, with the extension spec, is available at:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://cgit.freedesktop.org/~idr/mesa/log/?h=query-renderer&quot;&gt;http://cgit.freedesktop.org/~idr/mesa/log/?h=query-renderer&lt;/a&gt;&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-03-01T23:15:18Z-GLX_MESA_query_renderer_out_for_review/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-03-01T23:15:18Z-GLX_MESA_query_renderer_out_for_review/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>OpenGL ES 3.0 conformance!</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-13T16:17:14Z-OpenGL_ES_3_0_conformance/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-13T16:17:14Z-OpenGL_ES_3_0_conformance/"/>






	<category term="/tags/Intel-graphics" />

	<category term="/tags/OpenGL" />

	<category term="/tags/graphics" />


	<updated>2013-02-13T16:36:39Z</updated>
	<published>2013-02-13T16:17:14Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;Woo hoo!  In order that people can announce products at &lt;a href=&quot;http://www.mobileworldcongress.com/&quot;&gt;Mobile World
Congress&lt;/a&gt; next week, Khronos voted to
approve the OpenGL ES 3.0 conformance submissions before the usual 30-day
review period was up.  It took quite a bit longer to get the conformance tests
ready, so this move was made to not punish companies (who all worked hard to
get their products ready) for delays in the test suite.&lt;/p&gt;

&lt;p&gt;Anyway... the vote passed, and &lt;a href=&quot;http://www.khronos.org/conformance/adopters/conformant-products#opengles&quot;&gt;&lt;em&gt;WE&#39;RE
IN!!!&lt;/em&gt;&lt;/a&gt;
We did it!!!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/images/Intel-OpenGL-ES-3.0-conformance.jpg&quot; width=&quot;320&quot; height=&quot;240&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As an aside, thanks to Ken&#39;s &lt;a href=&quot;http://lists.freedesktop.org/archives/mesa-dev/2013-February/034492.html&quot;&gt;recent
patches&lt;/a&gt;,
we should be able to submit results for Sandy Bridge on Mesa 9.1 soon.
Unfortunately, that submission will have to wait for the 30-day review period.&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-13T16:17:14Z-OpenGL_ES_3_0_conformance/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-13T16:17:14Z-OpenGL_ES_3_0_conformance/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>FOSDEM2013 Presentation</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-07T22:42:53Z-FOSDEM2013_Presentation/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-07T22:42:53Z-FOSDEM2013_Presentation/"/>






	<category term="/tags/OpenGL" />

	<category term="/tags/graphics" />


	<updated>2013-02-07T23:13:23Z</updated>
	<published>2013-02-07T22:42:53Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;&lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/images/FOSDEM13/FOSDEM2013-talk.jpg&quot; width=&quot;320&quot; height=&quot;240&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/images/FOSDEM13/FOSDEM2013-GPU-detection.pdf&quot;&gt;slides&lt;/a&gt; from my &lt;a href=&quot;https://fosdem.org/2013/schedule/event/gpuhwdetect/&quot;&gt;FOSDEM
talk&lt;/a&gt;
are now available.  I would have gotten them out sooner, but I caught
a bit of a cold on the way home.  I guess averaging 3 hours of sleep
per night wore my resistance down.  Who knew?&lt;/p&gt;

&lt;p&gt;In any case, the talk went really well.  The attendance was low due to
not being in the printed schedule (I got my information in really
late) and being scheduled across from &lt;a href=&quot;https://fosdem.org/2013/schedule/event/operating_systems_open_arm_gpu/&quot;&gt;Luc&#39;s graphics talk&lt;/a&gt; in the main
track.  It was really good to chat with the Wine developers... I
continue to be amazed that thing works.  I don&#39;t envy them &lt;em&gt;at
all&lt;/em&gt;... but I&#39;m glad they&#39;re there.&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-07T22:42:53Z-FOSDEM2013_Presentation/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-07T22:42:53Z-FOSDEM2013_Presentation/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>Another victory for open-source drivers</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-06T00:32:32Z-Another_victory_for_open-source_drivers/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-06T00:32:32Z-Another_victory_for_open-source_drivers/"/>






	<category term="/tags/Intel-graphics" />

	<category term="/tags/OpenGL" />

	<category term="/tags/graphics" />


	<updated>2013-02-06T00:40:21Z</updated>
	<published>2013-02-06T00:32:32Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;Unbeknownst to most, last week was a pretty big week for open-source
graphics drivers... and I&#39;m not referring to all the presentations at
FOSDEM. &lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/./smileys/smile.png&quot; alt=&quot;:)&quot; /&gt; Intel and the Mesa community made good on &lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-09T00:37:31Z-OpenGL_ES_3_0_announced_for_Intel_HD_Graphics_on_Linux/&quot;&gt;my bold claim at
SIGGRAPH
2012&lt;/a&gt;,
and &lt;a href=&quot;https://01.org/blogs/brullman/2013/intel%E2%80%99s-open-source-graphics-driver-goes-mobile&quot;&gt;we submitted OpenGL ES 3.0 conformance
results&lt;/a&gt;
for Ivy Bridge GPUs on the Mesa 9.1 release branch last Tuesday.  So
far, only two other companies have made submissions, one before and
&lt;a href=&quot;http://www.electronicsweekly.com/Articles/04/02/2013/55489/imagination-targets-opengl-es-3.0-conformance-with-khronos.htm&quot;&gt;one
after&lt;/a&gt;
ours.&lt;/p&gt;

&lt;p&gt;This is a really big deal for both Intel and Mesa!  When was the last
time either produced a hardware driver within a reasonable amount of
time after the spec was released?  I&#39;m not sure that Mesa has ever
done that, and I believe it was around OpenGL 1.3 for Intel... and now
we&#39;re one of the first...&lt;/p&gt;

&lt;p&gt;Once the &lt;a href=&quot;https://www.khronos.org/conformance/&quot;&gt;30-day review period&lt;/a&gt;
has passed (assuming there are no faults found with our submission),
we&#39;ll be listed in the &lt;a href=&quot;http://www.khronos.org/conformance/adopters/conformant-products#opengles&quot;&gt;conformant products
list&lt;/a&gt;.
Watch this space for more details...&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-06T00:32:32Z-Another_victory_for_open-source_drivers/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2013-02-06T00:32:32Z-Another_victory_for_open-source_drivers/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>OpenGL ES 2.0 conformance!</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-20T15:57:46Z-OpenGL_ES_2_0_conformance/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-20T15:57:46Z-OpenGL_ES_2_0_conformance/"/>






	<category term="/tags/Intel-graphics" />

	<category term="/tags/OpenGL" />

	<category term="/tags/graphics" />


	<updated>2012-08-20T16:26:48Z</updated>
	<published>2012-08-20T15:57:46Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;This is a great day for Mesa and open-source graphics drivers.  Just a
tad over a month ago, I submitted OpenGL ES 2.0 conformance test
results to Khronos for Intel Sandy Bridge and Ivy Bridge GPUs with
Mesa 8.0.4.  There were no objections during the 30 day review period,
so we are now &lt;em&gt;officially&lt;/em&gt; conformant!  Finally being on &lt;a href=&quot;http://www.khronos.org/conformance/adopters/conformant-products#opengles&quot;&gt;that
list&lt;/a&gt;
is pretty cool.&lt;/p&gt;

&lt;p&gt;Not only is this great news for my team at Intel, but it&#39;s terrific
news for Mesa.  Mesa has had a long history with OpenGL, the ARB, and
Khronos.  This is, however, the first time that Mesa has ever, in any
way, been listed as a conformant implementation.  This is a big boost
to Mesa&#39;s credibility.&lt;/p&gt;

&lt;p&gt;Hopefully we&#39;ll be able to follow this with OpenGL ES 3.0 conformance
next year. &lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/./smileys/smile.png&quot; alt=&quot;:)&quot; /&gt;&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-20T15:57:46Z-OpenGL_ES_2_0_conformance/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-20T15:57:46Z-OpenGL_ES_2_0_conformance/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>OpenGL ES 3.0 announced... for Intel HD Graphics on Linux!</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-09T00:37:31Z-OpenGL_ES_3_0_announced_for_Intel_HD_Graphics_on_Linux/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-09T00:37:31Z-OpenGL_ES_3_0_announced_for_Intel_HD_Graphics_on_Linux/"/>






	<category term="/tags/Intel-graphics" />

	<category term="/tags/OpenGL" />

	<category term="/tags/SIGGRAPH" />

	<category term="/tags/graphics" />


	<updated>2012-08-09T01:24:42Z</updated>
	<published>2012-08-09T01:06:30Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;The OpenGL ES BoF at SIGGRAPH is still in progress, but let&#39;s have some
real-time news to go with our real-time rendering!  In addition to announcing
the availability of OpenGL ES 3.0 and ASTC, several companies were able to
announce their plans for OpenGL ES 3.0.  Intel&#39;s Open-Source Technology Center
was there.  We are working on ES 3.0, and we have a public branch to prove it: &lt;code&gt;git://anongit.freedesktop.org/mesa/mesa gles3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/images/SIGGRAPH12/es3.jpg&quot;&gt;
&lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/images/SIGGRAPH12/es3.thumb.jpg&quot; width=&quot;320&quot; height=&quot;240&quot;&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Right now things are &quot;pre-alpha&quot; quality.  There are a few features, like
ETC2, that are not yet supported.  There are also a bunch of holes in support
for some enums (both ones that should be supported and ones that should not).
At this point, we&#39;ve enabled a big pile of the functionality, and the driver
says &quot;OpenGL ES 3.0 Mesa 8.1-devel&quot;.  That&#39;s why this lives on a branch, and
it will continue to live on a branch until at least after the next Mesa
release (probably in September).&lt;/p&gt;

&lt;p&gt;Like the slide presented at the BoF says, our plan is to have ES 3.0 fully
enabled for release in 2013Q1.  This probably means February, but we&#39;ll see.
Software releases happen when they happen.&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-09T00:37:31Z-OpenGL_ES_3_0_announced_for_Intel_HD_Graphics_on_Linux/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-08-09T00:37:31Z-OpenGL_ES_3_0_announced_for_Intel_HD_Graphics_on_Linux/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>The zombies cometh...</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2012-07-19T18:54:37Z-The_zombies_cometh/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-07-19T18:54:37Z-The_zombies_cometh/"/>






	<category term="/tags/Intel-graphics" />

	<category term="/tags/OpenGL" />

	<category term="/tags/games" />

	<category term="/tags/graphics" />


	<updated>2012-07-19T20:25:51Z</updated>
	<published>2012-07-19T18:54:37Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;Last week my team and I spent some time in Bellvue working with
&lt;a href=&quot;http://blogs.valvesoftware.com/linux/steamd-penguins/&quot;&gt;Valve&#39;s Linux
team&lt;/a&gt; on their
port of Left 4 Dead 2.&lt;/p&gt;

&lt;p&gt;It was the most successful work trip I&#39;ve ever had.  The guys at Valve
were amazing to work with.  They are sharp, driven, and have an
aggressive plan.  Looking at how far they&#39;ve come and the short amount
of time in which they&#39;ve done it, I have every confidence that they&#39;re
going to kick their plan right in the butt.  It&#39;s going to be a good
time to be a Linux gamer.&lt;/p&gt;

&lt;p&gt;We had three main goals going in:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Help them tune their game for our driver / hardware.&lt;/li&gt;
&lt;li&gt;Find out where our performance is lacking.&lt;/li&gt;
&lt;li&gt;Find out what OpenGL features they need / want.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I think we scored on every point.  We helped them find some
performance bugs in their vertex buffer management (which also
affected other GPUs / drivers) and some places where the accidentally
triggered shader recompiles.  This gave some healthy performance
improvements.&lt;/p&gt;

&lt;p&gt;We also found some areas where our driver really, really needs to
improve.  They have a couple shaders that devolve into register
spilling nightmares.  There are also a few places where we eat way,
way too much CPU.  A lot of these problems mirror issues that we&#39;ve
seen with other game engines (e.g., Unigine).&lt;/p&gt;

&lt;p&gt;These have been a lot easier to diagnose on L4D2 because we have
access to their source code.  Being able to take a profile that shows
times in the driver and in the application makes a world of
difference.  Being able to tweak little things in the app (what
happens if I do this...) is also helpful for diagnosing performance
problems.  Eric has already started landing &lt;a href=&quot;http://cgit.freedesktop.org/mesa/mesa/commit/?id=a40c1f95229915214be061fbbf9a02e5225fbf01&quot;&gt;patches for L4D2
performance&lt;/a&gt;,
and there will be many more over the coming weeks.&lt;/p&gt;

&lt;p&gt;The funny thing is Valve guys say &lt;em&gt;the same thing about drivers&lt;/em&gt;.
There were a couple times where we felt like they were trying to
convince &lt;em&gt;us&lt;/em&gt; that open source drivers are a good idea.  We had to
remind them that they were preaching to the choir. &lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/./smileys/smile.png&quot; alt=&quot;:)&quot; /&gt; Their problem with
closed drivers (on all platforms) is that it&#39;s such a blackbox that
they have to play guess-and-check games.  There&#39;s no way for them to
know how changing a particular setting will affect the performance.
If performance gets worse, they have no way to know why.  If they can
see where time is going in the driver, they can make much more
educated guesses.&lt;/p&gt;

&lt;p&gt;We also got some really good feedback about features.  The biggest
feature they want is better output from
&lt;a href=&quot;http://www.opengl.org/registry/specs/ARB/debug_output.txt&quot;&gt;&lt;code&gt;GL_ARB_debug_output&lt;/code&gt;&lt;/a&gt;.
They really want to know when they do things that fall off performance
paths, trigger shader recompiles, etc.  We hacked out some initial
versions of this, and it was a big help.  Some patches in that area
should hit the mailing list soon.&lt;/p&gt;

&lt;p&gt;They&#39;re also interested in what they call &quot;smart vsync.&quot;  Swaps that
are scheduled soon enough will have vsync, and the application will be
vsync limited.  Swaps that are scheduled too late happen immediately.
In their words, &quot;Tearing is bad, but dropping to 30fps is worse.&quot;  On
GLX, we can expose this with
&lt;a href=&quot;http://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt&quot;&gt;&lt;code&gt;GLX_EXT_swap_control_tear&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-07-19T18:54:37Z-The_zombies_cometh/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-07-19T18:54:37Z-The_zombies_cometh/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>Yay! More TRON!</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2012-05-25T22:54:37Z-Yay_More_TRON/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-05-25T22:54:37Z-Yay_More_TRON/"/>






	<category term="/tags/TV" />

	<category term="/tags/graphics" />


	<updated>2012-05-25T23:04:02Z</updated>
	<published>2012-05-25T22:35:40Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;The other night I watched the pilot for &lt;a href=&quot;http://tron.wikia.com/wiki/TRON:_Uprising&quot;&gt;TRON:
Uprising&lt;/a&gt;, and was frickin&#39;
impressed.  The plot was quite decent, probably even better than
&lt;a href=&quot;http://tron.wikia.com/wiki/TRON:_Legacy&quot;&gt;TRON: Legacy&lt;/a&gt;.  For a TV
show on the Disney Channel, the production quality was amazing.  The
voice acting was really well done, and the rendering was beautiful.
(I&#39;m not sure if the soundtrack was original, or if was just harvested
from TRON: Legacy.)&lt;/p&gt;

&lt;p&gt;That&#39;s actually my biggest concern about it.  When the series begins
in June, I have a hard time believing that every episode will have as
much work put into as the pilot.&lt;/p&gt;

&lt;p&gt;As an additional shock, it was broadcast &lt;em&gt;without&lt;/em&gt; commercials.
Somebody must have gotten fired for that!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=hjbwVzJR8w4&quot;&gt;Watch it&lt;/a&gt; for yourself...&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-05-25T22:54:37Z-Yay_More_TRON/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-05-25T22:54:37Z-Yay_More_TRON/comments.atom" type="application/atom+xml" />

</entry>
<entry>
	<title>Assembly shaders in GLSL IR</title>

	<id>http://www.paranormal-entertainment.com/idr/blog/posts/2012-04-17T19:00:38Z-Assembly_shaders_in_GLSL_IR/</id>

	<link href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-04-17T19:00:38Z-Assembly_shaders_in_GLSL_IR/"/>






	<category term="/tags/graphics" />


	<updated>2012-04-17T19:20:40Z</updated>
	<published>2012-04-17T19:00:38Z</published>

	<content type="html" xml:lang="en">
	&lt;p&gt;Off-and-on for a couple years (no kidding) I&#39;ve been working on a branch that
compiles the assembly shaders (e.g.,
&lt;a href=&quot;http://www.opengl.org/registry/specs/ARB/vertex_program.txt&quot;&gt;&lt;code&gt;GL_ARB_vertex_program&lt;/code&gt;&lt;/a&gt;)
to GLSL IR.  I even talked about it at &lt;a href=&quot;http://www.x.org/wiki/Events/XDC2011/Program&quot;&gt;XDC
2011&lt;/a&gt;.  This project has turned
into such an incredible rat&#39;s nest of irritation that I can&#39;t even believe
it.&lt;/p&gt;

&lt;p&gt;All of that asside, the project reached a significant milestone today.  I can
run retail Doom3 binaries.  There are a couple caveats (incorrect rendering,
have to disable HiZ on Sandybridge, etc.), but it&#39;s still significant
progress.  The images below are i965 on Mesa 8.0.2 (with HiZ disabled), i965
on my branch (with HiZ disabled), and classic swrast on my branch.  At least
at the time of this writing, there are &lt;a href=&quot;https://bugs.freedesktop.org/show_bug.cgi?id=47535&quot;&gt;some
bugs&lt;/a&gt; related to separate
stencil on Sandybridge that only occur when HiZ is enabled.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/images/asm-to-ir-doom3/965-good.jpg&quot;&gt;
&lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/images/asm-to-ir-doom3/965-good.jpg&quot; width=&quot;320&quot; height=&quot;240&quot; /&gt;
&lt;/a&gt;
&lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/images/asm-to-ir-doom3/965-bad.jpg&quot;&gt;
&lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/images/asm-to-ir-doom3/965-bad.jpg&quot; width=&quot;320&quot; height=&quot;240&quot; /&gt;
&lt;/a&gt;
&lt;a href=&quot;http://www.paranormal-entertainment.com/idr/blog/images/asm-to-ir-doom3/swrast-bad.jpg&quot;&gt;
&lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/images/asm-to-ir-doom3/swrast-bad.jpg&quot; width=&quot;320&quot; height=&quot;240&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

	</content>


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-04-17T19:00:38Z-Assembly_shaders_in_GLSL_IR/#comments" type="text/html" />


	<link rel="comments" href="http://www.paranormal-entertainment.com/idr/blog/posts/2012-04-17T19:00:38Z-Assembly_shaders_in_GLSL_IR/comments.atom" type="application/atom+xml" />

</entry>

</feed>
