[PATCHv2 2/3] wined3d: Use an rbtree for storing shaders for texture format conversion/blitting

Stefan Dösinger stefandoesinger at gmail.com
Thu Feb 13 03:42:26 CST 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 2014-02-12 21:05, schrieb Martin Storsjo:
> +    entry = wine_rb_get(&priv->shaders, &type);
> +    if (entry)
>      {
> -        case COMPLEX_FIXUP_YUY2:
> -            shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->yuy2_rect_shader : priv->yuy2_2d_shader;
>              ...
> -            break;
> -
> +        struct arbfp_blit_desc *desc = WINE_RB_ENTRY_VALUE(entry, struct arbfp_blit_desc, entry);
> +        shader = desc->shader;
> +    }
> +    else
> +    {
> +        switch(fixup)
> +        {
>          case COMPLEX_FIXUP_P8:
> -            shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->p8_rect_shader : priv->p8_2d_shader;
> -            if (!shader) shader = gen_p8_shader(priv, gl_info, textype);
> ...
> +        }
>      }
You'll have to execute upload_palette before running the p8 shader,
not just when generating it.

>  struct arbfp_blit_priv {
> -    GLenum yuy2_rect_shader, yuy2_2d_shader;
> -    GLenum uyvy_rect_shader, uyvy_2d_shader;
> -    GLenum yv12_rect_shader, yv12_2d_shader;
> -    GLenum nv12_rect_shader, nv12_2d_shader;
> -    GLenum p8_rect_shader, p8_2d_shader;
> +    struct wine_rb_tree shaders;
>      GLuint palette_texture;
>  };
When you're resending the patch please take the opportunity to move
the opening { to its own line.

Otherwise the patch (and the first one) looks good to me. Thanks for
your perseverance :-) .

I'll run the test in patch 3 on my Windows machines and report back. I
ran the earlier version it on the Radeon X1600 + Win7 box yesterday.
It passed, NV12 was supported, I420 was not.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJS/JOCAAoJEN0/YqbEcdMwmCgP/2SeBnj9x5Nm3iWAQnqwEHs9
1ECpmmuCkbEcjOgxCrZEQWf7iv9RyrX3iEjyjqs5JJfpckOFEH51ydb+7JQpG/Q4
3+gLlXA1R5Qnku+Iz+gS6JW3aRSGIowlnbWTsggrqj71FzonFroy71z1NRsVmIQI
f8SpgmtSVRSUoQ3b3K0Zc2zUb6+oaBsk55zRC8W37RejA73Alsc+C3vad+mFpMxQ
xOtVkCyMqMGIxvb+llUygSMVf7oIT8AbAW0Yy6RMzS4FElG41HkCk1tTWI93v6b1
Aq064B6nZ7fkSqktwMpxdP8+xxQpuUUSWL4jA3ydq0UNoK7CrPQJlsP/ePtMBVkb
4yylQeVw+2Z2LbeDOJWbtLCQXVuJdvii1ULjlQciWSMvABmLy04pb8NqRAzvYfrL
WL12mLfjKmA+9oylMbFll321vIXyoIyOBvSITLrEolAOUGU+xZu+pdIR8lVoyJpQ
Djdu2zRmQnKIv3Q8zFQsdk201xKI9SqZScQHO68IwqqyNK5cyhIg91d7lFDlMFJx
BihHAXW61O+fZfz1Q+SGWEztaFYYNZouBhFo0F7odjCHHGodNjVtLVJaa6N7fLHA
rEek5LL+Uj2kzg4r+t3EnpSn+qhwZ3kOQYgyNqHlvY/m1MqvDRBp5Ln0RU0qtFHm
rhaw1CZsViF5dlKEB72H
=7Xyb
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list