[PATCH 2/6] wined3d: Fix condition for FIXME() about unsupported depth slices.

Józef Kucia jkucia at codeweavers.com
Mon May 28 04:33:15 CDT 2018


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/wined3d/view.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index c98ebfb7ee8e..d9d661897c83 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -169,8 +169,8 @@ static void create_texture_view(struct wined3d_gl_view *view, GLenum view_target
         const struct wined3d_view_desc *desc, struct wined3d_texture *texture,
         const struct wined3d_format *view_format)
 {
+    unsigned int level_idx, layer_idx, layer_count;
     const struct wined3d_gl_info *gl_info;
-    unsigned int layer_idx, layer_count;
     struct wined3d_context *context;
     GLuint texture_name;
 
@@ -189,20 +189,21 @@ static void create_texture_view(struct wined3d_gl_view *view, GLenum view_target
     wined3d_texture_prepare_texture(texture, context, FALSE);
     texture_name = wined3d_texture_get_texture_name(texture, context, FALSE);
 
+    level_idx = desc->u.texture.level_idx;
     layer_idx = desc->u.texture.layer_idx;
     layer_count = desc->u.texture.layer_count;
-    if (view_target == GL_TEXTURE_3D && (layer_idx || layer_count != 1))
+    if (view_target == GL_TEXTURE_3D)
     {
-        FIXME("Depth slice (%u-%u) not supported.\n", layer_idx, layer_count);
+        if (layer_idx || layer_count != wined3d_texture_get_level_depth(texture, level_idx))
+            FIXME("Depth slice (%u-%u) not supported.\n", layer_idx, layer_count);
         layer_idx = 0;
         layer_count = 1;
     }
 
     gl_info->gl_ops.gl.p_glGenTextures(1, &view->name);
     GL_EXTCALL(glTextureView(view->name, view->target, texture_name, view_format->glInternal,
-            desc->u.texture.level_idx, desc->u.texture.level_count,
-            layer_idx, layer_count));
-    checkGLcall("Create texture view");
+            level_idx, desc->u.texture.level_count, layer_idx, layer_count));
+    checkGLcall("create texture view");
 
     if (is_stencil_view_format(view_format))
     {
@@ -218,7 +219,7 @@ static void create_texture_view(struct wined3d_gl_view *view, GLenum view_target
         context_bind_texture(context, view->target, view->name);
         gl_info->gl_ops.gl.p_glTexParameteriv(view->target, GL_TEXTURE_SWIZZLE_RGBA, swizzle);
         gl_info->gl_ops.gl.p_glTexParameteri(view->target, GL_DEPTH_STENCIL_TEXTURE_MODE, GL_STENCIL_INDEX);
-        checkGLcall("Initialize stencil view");
+        checkGLcall("initialize stencil view");
 
         context_invalidate_compute_state(context, STATE_COMPUTE_SHADER_RESOURCE_BINDING);
         context_invalidate_state(context, STATE_GRAPHICS_SHADER_RESOURCE_BINDING);
-- 
2.16.1




More information about the wine-devel mailing list