Zebediah Figura : wined3d: Do not iterate over multiple layers when clearing 3D UAVs.

Alexandre Julliard julliard at winehq.org
Thu Jan 13 16:26:41 CST 2022


Module: wine
Branch: master
Commit: 35e08b90b3b7b7fcd06ff37cec8ded5cda3e4245
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=35e08b90b3b7b7fcd06ff37cec8ded5cda3e4245

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Wed Jan 12 18:40:49 2022 -0600

wined3d: Do not iterate over multiple layers when clearing 3D UAVs.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52390
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/view.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index d6f58309b32..efa98ea13eb 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -1504,11 +1504,20 @@ void wined3d_unordered_access_view_gl_clear(struct wined3d_unordered_access_view
 
         format_gl = wined3d_format_gl(resource->format);
         texture_gl = wined3d_texture_gl(texture_from_resource(resource));
-        layer_count = view_gl->v.desc.u.texture.layer_count;
         level_count = view_gl->v.desc.u.texture.level_count;
-        base_layer = view_gl->v.desc.u.texture.layer_idx;
         base_level = view_gl->v.desc.u.texture.level_idx;
 
+        if (resource->type == WINED3D_RTYPE_TEXTURE_3D)
+        {
+            layer_count = 1;
+            base_layer = 0;
+        }
+        else
+        {
+            layer_count = view_gl->v.desc.u.texture.layer_count;
+            base_layer = view_gl->v.desc.u.texture.layer_idx;
+        }
+
         if (format_gl->f.byte_count <= 4 && !fp)
         {
             gl_format = format_gl->format;




More information about the wine-cvs mailing list