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