[Mesa-dev] [PATCH 3/3] i965/gen4: Add support for single layer in alignment workaround

Kenneth Graunke kenneth at whitecape.org
Wed Jun 14 06:07:52 UTC 2017


On Friday, June 9, 2017 7:04:38 AM PDT Topi Pohjolainen wrote:
> On gen < 6 one doesn't have level or layer specifiers available
> for render and depth targets. In order to support rendering to
> specific level/layer, driver needs to manually offset the surface
> to the desired slice.
> There are, however, alignment restrictions to respect as well and
> in come cases the only option is to use temporary single slice
> surface which driver copies after rendering to the full miptree.
> 
> Current alignment workaround introduces new texture images which
> are added to the parent texture object. Texture validation later
> on copies the additional levels back to the surface that contains
> the full mipmap.
> This only works for non-arrayed surfaces and driver currently
> creates new arrayed images in vain - individual layers within the
> newly created are still unaligned the same as before.
> 
> This patch drops this mechanism and instead attaches single
> temporary slice into the render buffer. This gets immediately
> copied back to the mipmapped and/or arrayed surface just after
> the render is done.
> 
> Sitting on top of earlier series cleaning up the depth buffer
> state, this patch additionally fixes the following piglit tests:
> 
>     ext_texture_array.copyteximage 2d_array.g45m64
>     ext_texture_array.copyteximage 1d_array.g45m64
>     arb_framebuffer_object.fbo-blit-stretch.g33m64

^^^ I'm guessing this is not true, given that that hardware runs i915 and
you're editing the i965 driver :)  Probably failure from bug 101414.

>     ext_framebuffer_object.fbo-cubemap.g965m64
>     arb_framebuffer_object.fbo-generatemipmap-cubemap.g965m64
>     arb_texture_cube_map.copyteximage cube.g965m64
>     ext_texture_array.copyteximage 1d_array.g965m64
>     ext_texture_array.copyteximage 2d_array.g965m64
>     ext_texture_array.fbo-array.g965m64
>     ext_texture_array.gen-mipmap.g965m64
>     ext_texture_array.fbo-generatemipmap-array.g965m64
>     arb_pixel_buffer_object.texsubimage array pbo.g965m64
>     ext_texture_array.copyteximage 2d_array.ilkm64
>     ext_texture_array.copyteximage 1d_array.ilkm64
>     arb_texture_cube_map.copyteximage cube.ilkm64
> 
> CC: Kenneth Graunke <kenneth at whitecape.org>
> CC: Jason Ekstrand <jason at jlekstrand.net>
> CC: Ian Romanick <ian.d.romanick at intel.com>
> Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
>  src/mesa/drivers/dri/i965/brw_draw.c             | 51 ++++++++++++++++++++++++
>  src/mesa/drivers/dri/i965/brw_misc_state.c       |  4 +-
>  src/mesa/drivers/dri/i965/brw_wm_surface_state.c |  3 +-
>  src/mesa/drivers/dri/i965/intel_fbo.c            | 19 +++++----
>  src/mesa/drivers/dri/i965/intel_fbo.h            | 24 +++++++++++
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.c    |  2 +-
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.h    |  7 ++++
>  7 files changed, 99 insertions(+), 11 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170613/cda27de8/attachment.sig>


More information about the mesa-dev mailing list