[Mesa-dev] [PATCH 2/3] intel: Add multisample scaled blitting in blorp engine
Anuj Phogat
anuj.phogat at gmail.com
Mon May 6 15:52:19 PDT 2013
On Wed, May 1, 2013 at 2:10 PM, Anuj Phogat <anuj.phogat at gmail.com> wrote:
> In traditional multisampled framebuffer rendering, color samples must be explicitly
> resolved via BlitFramebuffer before doing the scaled blitting of the framebuffer.
> So, scaled blitting of a multisample framebuffer takes two separate calls to
> BlitFramebuffer.
>
> This patch implements the functionality of doing multisampled scaled resolve using
> just one BlitFramebuffer call. Important changes involved in this patch are listed
> below:
> 1. Add fractional scale/offset capability.
> 2. Modify blorp setup code to handle scaled blits properly.
> - Do register allocation for UD and float registers.
> - Use float registers to do scale / offset texture coordinates.
> - Change offset computation to consider float coordinates.
> - Round the scaled & offset coordinates down to integer.
> - Make relevant changes to ensure correct blitting of stencil / depth buffers.
> 3. Linear filter is not yet implemented in blorp. So, don't use blorp engine to do
> single sampled scaled blitting.
> 4. if INTEL_DEBUG=blorp is set, recompile the blorp shader to dump the native code
> for blorp blit. This will not effect performance but assist in debugging.
>
> Note: Observed no piglit regressions on sandybridge & ivybridge with these changes.
>
I have identified problems with clipping of source / destination
coordinates. I am not
considering scale factor while clipping the coordinates in this patch.
I'm working on
fixing it along with other updates.
More information about the mesa-dev
mailing list