Module: Mesa
Branch: main
Commit: 40a00fc0652d4525eb1bf1969742855abb75602f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=40a00fc0652d4525eb1bf1969742855abb75602f

Author: Iago Toral Quiroga <[email protected]>
Date:   Mon Mar 27 11:42:23 2023 +0200

v3dv: fix format swizzle for buffer views

Fixes:
dEQP-VK.api.buffer_view.access.uniform_texel_buffer.b8g8r8a8_unorm

Reviewed-by: Alejandro PiƱeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22131>

---

 src/broadcom/ci/broadcom-rpi4-fails.txt |  3 ---
 src/broadcom/vulkan/v3dvx_image.c       | 12 ++++++++----
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/broadcom/ci/broadcom-rpi4-fails.txt 
b/src/broadcom/ci/broadcom-rpi4-fails.txt
index ed780b7cb2a..fd5be2c8a65 100644
--- a/src/broadcom/ci/broadcom-rpi4-fails.txt
+++ b/src/broadcom/ci/broadcom-rpi4-fails.txt
@@ -561,6 +561,3 @@ 
x11-dEQP-EGL.functional.create_context_ext.robust_gl_31.rgb888_no_depth_no_stenc
 
x11-dEQP-EGL.functional.create_context_ext.robust_gl_31.rgba8888_depth_no_stencil,Fail
 
x11-dEQP-EGL.functional.create_context_ext.robust_gl_31.rgba8888_depth_stencil,Fail
 
x11-dEQP-EGL.functional.create_context_ext.robust_gl_31.rgba8888_no_depth_no_stencil,Fail
-
-# New CTS failures in 1.3.5.0
-dEQP-VK.api.buffer_view.access.uniform_texel_buffer.b8g8r8a8_unorm,Fail
diff --git a/src/broadcom/vulkan/v3dvx_image.c 
b/src/broadcom/vulkan/v3dvx_image.c
index 2da58cadcc3..80a3e5bfde8 100644
--- a/src/broadcom/vulkan/v3dvx_image.c
+++ b/src/broadcom/vulkan/v3dvx_image.c
@@ -143,10 +143,14 @@ v3dX(pack_texture_shader_state_from_buffer_view)(struct 
v3dv_device *device,
    const struct v3dv_buffer *buffer = buffer_view->buffer;
 
    v3dvx_pack(buffer_view->texture_shader_state, TEXTURE_SHADER_STATE, tex) {
-      tex.swizzle_r = v3d_translate_pipe_swizzle(PIPE_SWIZZLE_X);
-      tex.swizzle_g = v3d_translate_pipe_swizzle(PIPE_SWIZZLE_Y);
-      tex.swizzle_b = v3d_translate_pipe_swizzle(PIPE_SWIZZLE_Z);
-      tex.swizzle_a = v3d_translate_pipe_swizzle(PIPE_SWIZZLE_W);
+      tex.swizzle_r =
+         v3d_translate_pipe_swizzle(buffer_view->format->planes[0].swizzle[0]);
+      tex.swizzle_g =
+         v3d_translate_pipe_swizzle(buffer_view->format->planes[0].swizzle[1]);
+      tex.swizzle_b =
+         v3d_translate_pipe_swizzle(buffer_view->format->planes[0].swizzle[2]);
+      tex.swizzle_a =
+         v3d_translate_pipe_swizzle(buffer_view->format->planes[0].swizzle[3]);
 
       tex.image_depth = 1;
 

Reply via email to