[PATCH 2/7] wined3d: Don't consider texture rectangles for buffers.

Henri Verbeet hverbeet at gmail.com
Tue Jun 1 11:54:07 CDT 2021


On Mon, 31 May 2021 at 21:13, Matteo Bruni <mbruni at codeweavers.com> wrote:
> @@ -141,15 +141,15 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
>                  WARN("Format %s cannot be used for texturing.\n", debug_d3dformat(format->id));
>                  continue;
>              }
> -        }
> -        if (((width & (width - 1)) || (height & (height - 1)))
> +            if (((width & (width - 1)) || (height & (height - 1)))
>                  && !d3d_info->texture_npot
>                  && !gl_info->supported[WINED3D_GL_NORMALIZED_TEXRECT]
>                  && gl_type == WINED3D_GL_RES_TYPE_TEX_2D)
> -        {
> -            TRACE("Skipping 2D texture type to try texture rectangle.\n");
> -            tex_2d_ok = TRUE;
> -            continue;
> +            {
> +                TRACE("Skipping 2D texture type to try texture rectangle.\n");
> +                tex_2d_ok = TRUE;
> +                continue;
> +            }
>          }
>          break;
>      }

Does this make a difference? Buffer resources would fail the "gl_type
== WINED3D_GL_RES_TYPE_TEX_2D" check, and in terms of performance,
well, don't create resources in your rendering loop. Still, this would
be fine, except that now you've messed up the indentation of the
if-statement. Note that instead of the "if (type !=
WINED3D_RTYPE_BUFFER) { ... }" block above, you could just "if (type
== WINED3D_RTYPE_BUFFER) break;", and save some indentation.



More information about the wine-devel mailing list