On Fri, Jan 20, 2017 at 8:45 AM, Lionel Landwerlin <
[email protected]> wrote:

> Blorp can deal with depth/stencil surfaces blits/copies without the
> render target requirement. Also having both render target and
> depth/stencil requirement is incompatible from isl's point of view.
>
> This fixes an image creation issue in the high level quality settings
> of the Unity3D player, which requires a depth texture with src/dst
> transfer & 4x multisampling.
>
> Signed-off-by: Lionel Landwerlin <[email protected]>
> ---
>  src/intel/vulkan/anv_image.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
> index 9e5cebe188..8f738b2042 100644
> --- a/src/intel/vulkan/anv_image.c
> +++ b/src/intel/vulkan/anv_image.c
> @@ -75,8 +75,12 @@ choose_isl_surf_usage(VkImageUsageFlags vk_usage,
>        isl_usage |= ISL_SURF_USAGE_TEXTURE_BIT;
>     }
>
> -   if (vk_usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT) {
> -      /* blorp implements transfers by rendering into the destination
> image. */
> +   if (vk_usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT &&
> +       (aspect & (VK_IMAGE_ASPECT_DEPTH_BIT |
> +                  VK_IMAGE_ASPECT_STENCIL_BIT)) == 0) {
>

How about just "aspect == VK_IMAGE_ASPECT_COLOR_BIT"?  That would be
simpler.  Also, this should get CC'd to stable.


> +      /* blorp implements transfers by rendering into the destination
> image.
> +       * Only request this with color images, as we deal with
> depth/stencil
> +       * formats differently. */
>        isl_usage |= ISL_SURF_USAGE_RENDER_TARGET_BIT;
>     }
>
> --
> 2.11.0
>
> _______________________________________________
> mesa-dev mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to