summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_meta_blit2d.c
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-02-27 16:59:06 +1000
committerDave Airlie <[email protected]>2017-02-28 06:11:54 +1000
commit800b82ea1315d68fccd8b1f218d614d26e7b6478 (patch)
treece613fa77dab98ea61d4dc4f38e6a142fc600344 /src/amd/vulkan/radv_meta_blit2d.c
parent1121ce4525d03e35ab2ab95385ad99d112c17330 (diff)
radv: fix depth format in blit2d.
For blitting we need to use the depth or stencil format, never the combined. This fixes: dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d32_sfloat_s8_uint and a few others. Reviewed-by: Bas Nieuwenhuizen <[email protected]> Cc: "13.0 17.0" <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_meta_blit2d.c')
-rw-r--r--src/amd/vulkan/radv_meta_blit2d.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_meta_blit2d.c b/src/amd/vulkan/radv_meta_blit2d.c
index 6b622e78281..225b4b2d412 100644
--- a/src/amd/vulkan/radv_meta_blit2d.c
+++ b/src/amd/vulkan/radv_meta_blit2d.c
@@ -26,6 +26,7 @@
#include "radv_meta.h"
#include "nir/nir_builder.h"
+#include "vk_format.h"
enum blit2d_dst_type {
/* We can bind this destination as a "normal" render target and render
@@ -283,8 +284,10 @@ radv_meta_blit2d_normal_dst(struct radv_cmd_buffer *cmd_buffer,
for (unsigned r = 0; r < num_rects; ++r) {
VkFormat depth_format = 0;
- if (dst->aspect_mask != VK_IMAGE_ASPECT_COLOR_BIT)
- depth_format = dst->image->vk_format;
+ if (dst->aspect_mask == VK_IMAGE_ASPECT_STENCIL_BIT)
+ depth_format = vk_format_stencil_only(dst->image->vk_format);
+ else if (dst->aspect_mask == VK_IMAGE_ASPECT_DEPTH_BIT)
+ depth_format = vk_format_depth_only(dst->image->vk_format);
struct blit2d_src_temps src_temps;
blit2d_bind_src(cmd_buffer, src_img, src_buf, &src_temps, src_type, depth_format);