the Psychonauts slow performance with GMA 4500 on Linux (even with all details low) but works good with Windows. Tested on: Ubuntu 12.04 Mesa 7.11.2 and Mesa 8.0.3 Linux kernel 3.2
The following patch http://cgit.freedesktop.org/mesa/mesa/commit/?id=75f409d75cacf90df2d6f1d718251a5d5cd92f7f for the following bug https://bugs.freedesktop.org/show_bug.cgi?id=51328 fixed the problem for gen 6 and above but gen 4 still suffering from this bug. Cheers Emam
Yeah, the problem here is that it's trying to blit a Y-tiled buffer (depth or depth/stencil), and the Gen4-5 blitters can't do that. Paul's "blorp" code for doing blits on the render ring (without the hardware blitter) doesn't exist for Gen4-5. So we hit _meta_BlitFramebuffer. Which I think hits swrast. Paul's blorp code could be backported. However, it's probably overkill: gen4-5 doesn't have/use HiZ and its crazy W-tiled buffer format, so all that code is unnecessary. It also doesn't have MSAA. There's no need for "resolves". Just blits. So it's probably possible to write a simpler blit path. I don't honestly know which would be more work.
(In reply to comment #2) > Paul's blorp code could be backported. However, it's probably overkill: gen4-5 > doesn't have/use HiZ and its crazy W-tiled buffer format, so all that code is > unnecessary. It also doesn't have MSAA. There's no need for "resolves". Just > blits. So it's probably possible to write a simpler blit path. I don't > honestly know which would be more work. My intuition is that backporting blorp to gen4-5 would be less work. Blorp is divided between a hardware-specific part (that sets up the 3D pipeline correctly for the blit) and a hardware-agnostic part (that generates the shader code and sets up the parameters for the blit). Almost all of the code that's unnecessary for gen4-5 is in the hardware-agnostic part, and that code is already smart enough to skip the stuff that's unnecessary (e.g. the MSAA-specific code is only activated when doing MSAA blits). So I think that the vast majority of the work involved in backporting blorp to gen4-5 would be to write the code to set up the 3D pipeline, and that would have to be done whether we re-use blorp or not. Given that, I would vastly prefer to re-use blorp. Incidentally, Ben Widawsky and I are planning to do some investigation into how difficult it would be to use the media pipeline for blorp rather than the 3D pipeline. Supposedly, the media pipeline is a lot easier to set up than the 3D pipeline, and has fewer differences between hardware generations. So if we wind up doing this, backporting blorp to gen4-5 might turn out to be fairly straightforward.
Reassigning to Chris, as he's working on BLORP for pre-Sandybridge.
any new on BLORP for pre-Sandybridge
My meta series should fix this (putting steam on the gm45 now)
is BLORP implemented for GM45?
Fixed by the series ending with: commit 255bd9c0b83e3cb3914ee5a1386c8d5acdbc046a Author: Eric Anholt <eric@anholt.net> Date: Tue Feb 4 23:57:29 2014 -0800 meta: Add acceleration for depth glBlitFramebuffer().
great!, confirming fixed
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.