And BTW, you can also get it from here:

git://people.freedesktop.org/~mareko/mesa blit

Marek

On Fri, Sep 14, 2012 at 7:09 PM, Marek Olšák <mar...@gmail.com> wrote:
> This series reworks blitting and MSAA resolving in Gallium as discussed here:
> http://www.mail-archive.com/mesa-dev@lists.freedesktop.org/msg26592.html
>
> I'd like to clarify some more rules for the blit function:
> - Z/S blitting must always be supported regardless of shader stencil export 
> and sampler support (like glBlitFramebuffer). r300_blit is an example of how 
> stencil can be copied.
> - The render condition has no effect.
>
> I have tested r600g, r300g, softpipe, and llvmpipe.
>
> The fbo-blit-stretch test started failing on softpipe. After careful 
> examination it looks like softpipe is culling one of the two triangles of the 
> quad u_blitter is rendering. The other tested drivers don't have this issue. 
> I assume it's a bug in softpipe that was just uncovered.
>
> I haven't implemented the blit in the nv50/nvc0 driver, because Christoph has 
> already started working on his own implemention.
>
> On the st/mesa side, I couldn't change CopyTexSubImage to use the new blit, 
> because the blit doesn't allow the alpha channel to be forced to 1. The only 
> way to achieve that is to set blit.src.format to an RGBX format and we don't 
> have enough RGBX formats to be able to do that.
>
> That's it. Please review.
>
> Marek Olšák (23):
>       draw: fix non-indexed draw calls if there's an index buffer
>       softpipe: fix set_framebuffer_state with uninitialized surfaces past 
> nr_cbufs-1
>       gallium: add PIPE_CAP_TEXTURE_MULTISAMPLE
>       gallium: add blit into the interface
>       gallium/u_blitter: check PIPE_CAP_TEXTURE_MULTISAMPLE
>       gallium/u_blitter: facilitate co-existence with the Draw module
>       gallium/u_blitter: add ability to disable and restore the render 
> condition
>       gallium/u_blitter: add gallium blit implementation
>       gallium/u_blitter: add helper for blitting via resource_copy_region
>       gallium: add helpers for dumping pipe_box and pipe_blit_info
>       gallium: implement blit in driver wrappers
>       i915g: implement blit
>       llvmpipe: implement blit
>       nv30: use util_format_is_supported
>       nv30: implement blit
>       r300g: implement blit
>       r600g: implement blit
>       radeonsi: implement blit
>       softpipe: implement blit
>       svga: implement blit
>       st/mesa: implement BlitFramebuffer using gallium blit
>       st/mesa: implement decompress_with_blit using gallium blit
>       gallium: remove resource_resolve
>
>  src/gallium/auxiliary/draw/draw_context.c          |    2 +-
>  src/gallium/auxiliary/draw/draw_private.h          |    1 +
>  src/gallium/auxiliary/draw/draw_pt.c               |   11 +-
>  src/gallium/auxiliary/util/u_blitter.c             |  632 
> +++++++++++++++-----
>  src/gallium/auxiliary/util/u_blitter.h             |   84 ++-
>  src/gallium/auxiliary/util/u_dump.h                |    6 +
>  src/gallium/auxiliary/util/u_dump_state.c          |   73 +++
>  src/gallium/auxiliary/util/u_surface.c             |   30 +-
>  src/gallium/auxiliary/util/u_surface.h             |   11 +-
>  src/gallium/docs/d3d11ddi.txt                      |    2 +-
>  src/gallium/docs/source/context.rst                |   23 +-
>  src/gallium/drivers/galahad/glhd_context.c         |   27 +-
>  src/gallium/drivers/i915/i915_context.c            |   11 +-
>  src/gallium/drivers/i915/i915_screen.c             |    1 +
>  src/gallium/drivers/i915/i915_surface.c            |   77 ++-
>  src/gallium/drivers/identity/id_context.c          |   15 +
>  src/gallium/drivers/llvmpipe/lp_context.c          |   12 +
>  src/gallium/drivers/llvmpipe/lp_context.h          |    3 +
>  src/gallium/drivers/llvmpipe/lp_screen.c           |    5 +
>  src/gallium/drivers/llvmpipe/lp_surface.c          |   61 ++
>  src/gallium/drivers/noop/noop_pipe.c               |    7 +
>  src/gallium/drivers/nv30/nv30_context.c            |    9 +
>  src/gallium/drivers/nv30/nv30_context.h            |    5 +
>  src/gallium/drivers/nv30/nv30_miptree.c            |   60 ++
>  src/gallium/drivers/nv30/nv30_query.c              |    3 +
>  src/gallium/drivers/nv30/nv30_resource.c           |    2 +-
>  src/gallium/drivers/nv30/nv30_resource.h           |    4 +
>  src/gallium/drivers/nv30/nv30_screen.c             |   14 +-
>  src/gallium/drivers/nv50/nv50_screen.c             |    1 +
>  src/gallium/drivers/nv50/nv50_surface.c            |    3 +-
>  src/gallium/drivers/nvc0/nvc0_screen.c             |    1 +
>  src/gallium/drivers/nvc0/nvc0_surface.c            |    3 +-
>  src/gallium/drivers/r300/r300_blit.c               |   48 +-
>  src/gallium/drivers/r300/r300_context.h            |    3 +-
>  src/gallium/drivers/r300/r300_render.c             |    7 +-
>  src/gallium/drivers/r300/r300_screen.c             |    1 +
>  src/gallium/drivers/r600/evergreen_state.c         |    2 +
>  src/gallium/drivers/r600/r600_blit.c               |  303 ++++------
>  src/gallium/drivers/r600/r600_pipe.c               |    1 +
>  src/gallium/drivers/r600/r600_pipe.h               |    8 +-
>  src/gallium/drivers/r600/r600_state.c              |    8 +-
>  src/gallium/drivers/r600/r600_state_common.c       |    4 +-
>  src/gallium/drivers/radeonsi/r600_blit.c           |   32 +-
>  src/gallium/drivers/softpipe/sp_context.c          |   11 +
>  src/gallium/drivers/softpipe/sp_context.h          |    3 +
>  src/gallium/drivers/softpipe/sp_screen.c           |    1 +
>  src/gallium/drivers/softpipe/sp_state_surface.c    |    8 +-
>  src/gallium/drivers/softpipe/sp_surface.c          |   55 ++
>  src/gallium/drivers/svga/svga_context.c            |    2 +
>  src/gallium/drivers/svga/svga_context.h            |    2 +
>  src/gallium/drivers/svga/svga_pipe_blit.c          |   64 ++
>  src/gallium/drivers/svga/svga_screen.c             |    1 +
>  src/gallium/drivers/svga/svga_swtnl_draw.c         |   10 +
>  src/gallium/drivers/trace/tr_context.c             |   23 +
>  src/gallium/drivers/trace/tr_dump_state.c          |   69 ++-
>  src/gallium/drivers/trace/tr_dump_state.h          |    2 +
>  src/gallium/include/pipe/p_context.h               |   12 +-
>  src/gallium/include/pipe/p_defines.h               |    3 +-
>  src/gallium/include/pipe/p_state.h                 |   31 +-
>  .../state_trackers/d3d1x/gd3d11/d3d11_context.h    |    2 +
>  src/mesa/main/image.c                              |    4 +-
>  src/mesa/state_tracker/st_cb_blit.c                |  326 +++++-----
>  src/mesa/state_tracker/st_cb_texture.c             |   70 +--
>  63 files changed, 1576 insertions(+), 739 deletions(-)
>
> Marek
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to