[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